diff options
author | Ulrich Drepper <drepper@redhat.com> | 2001-04-06 21:58:34 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2001-04-06 21:58:34 +0000 |
commit | 1a51bde7717d8f0458b682576029576225cf874f (patch) | |
tree | 3fd6670fdd151f6b463039b2121caaee06496bf3 /sysdeps/unix/sysv/linux/ia64/setcontext.S | |
parent | 99ee59707bafccd24e6dd38190cb3501ffa5c70a (diff) | |
download | glibc-1a51bde7717d8f0458b682576029576225cf874f.tar glibc-1a51bde7717d8f0458b682576029576225cf874f.tar.gz glibc-1a51bde7717d8f0458b682576029576225cf874f.tar.bz2 glibc-1a51bde7717d8f0458b682576029576225cf874f.zip |
Update.
2001-04-06 David Mosberger <davidm@hpl.hp.com>
* stdlib/tst-setcontext.c: Move st2[] to global scope.
(f2): Verify that stack pointer is inside st2[].
* sysdeps/unix/sysv/linux/ia64/getcontext.S: It helps to save r12.
* sysdeps/unix/sysv/linux/ia64/setcontext.S: It helps to restore r12.
Diffstat (limited to 'sysdeps/unix/sysv/linux/ia64/setcontext.S')
-rw-r--r-- | sysdeps/unix/sysv/linux/ia64/setcontext.S | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/sysdeps/unix/sysv/linux/ia64/setcontext.S b/sysdeps/unix/sysv/linux/ia64/setcontext.S index 0d6e9a0bce..3964ed397a 100644 --- a/sysdeps/unix/sysv/linux/ia64/setcontext.S +++ b/sysdeps/unix/sysv/linux/ia64/setcontext.S @@ -87,9 +87,12 @@ ENTRY(__setcontext) ld8.fill r5 = [r3], 16 mov b0 = rB0 ;; - ld8.fill r6 = [r2] + ld8.fill r6 = [r2], 48 ld8.fill r7 = [r3], (SC_FR+2*16-(SC_GR+7*8)) - adds r2 = (SC_FR+3*16-(SC_GR+6*8)), r2 + ;; + ld8.fill sp = [r2], (SC_FR+3*16-(SC_GR+12*8)) + mov.m ar.fpsr = rFPSR + mov.i ar.pfs = rPFS ;; ldf.fill f3 = [r2], 16 ldf.fill f2 = [r3], 48 @@ -132,10 +135,8 @@ ENTRY(__setcontext) mov pr = rPR, -1 ;; mov.m ar.rsc = rTMP // put RSE into enforced lazy mode - mov.m ar.fpsr = rFPSR - mov.i ar.pfs = rPFS ;; - loadrs // drop dirty partition is empty + loadrs // drop dirty partition ;; mov.m ar.bspstore = rBSP mov.m ar.unat = rUNAT |