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