diff options
Diffstat (limited to 'sysdeps/alpha/setjmp.S')
-rw-r--r-- | sysdeps/alpha/setjmp.S | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/sysdeps/alpha/setjmp.S b/sysdeps/alpha/setjmp.S deleted file mode 100644 index a6758646f1..0000000000 --- a/sysdeps/alpha/setjmp.S +++ /dev/null @@ -1,120 +0,0 @@ -/* Copyright (C) 1992-2017 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 - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#define __ASSEMBLY__ - -#include <sysdep.h> -#include <jmpbuf-offsets.h> - - .ent __sigsetjmp - .global __sigsetjmp -__sigsetjmp: - ldgp gp, 0(pv) - -$sigsetjmp_local: -#ifndef PIC -#define FRAME 16 - subq sp, FRAME, sp - .frame sp, FRAME, ra, 0 - stq ra, 0(sp) - .mask 0x04000000, -FRAME -#else -#define FRAME 0 - .frame sp, FRAME, ra, 0 -#endif -#ifdef PROF - .set noat - lda AT, _mcount - jsr AT, (AT), _mcount - .set at -#endif - .prologue 1 - - stq s0, JB_S0*8(a0) - stq s1, JB_S1*8(a0) - stq s2, JB_S2*8(a0) - stq s3, JB_S3*8(a0) - stq s4, JB_S4*8(a0) - stq s5, JB_S5*8(a0) -#ifdef PTR_MANGLE - PTR_MANGLE(t1, ra, t0) - stq t1, JB_PC*8(a0) -#else - stq ra, JB_PC*8(a0) -#endif -#if defined(PTR_MANGLE) && FRAME == 0 - PTR_MANGLE2(t1, sp, t0) -#else - addq sp, FRAME, t1 -# ifdef PTR_MANGLE - PTR_MANGLE2(t1, t1, t0) -# endif -#endif - stq t1, JB_SP*8(a0) -#ifdef PTR_MANGLE - PTR_MANGLE2(t1, fp, t0) - stq t1, JB_FP*8(a0) -#else - stq fp, JB_FP*8(a0) -#endif - stt $f2, JB_F2*8(a0) - stt $f3, JB_F3*8(a0) - stt $f4, JB_F4*8(a0) - stt $f5, JB_F5*8(a0) - stt $f6, JB_F6*8(a0) - stt $f7, JB_F7*8(a0) - stt $f8, JB_F8*8(a0) - stt $f9, JB_F9*8(a0) - -#ifndef PIC - /* Call to C to (potentially) save our signal mask. */ - jsr ra, __sigjmp_save - ldq ra, 0(sp) - addq sp, 16, sp - ret -#elif IS_IN (rtld) - /* In ld.so we never save the signal mask. */ - mov 0, v0 - ret -#else - /* Tailcall to save the signal mask. */ - br $31, __sigjmp_save !samegp -#endif - -END(__sigsetjmp) -hidden_def (__sigsetjmp) - -/* Put these traditional entry points in the same file so that we can - elide much of the nonsense in trying to jmp to the real function. */ - -ENTRY(_setjmp) - ldgp gp, 0(pv) - .prologue 1 - mov 0, a1 - br $sigsetjmp_local -END(_setjmp) -libc_hidden_def (_setjmp) - -ENTRY(setjmp) - ldgp gp, 0(pv) - .prologue 1 - mov 1, a1 - br $sigsetjmp_local -END(setjmp) - -weak_extern(_setjmp) -weak_extern(setjmp) |