1/* setjmp for HPPA.
2 Copyright (C) 1995-2022 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library. If not, see
17 <https://www.gnu.org/licenses/>. */
18
19#include <sysdep.h>
20#define _ASM
21#define _SETJMP_H
22#include <bits/setjmp.h>
23
24
25 .text
26 .align 4
27 .import __sigjmp_save, code
28 .globl __sigsetjmp
29 .export __sigsetjmp, code
30 .proc
31 .callinfo
32__sigsetjmp:
33 stw %r3, 0(%r26)
34 /* This padding exists for unknown historical reasons. */
35 /* 4 - 4 bytes of padding. */
36 stw %r4, 8(%r26)
37 stw %r5, 12(%r26)
38 stw %r6, 16(%r26)
39 stw %r7, 20(%r26)
40 stw %r8, 24(%r26)
41 stw %r9, 28(%r26)
42 stw %r10, 32(%r26)
43 stw %r11, 36(%r26)
44 stw %r12, 40(%r26)
45 stw %r13, 44(%r26)
46 stw %r14, 48(%r26)
47 stw %r15, 52(%r26)
48 stw %r16, 56(%r26)
49 stw %r17, 60(%r26)
50 stw %r18, 64(%r26)
51 stw %r19, 68(%r26)
52 stw %r27, 72(%r26)
53 stw %r30, 76(%r26)
54
55 stw %rp, 80(%r26)
56 /* This padding exists to ensure double alignment for fprs. */
57 /* 84 - 4 bytes of padding. */
58 ldo 88(%r26),%r1
59 fstds,ma %fr12, 8(%r1) /* 88 */
60 fstds,ma %fr13, 8(%r1) /* 96 */
61 fstds,ma %fr14, 8(%r1) /* 104 */
62 fstds,ma %fr15, 8(%r1) /* 112 */
63 fstds,ma %fr16, 8(%r1) /* 120 */
64 fstds,ma %fr17, 8(%r1) /* 128 */
65 fstds,ma %fr18, 8(%r1) /* 136 */
66 fstds,ma %fr19, 8(%r1) /* 144 */
67 fstds,ma %fr20, 8(%r1) /* 152 */
68 fstds %fr21, 0(%r1) /* 160 */
69 /* Total of 168 bytes. */
70 b __sigjmp_save
71 nop
72 .procend
73hidden_def (__sigsetjmp)
74

source code of glibc/sysdeps/hppa/setjmp.S