From a9a2bdd7c75a381b92a3356435a2402fd953ec77 Mon Sep 17 00:00:00 2001 From: Charles Forsyth Date: Wed, 16 Mar 2016 21:20:19 +0000 Subject: save hardware fp status --- emu/Plan9/asm-arm.s | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/emu/Plan9/asm-arm.s b/emu/Plan9/asm-arm.s index 4b9ab724..a6fbc071 100644 --- a/emu/Plan9/asm-arm.s +++ b/emu/Plan9/asm-arm.s @@ -1,3 +1,9 @@ +/* for VFP */ +#define VMRS(fp, cpu) WORD $(0xeef00a10 | (fp)<<16 | (cpu)<<12) /* FP → arm */ +#define VMSR(cpu, fp) WORD $(0xeee00a10 | (fp)<<16 | (cpu)<<12) /* arm → FP */ + +#define Fpscr 1 + TEXT tramp(SB), 1, $0 MOVW fn+4(FP), R1 /* func to exec */ MOVW arg+8(FP), R2 /* argument */ @@ -16,7 +22,11 @@ RET TEXT FPsave(SB), 1, $0 + VMRS(Fpscr, 1) + MOVW R1, 0(R0) RET TEXT FPrestore(SB), 1, $0 + MOVW (R0), R0 + VMSR(0, Fpscr) RET -- cgit v1.2.3