about summary refs log tree commit diff
path: root/sysdeps/i386/bsd-_setjmp.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-01-17 01:01:02 +0000
committerUlrich Drepper <drepper@redhat.com>2001-01-17 01:01:02 +0000
commiteca90c85f5c58634c573a6c59b382173fb2424bd (patch)
treeafb727ddbd31fd9ab99c789e8c774663828d5b11 /sysdeps/i386/bsd-_setjmp.S
parent376c348c9175470e8f48a563311203cbf8bf7e80 (diff)
downloadglibc-eca90c85f5c58634c573a6c59b382173fb2424bd.tar.gz
glibc-eca90c85f5c58634c573a6c59b382173fb2424bd.tar.xz
glibc-eca90c85f5c58634c573a6c59b382173fb2424bd.zip
Update.
	* setjmp/setjmp.h: Cleanup definition of setjmp macro.
Diffstat (limited to 'sysdeps/i386/bsd-_setjmp.S')
-rw-r--r--sysdeps/i386/bsd-_setjmp.S19
1 files changed, 11 insertions, 8 deletions
diff --git a/sysdeps/i386/bsd-_setjmp.S b/sysdeps/i386/bsd-_setjmp.S
index aa9b8edfd8..5b215f05f1 100644
--- a/sysdeps/i386/bsd-_setjmp.S
+++ b/sysdeps/i386/bsd-_setjmp.S
@@ -35,18 +35,21 @@
 ENTRY (BP_SYM (_setjmp))
 	ENTER
 
-	movl JMPBUF(%esp), %eax
-	CHECK_BOUNDS_BOTH_WIDE (%eax, JMPBUF(%esp), $JB_SIZE)
+	xorl %eax, %eax
+	movl JMPBUF(%esp), %edx
+	CHECK_BOUNDS_BOTH_WIDE (%edx, JMPBUF(%esp), $(JB_SIZE+4))
 
      	/* Save registers.  */
-	movl %ebx, (JB_BX*4)(%eax)
-	movl %esi, (JB_SI*4)(%eax)
-	movl %edi, (JB_DI*4)(%eax)
+	movl %ebx, (JB_BX*4)(%edx)
+	movl %esi, (JB_SI*4)(%edx)
+	movl %edi, (JB_DI*4)(%edx)
 	leal JMPBUF(%esp), %ecx	/* Save SP as it will be after we return.  */
-     	movl %ecx, (JB_SP*4)(%eax)
+     	movl %ecx, (JB_SP*4)(%edx)
 	movl PCOFF(%esp), %ecx	/* Save PC we are returning to now.  */
-     	movl %ecx, (JB_PC*4)(%eax)
+     	movl %ecx, (JB_PC*4)(%edx)
 	LEAVE
-	movl %ebp, (JB_BP*4)(%eax) /* Save caller's frame pointer.  */
+	movl %ebp, (JB_BP*4)(%edx) /* Save caller's frame pointer.  */
+
+	movl %eax, JB_SIZE(%edx) /* No signal mask set.  */
 	ret
 END (BP_SYM (_setjmp))