summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/gendef
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2012-08-15 16:35:00 +0000
committerChristopher Faylor <me@cgf.cx>2012-08-15 16:35:00 +0000
commitd57a4725b1dde16e292ed7a9898752b4e2277766 (patch)
treea3596c31e2702e4fad52bcd27bf8ed02a27a87f0 /winsup/cygwin/gendef
parent0123506d2df6775cc3251f33f3983cd32103c663 (diff)
downloadcygnal-d57a4725b1dde16e292ed7a9898752b4e2277766.tar.gz
cygnal-d57a4725b1dde16e292ed7a9898752b4e2277766.tar.bz2
cygnal-d57a4725b1dde16e292ed7a9898752b4e2277766.zip
* exceptions.cc (sigdelayed): Move declaration to sigproc.h.
* sigproc.h (sigdelayed): Make symbol globally available. * gendef (sigdelayed): Specifically zero incyg and stacklock. * signal.cc (sigwaitinfo): Lock _my_tls and try harder to clean up signal information.
Diffstat (limited to 'winsup/cygwin/gendef')
-rwxr-xr-xwinsup/cygwin/gendef5
1 files changed, 3 insertions, 2 deletions
diff --git a/winsup/cygwin/gendef b/winsup/cygwin/gendef
index 5cc06f76c..ddffe5800 100755
--- a/winsup/cygwin/gendef
+++ b/winsup/cygwin/gendef
@@ -196,8 +196,9 @@ _sigdelayed:
xorl %ebp,%ebp
xchgl %ebp,-4(%eax) # get return address from signal stack
xchgl %ebp,28(%esp) # store real return address
-leave: decl $tls::incyg(%ebx)
- decl $tls::stacklock(%ebx) # unlock
+leave: xorl %eax,%eax
+ movl %eax,$tls::incyg(%ebx)
+ movl %eax,$tls::stacklock(%ebx) # unlock
popl %eax
popl %ebx