From eca90c85f5c58634c573a6c59b382173fb2424bd Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 17 Jan 2001 01:01:02 +0000 Subject: Update. * setjmp/setjmp.h: Cleanup definition of setjmp macro. --- sysdeps/i386/bsd-_setjmp.S | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'sysdeps') 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)) -- cgit v1.1