diff options
Diffstat (limited to 'sysdeps/x86_64/setjmp.S')
-rw-r--r-- | sysdeps/x86_64/setjmp.S | 28 |
1 files changed, 6 insertions, 22 deletions
diff --git a/sysdeps/x86_64/setjmp.S b/sysdeps/x86_64/setjmp.S index a66b0e6..811ab1d 100644 --- a/sysdeps/x86_64/setjmp.S +++ b/sysdeps/x86_64/setjmp.S @@ -1,5 +1,5 @@ /* setjmp for x86-64. - Copyright (C) 2001, 2003, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2001, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -18,45 +18,29 @@ 02111-1307 USA. */ #include <sysdep.h> -#include <jmpbuf-offsets.h> +#define _ASM +#define _SETJMP_H +#include <bits/setjmp.h> #include <asm-syntax.h> ENTRY (__sigsetjmp) /* Save registers. */ movq %rbx, (JB_RBX*8)(%rdi) -#ifdef PTR_MANGLE - movq %rbp, %rax - PTR_MANGLE (%rax) - movq %rax, (JB_RBP*8)(%rdi) -#else movq %rbp, (JB_RBP*8)(%rdi) -#endif movq %r12, (JB_R12*8)(%rdi) movq %r13, (JB_R13*8)(%rdi) movq %r14, (JB_R14*8)(%rdi) movq %r15, (JB_R15*8)(%rdi) leaq 8(%rsp), %rdx /* Save SP as it will be after we return. */ -#ifdef PTR_MANGLE - PTR_MANGLE (%rdx) -#endif movq %rdx, (JB_RSP*8)(%rdi) movq (%rsp), %rax /* Save PC we are returning to now. */ -#ifdef PTR_MANGLE - PTR_MANGLE (%rax) -#endif movq %rax, (JB_PC*8)(%rdi) -#if defined NOT_IN_libc && defined IS_IN_rtld - /* In ld.so we never save the signal mask. */ - xorl %eax, %eax - retq -#else /* Make a tail call to __sigjmp_save; it takes the same args. */ -# ifdef PIC +#ifdef PIC jmp C_SYMBOL_NAME (BP_SYM (__sigjmp_save))@PLT -# else +#else jmp BP_SYM (__sigjmp_save) -# endif #endif END (BP_SYM (__sigsetjmp)) hidden_def (__sigsetjmp) |