From 897c6b5231b76e475959a3e0c5559df5d46fb87c Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Fri, 22 Aug 2003 19:25:56 +0000 Subject: * exceptions.cc (sigreturn): Don't clobber ebp in recursive signal calls. --- winsup/cygwin/exceptions.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'winsup/cygwin/exceptions.cc') diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index e99751714..173216525 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -1225,8 +1225,7 @@ _sigreturn: \n\ cmpl $0,%4 # Did a signal come in? \n\ jz 1f # No, if zero \n\ movl %2,%%eax \n\ - movl %%esp,%%ebp \n\ - movl %%eax,36(%%ebp) # Restore return address \n\ + movl %%eax,36(%%esp) # Restore return address \n\ jmp 3f \n\ \n\ 1: popl %%eax # saved errno \n\ @@ -1275,7 +1274,8 @@ _sigdelayed0: \n\ __no_sig_end: \n\ " : "=m" (sigsave.sig): "X" ((char *) &_impure_ptr->_errno), "g" (sigsave.retaddr), "g" (sigsave.oldmask), "g" (sigsave.sig), - "g" (sigsave.func), "g" (sigsave.saved_errno), "g" (sigsave.newmask) + "g" (sigsave.func), "g" (sigsave.saved_errno), "g" (sigsave.newmask), + "g" (sigsave.retaddr_on_stack) ); } } -- cgit v1.2.3