aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin/gendef
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2004-01-26 22:25:57 +0000
committerChristopher Faylor <me@cgf.cx>2004-01-26 22:25:57 +0000
commitef33379be8be59c475cdb280e2e2f414fe1c2a8e (patch)
treed716598d339fa88162dc9aca2d60192cb7d1dd27 /winsup/cygwin/gendef
parent5e0f482f2cac33d5ce758e4dc0f665a4e195f4e1 (diff)
downloadnewlib-ef33379be8be59c475cdb280e2e2f414fe1c2a8e.zip
newlib-ef33379be8be59c475cdb280e2e2f414fe1c2a8e.tar.gz
newlib-ef33379be8be59c475cdb280e2e2f414fe1c2a8e.tar.bz2
* exceptions.cc (sig_handle_tty_stop): Avoid races by waiting for both
signal_arrived and for sigCONT. (sigpacket::process): Enforce sending of both signal_arrived and sigCONT, where appropriate. * gendef (sigreturn): Save tls pointer in ebx so that it can jump into sigdelayed and use the same register.
Diffstat (limited to 'winsup/cygwin/gendef')
-rwxr-xr-xwinsup/cygwin/gendef6
1 files changed, 3 insertions, 3 deletions
diff --git a/winsup/cygwin/gendef b/winsup/cygwin/gendef
index 5addf91..d317eea 100755
--- a/winsup/cygwin/gendef
+++ b/winsup/cygwin/gendef
@@ -127,15 +127,15 @@ _sigreturn:
addl \$4,%esp # Remove argument
call _set_process_mask\@4
- movl %fs:4,%eax
+ movl %fs:4,%ebx
- cmpl \$0,$tls::sig(%eax) # Did a signal come in?
+ cmpl \$0,$tls::sig(%ebx) # Did a signal come in?
jnz 3f # Yes, if non-zero
1: popl %edx # saved errno
testl %edx,%edx # Is it < 0
jl 2f # yup. ignore it
- movl $tls::errno_addr(%eax),%eax
+ movl $tls::errno_addr(%ebx),%eax
movl %edx,(%eax)
2: popl %eax
popl %ebx