diff options
author | Ulrich Drepper <drepper@redhat.com> | 2001-01-17 01:01:02 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2001-01-17 01:01:02 +0000 |
commit | eca90c85f5c58634c573a6c59b382173fb2424bd (patch) | |
tree | afb727ddbd31fd9ab99c789e8c774663828d5b11 /sysdeps/i386/bsd-_setjmp.S | |
parent | 376c348c9175470e8f48a563311203cbf8bf7e80 (diff) | |
download | glibc-eca90c85f5c58634c573a6c59b382173fb2424bd.zip glibc-eca90c85f5c58634c573a6c59b382173fb2424bd.tar.gz glibc-eca90c85f5c58634c573a6c59b382173fb2424bd.tar.bz2 |
Update.
* setjmp/setjmp.h: Cleanup definition of setjmp macro.
Diffstat (limited to 'sysdeps/i386/bsd-_setjmp.S')
-rw-r--r-- | sysdeps/i386/bsd-_setjmp.S | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/sysdeps/i386/bsd-_setjmp.S b/sysdeps/i386/bsd-_setjmp.S index aa9b8ed..5b215f0 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)) |