aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/hppa
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-10-15 03:24:40 +0000
committerUlrich Drepper <drepper@redhat.com>2000-10-15 03:24:40 +0000
commit0edd90f64519cdfe568cd3121469f3937cff9444 (patch)
tree8cc8c5801cd9b5b702b1654adea90c93c01e1f5e /sysdeps/hppa
parent1ca92d75ff2e082d746051583398453d08d6e28a (diff)
downloadglibc-0edd90f64519cdfe568cd3121469f3937cff9444.tar
glibc-0edd90f64519cdfe568cd3121469f3937cff9444.tar.gz
glibc-0edd90f64519cdfe568cd3121469f3937cff9444.tar.bz2
glibc-0edd90f64519cdfe568cd3121469f3937cff9444.zip
HP/PA specific setjmp implementation.
Diffstat (limited to 'sysdeps/hppa')
-rw-r--r--sysdeps/hppa/setjmp.S69
1 files changed, 69 insertions, 0 deletions
diff --git a/sysdeps/hppa/setjmp.S b/sysdeps/hppa/setjmp.S
new file mode 100644
index 0000000000..0890975b88
--- /dev/null
+++ b/sysdeps/hppa/setjmp.S
@@ -0,0 +1,69 @@
+/* setjmp for HPPA.
+ Copyright (C) 1995, 1996, 1997, 1999 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <sysdep.h>
+#define _ASM
+#define _SETJMP_H
+#include <bits/setjmp.h>
+
+
+ .text
+ .align 4
+ .import __sigjmp_save, code
+ .globl __sigsetjmp
+ .export __sigsetjmp, code
+ .proc
+ .callinfo
+__sigsetjmp:
+ stw %r3, 0(%r26)
+ stw %r4, 8(%r26)
+ stw %r5, 12(%r26)
+ stw %r6, 16(%r26)
+ stw %r7, 20(%r26)
+ stw %r8, 24(%r26)
+ stw %r9, 28(%r26)
+ stw %r10, 32(%r26)
+ stw %r11, 36(%r26)
+ stw %r12, 40(%r26)
+ stw %r13, 44(%r26)
+ stw %r14, 48(%r26)
+ stw %r15, 52(%r26)
+ stw %r16, 56(%r26)
+ stw %r17, 60(%r26)
+ stw %r18, 64(%r26)
+ stw %r19, 68(%r26)
+ stw %r27, 72(%r26)
+ stw %r30, 76(%r26)
+
+ stw %rp, 80(%r26)
+
+ ldo 88(%r26),%r19
+ fstds,ma %fr12, 8(%r19) /* 88 */
+ fstds,ma %fr13, 8(%r19) /* 96 */
+ fstds,ma %fr14, 8(%r19) /* 104 */
+ fstds,ma %fr15, 8(%r19) /* 112 */
+ fstds,ma %fr16, 8(%r19) /* 120 */
+ fstds,ma %fr17, 8(%r19) /* 128 */
+ fstds,ma %fr18, 8(%r19) /* 136 */
+ fstds,ma %fr19, 8(%r19) /* 144 */
+ fstds,ma %fr20, 8(%r19) /* 152 */
+ fstds %fr21, 0(%r19) /* 160 */
+ b __sigjmp_save
+ nop
+ .procend