diff options
author | peter <peter@FreeBSD.org> | 2000-05-12 21:48:54 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2000-05-12 21:48:54 +0000 |
commit | 0f1968a738502e388bd99a8120cd30a7c4bef4b7 (patch) | |
tree | e062126969b89e9400639caa139b03608f0b0dca /lib/libstand | |
parent | fda97442c1d31b908b3ed05db5ef94d6da71991e (diff) | |
download | FreeBSD-src-0f1968a738502e388bd99a8120cd30a7c4bef4b7.zip FreeBSD-src-0f1968a738502e388bd99a8120cd30a7c4bef4b7.tar.gz |
We compile expressly on the alpha with -mno-fp-regs - so do not use them
explicitly here. This was the original cause of instruction faults on
the Alpha in loader. (not this code, but the same problem in libficl.a)
Diffstat (limited to 'lib/libstand')
-rw-r--r-- | lib/libstand/alpha/_setjmp.S | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/libstand/alpha/_setjmp.S b/lib/libstand/alpha/_setjmp.S index 96be5ec..1587978 100644 --- a/lib/libstand/alpha/_setjmp.S +++ b/lib/libstand/alpha/_setjmp.S @@ -60,6 +60,7 @@ LEAF(_setjmp, 1) /* Too bad we can't check if we actually used FP */ ldiq t0, 1 stq t0, (36 * 8)(a0) /* say we've used FP. */ +#if 0 stt fs0, ((2 + 37) * 8)(a0) /* saved bits of sc_fpregs */ stt fs1, ((3 + 37) * 8)(a0) stt fs2, ((4 + 37) * 8)(a0) @@ -71,6 +72,7 @@ LEAF(_setjmp, 1) mf_fpcr ft0 /* get FP control reg */ stt ft0, (69 * 8)(a0) /* and store it in sc_fpcr */ stq zero, (70 * 8)(a0) /* FP software control XXX */ +#endif stq zero, (71 * 8)(a0) /* sc_reserved[0] */ stq zero, (72 * 8)(a0) /* sc_reserved[1] */ stq zero, (73 * 8)(a0) /* sc_xxx[0] */ @@ -99,6 +101,7 @@ LEAF(_longjmp, 2) ldq s6, ((15 + 4) * 8)(a0) /* ldq ra, ((26 + 4) * 8)(a0) set above */ ldq sp, ((30 + 4) * 8)(a0) +#if 0 ldt fs0, ((2 + 37) * 8)(a0) /* saved bits of sc_fpregs */ ldt fs1, ((3 + 37) * 8)(a0) ldt fs2, ((4 + 37) * 8)(a0) @@ -109,6 +112,7 @@ LEAF(_longjmp, 2) ldt fs7, ((9 + 37) * 8)(a0) ldt ft0, (69 * 8)(a0) /* get sc_fpcr */ mt_fpcr ft0 /* and restore it. */ +#endif mov a1, v0 /* return second arg */ RET |