diff options
Diffstat (limited to 'libc/sysdeps/i386/setjmp.S')
-rw-r--r-- | libc/sysdeps/i386/setjmp.S | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/libc/sysdeps/i386/setjmp.S b/libc/sysdeps/i386/setjmp.S index 9c872f17a..039f6c4fa 100644 --- a/libc/sysdeps/i386/setjmp.S +++ b/libc/sysdeps/i386/setjmp.S @@ -19,19 +19,15 @@ #include <sysdep.h> #include <jmpbuf-offsets.h> #include <asm-syntax.h> -#include "bp-sym.h" -#include "bp-asm.h" #include <stap-probe.h> -#define PARMS LINKAGE /* no space for saved regs */ +#define PARMS 4 /* no space for saved regs */ #define JMPBUF PARMS -#define SIGMSK JMPBUF+PTR_SIZE +#define SIGMSK JMPBUF+4 -ENTRY (BP_SYM (__sigsetjmp)) - ENTER +ENTRY (__sigsetjmp) movl JMPBUF(%esp), %eax - CHECK_BOUNDS_BOTH_WIDE (%eax, JMPBUF(%esp), $JB_SIZE) /* Save registers. */ movl %ebx, (JB_BX*4)(%eax) @@ -42,13 +38,12 @@ ENTRY (BP_SYM (__sigsetjmp)) PTR_MANGLE (%ecx) #endif movl %ecx, (JB_SP*4)(%eax) - movl PCOFF(%esp), %ecx /* Save PC we are returning to now. */ + movl 0(%esp), %ecx /* Save PC we are returning to now. */ LIBC_PROBE (setjmp, 3, 4@%eax, -4@SIGMSK(%esp), 4@%ecx) #ifdef PTR_MANGLE PTR_MANGLE (%ecx) #endif movl %ecx, (JB_PC*4)(%eax) - LEAVE /* pop frame pointer to prepare for tail-call. */ movl %ebp, (JB_BP*4)(%eax) /* Save caller's frame pointer. */ #if defined NOT_IN_libc && defined IS_IN_rtld @@ -59,4 +54,4 @@ ENTRY (BP_SYM (__sigsetjmp)) /* Make a tail call to __sigjmp_save; it takes the same args. */ jmp __sigjmp_save #endif -END (BP_SYM (__sigsetjmp)) +END (__sigsetjmp) |