diff options
author | Andreas Jaeger <aj@suse.de> | 2012-03-23 17:37:32 +0100 |
---|---|---|
committer | Andreas Jaeger <jaegerandi@gmail.com> | 2012-03-28 09:31:29 +0200 |
commit | 492e01c879b139f2a19c76e1abc171eda5ae5c66 (patch) | |
tree | 30e9651e1b876ac02cc46162b9ce0ac1a545ba00 /sysdeps/s390/s390-64/setjmp.S | |
parent | bbaf00a652cad1057d5a96b79172b02d942c6961 (diff) | |
download | glibc-492e01c879b139f2a19c76e1abc171eda5ae5c66.tar.gz glibc-492e01c879b139f2a19c76e1abc171eda5ae5c66.tar.xz glibc-492e01c879b139f2a19c76e1abc171eda5ae5c66.zip |
Move sysdeps/s390/s390-64/elf files
* sysdeps/s390/s390-64/elf/bsd-_setjmp.S: Moved to ... * sysdeps/s390/s390-64/bsd-_setjmp.S: ... here. * sysdeps/s390/s390-64/elf/bsd-setjmp.S: Moved to ... * sysdeps/s390/s390-64/bsd-setjmp.S: ... here. * sysdeps/s390/s390-64/elf/setjmp.S: Moved to ... * sysdeps/s390/s390-64/setjmp.S: ... here. * sysdeps/s390/s390-64/elf/configure.in: Moved to ... * sysdeps/s390/s390-64/configure.in: ... here * sysdeps/s390/s390-64/elf/configure: Delete file. * sysdeps/s390/s390-64/elf/start.S: Moved to ... * sysdeps/s390/s390-64/start.S: ... here. * sysdeps/s390/s390-64/elf/configure: Delete.
Diffstat (limited to 'sysdeps/s390/s390-64/setjmp.S')
-rw-r--r-- | sysdeps/s390/s390-64/setjmp.S | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/sysdeps/s390/s390-64/setjmp.S b/sysdeps/s390/s390-64/setjmp.S index 0c5f1fbf3f..cbf68bce53 100644 --- a/sysdeps/s390/s390-64/setjmp.S +++ b/sysdeps/s390/s390-64/setjmp.S @@ -1,4 +1,5 @@ -/* Copyright (C) 2001, 2005 Free Software Foundation, Inc. +/* setjmp for 64 bit S/390, ELF version. + Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). This file is part of the GNU C Library. @@ -16,17 +17,34 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#ifndef _ASM -#define _ASM -#endif - #include <sysdep.h> +#define _ASM +#define _SETJMP_H #include <bits/setjmp.h> -/* Save the current program position in ENV and return 0. */ -/* R2 = pointer to jmp_buf, R3 = savemask. */ + /* We include the BSD entry points here as well but we make + them weak. */ +ENTRY (setjmp) + .weak C_SYMBOL_NAME (setjmp) + lghi %r3,1 /* Second argument of one. */ + j .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp. */ +END (setjmp) + + /* Binary compatibility entry point. */ +ENTRY(_setjmp) + .weak C_SYMBOL_NAME (_setjmp) + slgr %r3,%r3 /* Second argument of zero. */ + j .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp. */ +END (setjmp) +libc_hidden_def (_setjmp) + +ENTRY(__setjmp) + slgr %r3,%r3 /* Second argument of zero. */ + j .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp. */ +END (setjmp) ENTRY(__sigsetjmp) +.Linternal_sigsetjmp: #ifdef PTR_MANGLE stmg %r6,%r13,0(%r2) /* Store registers in jmp_buf. */ lgr %r4,%r14 @@ -46,8 +64,8 @@ ENTRY(__sigsetjmp) lghi %r2,0 br %r14 #elif defined PIC - jg __sigjmp_save@PLT /* Tail-call __sigjmp_save. */ + jg __sigjmp_save@PLT /* Branch to PLT of __sigsetjmp. */ #else - jg __sigjmp_save /* Tail-call __sigjmp_save. */ + jg __sigjmp_save #endif END (__sigsetjmp) |