1
/* setjmp for 64 bit S/390, ELF version.
2
Copyright (C) 2001-2014 Free Software Foundation, Inc.
3
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
4
This file is part of the GNU C Library.
6
The GNU C Library is free software; you can redistribute it and/or
7
modify it under the terms of the GNU Lesser General Public
8
License as published by the Free Software Foundation; either
9
version 2.1 of the License, or (at your option) any later version.
11
The GNU C Library is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
Lesser General Public License for more details.
16
You should have received a copy of the GNU Lesser General Public
17
License along with the GNU C Library; if not, see
18
<http://www.gnu.org/licenses/>. */
23
#include <bits/setjmp.h>
25
/* We include the BSD entry points here as well but we make
28
.weak C_SYMBOL_NAME (setjmp)
29
lghi %r3,1 /* Second argument of one. */
30
j .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp. */
33
/* Binary compatibility entry point. */
35
.weak C_SYMBOL_NAME (_setjmp)
36
slgr %r3,%r3 /* Second argument of zero. */
37
j .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp. */
39
libc_hidden_def (_setjmp)
42
slgr %r3,%r3 /* Second argument of zero. */
43
j .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp. */
49
stmg %r6,%r13,0(%r2) /* Store registers in jmp_buf. */
53
PTR_MANGLE2 (%r5, %r1)
56
stmg %r6,%r15,0(%r2) /* Store registers in jmp_buf. */
66
#if defined NOT_IN_libc && defined IS_IN_rtld
67
/* In ld.so we never save the signal mask. */
71
jg __sigjmp_save@PLT /* Branch to PLT of __sigsetjmp. */