diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-03-27 19:51:26 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-03-27 19:51:26 +0000 |
commit | 28cf305854fd91eaa5b5e16d23a612e094f02920 (patch) | |
tree | ee05cd3def653f170669ff20cbdd86741e7455cf /sysdeps/unix/sysv/linux/ia64/setjmp.S | |
parent | c75d02f05653316b8dfccca404a1e33c49562877 (diff) | |
download | glibc-28cf305854fd91eaa5b5e16d23a612e094f02920.tar glibc-28cf305854fd91eaa5b5e16d23a612e094f02920.tar.gz glibc-28cf305854fd91eaa5b5e16d23a612e094f02920.tar.bz2 glibc-28cf305854fd91eaa5b5e16d23a612e094f02920.zip |
Update.
2003-03-27 David Mosberger <davidm@hpl.hp.com>
* sysdeps/unix/sysv/linux/ia64/getcontext.S: Restore caller's
ar.unat before returning. Add missing .mem.offset directives
to ensure file gets assembled without warnings.
* sysdeps/unix/sysv/linux/ia64/setjmp.S: Likewise.
Diffstat (limited to 'sysdeps/unix/sysv/linux/ia64/setjmp.S')
-rw-r--r-- | sysdeps/unix/sysv/linux/ia64/setjmp.S | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/sysdeps/unix/sysv/linux/ia64/setjmp.S b/sysdeps/unix/sysv/linux/ia64/setjmp.S index 954d805f6c..dc143a3100 100644 --- a/sysdeps/unix/sysv/linux/ia64/setjmp.S +++ b/sysdeps/unix/sysv/linux/ia64/setjmp.S @@ -87,21 +87,22 @@ 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 ;; mov r17=ar.fpsr mov r2=in0 add r3=8,in0 ;; - st8.spill.nta [r2]=sp,16 // r12 (sp) - st8.spill.nta [r3]=gp,16 // r1 (gp) +.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 [r3]=r17,16 // save fpsr add r8=0xa0,in0 ;; - st8.spill.nta [r2]=r4,16 // r4 - st8.spill.nta [r3]=r5,16 // r5 +.mem.offset 8,0; st8.spill.nta [r2]=r4,16 // r4 +.mem.offset 0,0; st8.spill.nta [r3]=r5,16 // r5 add r9=0xb0,in0 ;; stf.spill.nta [r8]=f2,32 @@ -143,8 +144,8 @@ ENTRY(__sigsetjmp) stf.spill.nta [r8]=f30 stf.spill.nta [r9]=f31 - st8.spill.nta [r2]=r6,16 // r6 - st8.spill.nta [r3]=r7,16 // r7 +.mem.offset 8,0; st8.spill.nta [r2]=r6,16 // r6 +.mem.offset 0,0; st8.spill.nta [r3]=r7,16 // r7 ;; mov r23=ar.bsp mov r25=ar.unat @@ -170,9 +171,10 @@ ENTRY(__sigsetjmp) st8.nta [r3]=in0 // &__jmp_buf br.call.dpnt.few rp=__sigjmp_save .ret0: // force a new bundle ::q - mov r8=0 + mov.m ar.unat=r16 // restore caller's unat mov rp=loc0 mov ar.pfs=loc1 + mov r8=0 ret END(__sigsetjmp) |