mirror of git://sourceware.org/git/glibc.git
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.
This commit is contained in:
parent
c75d02f056
commit
28cf305854
|
|
@ -1,3 +1,10 @@
|
||||||
|
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.
|
||||||
|
|
||||||
2003-03-27 Jakub Jelinek <jakub@redhat.com>
|
2003-03-27 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/sysconf.c (__sysconf) <_SC_MONOTONIC_CLOCK>:
|
* sysdeps/unix/sysv/linux/sysconf.c (__sysconf) <_SC_MONOTONIC_CLOCK>:
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
|
* sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
|
||||||
(timer_settime): Fix typo.
|
(timer_settime): Fix typo.
|
||||||
|
* sysdeps/unix/sysv/linux/timer_getoverr.c
|
||||||
|
[!__ASSUME_POSIX_TIMERS] (timer_getoverrun): Likewise.
|
||||||
|
|
||||||
2003-03-27 Jakub Jelinek <jakub@redhat.com>
|
2003-03-27 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ timer_getoverrun (timerid)
|
||||||
{
|
{
|
||||||
# undef timer_getoverrun
|
# undef timer_getoverrun
|
||||||
# ifndef __ASSUME_POSIX_TIMERS
|
# ifndef __ASSUME_POSIX_TIMERS
|
||||||
if (__no_posix_timers == 0)
|
if (__no_posix_timers >= 0)
|
||||||
# endif
|
# endif
|
||||||
{
|
{
|
||||||
struct timer *kt = (struct timer *) timerid;
|
struct timer *kt = (struct timer *) timerid;
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@
|
||||||
other than the PRESERVED state. */
|
other than the PRESERVED state. */
|
||||||
|
|
||||||
ENTRY(__getcontext)
|
ENTRY(__getcontext)
|
||||||
|
.prologue
|
||||||
alloc r16 = ar.pfs, 1, 0, 3, 0
|
alloc r16 = ar.pfs, 1, 0, 3, 0
|
||||||
|
|
||||||
// sigprocmask (SIG_BLOCK, NULL, &sc->sc_mask):
|
// sigprocmask (SIG_BLOCK, NULL, &sc->sc_mask):
|
||||||
|
|
@ -53,7 +54,9 @@ ENTRY(__getcontext)
|
||||||
add r2 = SC_GR+1*8, r32
|
add r2 = SC_GR+1*8, r32
|
||||||
;;
|
;;
|
||||||
mov.m rBSP = ar.bsp
|
mov.m rBSP = ar.bsp
|
||||||
|
.save ar.unat, rUNAT
|
||||||
mov.m rUNAT = ar.unat
|
mov.m rUNAT = ar.unat
|
||||||
|
.body
|
||||||
add r3 = SC_GR+4*8, r32
|
add r3 = SC_GR+4*8, r32
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
@ -65,8 +68,8 @@ ENTRY(__getcontext)
|
||||||
.mem.offset 8,0; st8.spill [r3] = r6, 48
|
.mem.offset 8,0; st8.spill [r3] = r6, 48
|
||||||
and rTMP = ~0x3, rRSC
|
and rTMP = ~0x3, rRSC
|
||||||
;;
|
;;
|
||||||
st8.spill [r2] = r7, (SC_FR+2*16-(SC_GR+7*8))
|
.mem.offset 0,0; st8.spill [r2] = r7, (SC_FR+2*16-(SC_GR+7*8))
|
||||||
st8.spill [r3] = sp, (SC_FR+3*16-(SC_GR+12*8))
|
.mem.offset 8,0; st8.spill [r3] = sp, (SC_FR+3*16-(SC_GR+12*8))
|
||||||
;;
|
;;
|
||||||
mov.m ar.rsc = rTMP // put RSE into enforced lazy mode
|
mov.m ar.rsc = rTMP // put RSE into enforced lazy mode
|
||||||
mov.m rNAT = ar.unat
|
mov.m rNAT = ar.unat
|
||||||
|
|
@ -119,8 +122,8 @@ ENTRY(__getcontext)
|
||||||
stf.spill [r3] = f31, 32
|
stf.spill [r3] = f31, 32
|
||||||
mov rB1 = b1
|
mov rB1 = b1
|
||||||
;;
|
;;
|
||||||
|
mov ar.unat = rUNAT // we're done spilling integer regs; restore caller's UNaT
|
||||||
add r2 = SC_NAT, r32
|
add r2 = SC_NAT, r32
|
||||||
nop 0
|
|
||||||
add r3 = SC_BSP, r32
|
add r3 = SC_BSP, r32
|
||||||
;;
|
;;
|
||||||
st8 [r2] = rNAT, (SC_RNAT-SC_NAT)
|
st8 [r2] = rNAT, (SC_RNAT-SC_NAT)
|
||||||
|
|
|
||||||
|
|
@ -87,21 +87,22 @@ libc_hidden_def (_setjmp)
|
||||||
ENTRY(__sigsetjmp)
|
ENTRY(__sigsetjmp)
|
||||||
.prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(2)
|
.prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(2)
|
||||||
alloc loc1=ar.pfs,2,2,2,0
|
alloc loc1=ar.pfs,2,2,2,0
|
||||||
|
.save ar.unat, r16
|
||||||
mov r16=ar.unat
|
mov r16=ar.unat
|
||||||
;;
|
;;
|
||||||
mov r17=ar.fpsr
|
mov r17=ar.fpsr
|
||||||
mov r2=in0
|
mov r2=in0
|
||||||
add r3=8,in0
|
add r3=8,in0
|
||||||
;;
|
;;
|
||||||
st8.spill.nta [r2]=sp,16 // r12 (sp)
|
.mem.offset 8,0; st8.spill.nta [r2]=sp,16 // r12 (sp)
|
||||||
st8.spill.nta [r3]=gp,16 // r1 (gp)
|
.mem.offset 0,0; st8.spill.nta [r3]=gp,16 // r1 (gp)
|
||||||
;;
|
;;
|
||||||
st8.nta [r2]=r16,16 // save caller's unat
|
st8.nta [r2]=r16,16 // save caller's unat
|
||||||
st8.nta [r3]=r17,16 // save fpsr
|
st8.nta [r3]=r17,16 // save fpsr
|
||||||
add r8=0xa0,in0
|
add r8=0xa0,in0
|
||||||
;;
|
;;
|
||||||
st8.spill.nta [r2]=r4,16 // r4
|
.mem.offset 8,0; st8.spill.nta [r2]=r4,16 // r4
|
||||||
st8.spill.nta [r3]=r5,16 // r5
|
.mem.offset 0,0; st8.spill.nta [r3]=r5,16 // r5
|
||||||
add r9=0xb0,in0
|
add r9=0xb0,in0
|
||||||
;;
|
;;
|
||||||
stf.spill.nta [r8]=f2,32
|
stf.spill.nta [r8]=f2,32
|
||||||
|
|
@ -143,8 +144,8 @@ ENTRY(__sigsetjmp)
|
||||||
stf.spill.nta [r8]=f30
|
stf.spill.nta [r8]=f30
|
||||||
stf.spill.nta [r9]=f31
|
stf.spill.nta [r9]=f31
|
||||||
|
|
||||||
st8.spill.nta [r2]=r6,16 // r6
|
.mem.offset 8,0; st8.spill.nta [r2]=r6,16 // r6
|
||||||
st8.spill.nta [r3]=r7,16 // r7
|
.mem.offset 0,0; st8.spill.nta [r3]=r7,16 // r7
|
||||||
;;
|
;;
|
||||||
mov r23=ar.bsp
|
mov r23=ar.bsp
|
||||||
mov r25=ar.unat
|
mov r25=ar.unat
|
||||||
|
|
@ -170,9 +171,10 @@ ENTRY(__sigsetjmp)
|
||||||
st8.nta [r3]=in0 // &__jmp_buf
|
st8.nta [r3]=in0 // &__jmp_buf
|
||||||
br.call.dpnt.few rp=__sigjmp_save
|
br.call.dpnt.few rp=__sigjmp_save
|
||||||
.ret0: // force a new bundle ::q
|
.ret0: // force a new bundle ::q
|
||||||
mov r8=0
|
mov.m ar.unat=r16 // restore caller's unat
|
||||||
mov rp=loc0
|
mov rp=loc0
|
||||||
mov ar.pfs=loc1
|
mov ar.pfs=loc1
|
||||||
|
mov r8=0
|
||||||
ret
|
ret
|
||||||
END(__sigsetjmp)
|
END(__sigsetjmp)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue