diff options
author | Christopher Faylor <me@cgf.cx> | 2005-03-02 16:13:24 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2005-03-02 16:13:24 +0000 |
commit | d0f0ea3034355adfa76b7fe669ad089726a2aded (patch) | |
tree | a388ccedc427a2ad261c6b0e3043873ff872b01e /winsup/cygwin/autoload.cc | |
parent | d83eb0c7d0c4c58ade045e1ee44a6f5ade83e964 (diff) | |
download | cygnal-d0f0ea3034355adfa76b7fe669ad089726a2aded.tar.gz cygnal-d0f0ea3034355adfa76b7fe669ad089726a2aded.tar.bz2 cygnal-d0f0ea3034355adfa76b7fe669ad089726a2aded.zip |
* autoload.cc (LoadDLLprime): Mask error code to low-order 16 bits.
(noload): Preserve sign when returning error code.
Diffstat (limited to 'winsup/cygwin/autoload.cc')
-rw-r--r-- | winsup/cygwin/autoload.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/winsup/cygwin/autoload.cc b/winsup/cygwin/autoload.cc index 59c24f7c2..805b765c1 100644 --- a/winsup/cygwin/autoload.cc +++ b/winsup/cygwin/autoload.cc @@ -89,7 +89,7 @@ _win32_" mangle (name, n) ": \n\ 1:movl (2f),%eax \n\ call *(%eax) \n\ 2:.long ." #dllname "_info \n\ - .long (" #n "+" #notimp ") | " #err "<<16 \n\ + .long (" #n "+" #notimp ") | (((" #err ") & 0xffff) <<16) \n\ .asciz \"" #name "\" \n\ .text \n\ "); @@ -128,7 +128,7 @@ noload: \n\ pushl %eax # First argument \n\ call _SetLastError@4 # Set it \n\ popl %eax # Get back argument \n\ - shrl $16,%eax # return value in high order word \n\ + sarl $16,%eax # return value in high order word \n\ jmp *%edx # Return \n\ 1: \n\ movl (%edx),%eax # Handle value \n\ |