mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-10 07:10:06 +00:00
Update.
2003-05-13 David Mosberger <davidm@hpl.hp.com> * sysdeps/unix/sysv/linux/ia64/setjmp.S: Fix the fix from 2003-03-27: setjmp is NOT a leaf-routine (due to the call to __sigjmp_save) so we can't keep the saved unat value in a scratch register (r16). Use loc2 instead.
This commit is contained in:
parent
1ad318d369
commit
c9300aefcd
@ -1,3 +1,10 @@
|
||||
2003-05-13 David Mosberger <davidm@hpl.hp.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/ia64/setjmp.S: Fix the fix from
|
||||
2003-03-27: setjmp is NOT a leaf-routine (due to the call to
|
||||
__sigjmp_save) so we can't keep the saved unat value in a scratch
|
||||
register (r16). Use loc2 instead.
|
||||
|
||||
2003-05-13 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* csu/Makefile: Do compile elf-init with PIC flag since in dynamic
|
||||
|
@ -86,9 +86,9 @@ libc_hidden_def (_setjmp)
|
||||
|
||||
ENTRY(__sigsetjmp)
|
||||
.prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(2)
|
||||
alloc loc1=ar.pfs,2,2,2,0
|
||||
.save ar.unat, r16
|
||||
mov r16=ar.unat
|
||||
alloc loc1=ar.pfs,2,3,2,0
|
||||
.save ar.unat, loc2
|
||||
mov loc2=ar.unat
|
||||
;;
|
||||
mov r17=ar.fpsr
|
||||
mov r2=in0
|
||||
@ -97,7 +97,7 @@ ENTRY(__sigsetjmp)
|
||||
.mem.offset 8,0; st8.spill.nta [r2]=sp,16 // r12 (sp)
|
||||
.mem.offset 0,0; st8.spill.nta [r3]=gp,16 // r1 (gp)
|
||||
;;
|
||||
st8.nta [r2]=r16,16 // save caller's unat
|
||||
st8.nta [r2]=loc2,16 // save caller's unat
|
||||
st8.nta [r3]=r17,16 // save fpsr
|
||||
add r8=0xa0,in0
|
||||
;;
|
||||
@ -171,7 +171,7 @@ ENTRY(__sigsetjmp)
|
||||
st8.nta [r3]=in0 // &__jmp_buf
|
||||
br.call.dpnt.few rp=__sigjmp_save
|
||||
.ret0: // force a new bundle ::q
|
||||
mov.m ar.unat=r16 // restore caller's unat
|
||||
mov.m ar.unat=loc2 // restore caller's unat
|
||||
mov rp=loc0
|
||||
mov ar.pfs=loc1
|
||||
mov r8=0
|
||||
|
Loading…
Reference in New Issue
Block a user