diff options
author | Ulrich Drepper <drepper@redhat.com> | 2001-03-25 05:15:51 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2001-03-25 05:15:51 +0000 |
commit | 0a45b76c6238f4685c07ba5c5db371ae9b95d661 (patch) | |
tree | 2f2102508869d2b1d9d31799f81c65e691904911 /sysdeps/unix/sysv/linux/ia64/setjmp.S | |
parent | 8c0fe2900498fea31db0d0f3bb2f4f13b8e393ce (diff) | |
download | glibc-0a45b76c6238f4685c07ba5c5db371ae9b95d661.tar.gz glibc-0a45b76c6238f4685c07ba5c5db371ae9b95d661.tar.xz glibc-0a45b76c6238f4685c07ba5c5db371ae9b95d661.zip |
Update.
2001-03-23 Jes Sorensen <jes@linuxcare.com> * sysdeps/unix/sysv/linux/ia64/sysdep.h (ENTRY): Moved to ... * sysdeps/ia64/sysdep.h: ...here. * sysdeps/ia64/sysdep.h (LOCAL_ENTRY): Define. * sysdeps/ia64/sysdep.h (LOCAL_LEAF): Define. * sysdeps/ia64/_mcount.S (_mcount_ret_helper): Use LOCAL_LEAF() to declare instead of LEAF(). Suggestion from David Mosberger. 2001-03-21 David Mosberger <davidm@hpl.hp.com> * sysdeps/unix/sysv/linux/ia64/sysdep.h (CALL_MCOUNT): Add unwind directives. (PSEUDO): Drop .psr and .lsb directives. * sysdeps/unix/sysv/linux/ia64/setjmp.S: Ditto. Add unwind directives. * sysdeps/unix/sysv/linux/ia64/sysdep.S: Ditto. * sysdeps/ia64/elf/start.S: Misc cleanup: remove .psr and .lsb directives etc. * sysdeps/unix/sysv/linux/ia64/brk.S: Ditto. * sysdeps/unix/sysv/linux/ia64/__longjmp.S: Ditto. * sysdeps/ia64/_mcount.S: Remove .psr and .lsb directives (no longer needed). Add unwind directives. * sysdeps/ia64/sysdep.h: Define ASM_UNW_PRLG_RP, ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_PSP, ASM_UNW_PRLG_PR, and ASM_UNW_PRLG_GRSAVE. 2001-03-21 Paul Eggert <eggert@twinsun.com> * posix/regex.h (RE_INVALID_INTERVAL_ORD): New macro. (RE_SYNTAX_POSIX_EGREP): Use it. * posix/regex.c (regex_compile): Implement it. 2001-03-21 Paul Eggert <eggert@twinsun.com> * posix/regex.c (GET_UNSIGNED_NUMBER): Check for overflow. Rewrite to avoid duplicate code. 2001-03-21 H.J. Lu <hjl@gnu.org> * elf/Makefile (tests): Don't depend on $(objpfx)tst-pathopt.out for cross-compiling. ($(objpfx)tst-pathopt.out): Undo the last change.
Diffstat (limited to 'sysdeps/unix/sysv/linux/ia64/setjmp.S')
-rw-r--r-- | sysdeps/unix/sysv/linux/ia64/setjmp.S | 44 |
1 files changed, 18 insertions, 26 deletions
diff --git a/sysdeps/unix/sysv/linux/ia64/setjmp.S b/sysdeps/unix/sysv/linux/ia64/setjmp.S index 63abe0d25e..1d03cc55c0 100644 --- a/sysdeps/unix/sysv/linux/ia64/setjmp.S +++ b/sysdeps/unix/sysv/linux/ia64/setjmp.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. Contributed by David Mosberger-Tang <davidm@hpl.hp.com>. The GNU C Library is free software; you can redistribute it and/or @@ -19,7 +19,7 @@ The layout of the jmp_buf is as follows. This is subject to change and user-code should never depend on the particular layout of jmp_buf! - + offset: description: ------- ------------ @@ -67,34 +67,25 @@ #include <sysdep.h> #include <features.h> - .text - .psr abi64 - .psr lsb - .lsb - /* The following two entry points are the traditional entry points: */ - .global setjmp - .proc setjmp -setjmp: alloc r8=ar.pfs,2,0,0,0 +LEAF(setjmp) + alloc r8=ar.pfs,2,0,0,0 mov in1=1 br.cond.sptk.many __sigsetjmp - .endp setjmp +END(setjmp) - .global _setjmp - .proc _setjmp -_setjmp: +LEAF(_setjmp) alloc r8=ar.pfs,2,0,0,0 mov in1=0 br.cond.sptk.many __sigsetjmp - .endp _setjmp +END(_setjmp) /* __sigsetjmp(__jmp_buf buf, int savemask) */ - .align 32 - .global __sigsetjmp - .proc __sigsetjmp -__sigsetjmp: - alloc loc0=ar.pfs,2,2,2,0 + +ENTRY(__sigsetjmp) + .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(2) + alloc loc1=ar.pfs,2,2,2,0 mov r16=ar.unat ;; mov r17=ar.fpsr @@ -114,7 +105,8 @@ __sigsetjmp: ;; stf.spill.nta [r8]=f2,32 stf.spill.nta [r9]=f3,32 - mov loc1=rp + mov loc0=rp + .body ;; stf.spill.nta [r8]=f4,32 stf.spill.nta [r9]=f5,32 @@ -157,7 +149,7 @@ __sigsetjmp: mov r25=ar.unat mov out0=in0 - st8.nta [r2]=loc1,16 // b0 + st8.nta [r2]=loc0,16 // b0 st8.nta [r3]=r17,16 // b1 mov out1=in1 ;; @@ -167,7 +159,7 @@ __sigsetjmp: st8.nta [r2]=r20,16 // b4 st8.nta [r3]=r21,16 // b5 ;; - st8.nta [r2]=loc0,16 // ar.pfs + st8.nta [r2]=loc1,16 // ar.pfs st8.nta [r3]=r22,16 // ar.lc ;; st8.nta [r2]=r24,16 // pr @@ -178,10 +170,10 @@ __sigsetjmp: br.call.dpnt.few rp=__sigjmp_save .ret0: // force a new bundle ::q mov r8=0 - mov rp=loc1 - mov ar.pfs=loc0 + mov rp=loc0 + mov ar.pfs=loc1 ret - .endp __sigsetjmp +END(__sigsetjmp) weak_extern(_setjmp) weak_extern(setjmp) |