]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/ape/lib/9/arm/getfcr.s
ape/lib9: sync arm getfcr.s implementation
[plan9front.git] / sys / src / ape / lib / 9 / arm / getfcr.s
old mode 100755 (executable)
new mode 100644 (file)
index b27c7f0..4822a5f
@@ -1,16 +1,21 @@
+/* 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 */
 
-TEXT   setfcr(SB), $4
-       MOVW    R0, FPCR
+#define Fpscr 1
+
+TEXT   setfcr(SB), $0
+       VMSR(0, Fpscr)
        RET
 
-TEXT   getfcr(SB), $4
-       MOVW    FPCR, R0
+TEXT   getfcr(SB), $0
+       VMRS(Fpscr, 0)
        RET
 
 TEXT   getfsr(SB), $0
-       MOVW    FPSR, R0
+       VMSR(0, Fpscr)
        RET
 
 TEXT   setfsr(SB), $0
-       MOVW    R0, FPSR
+       VMRS(Fpscr, 0)
        RET