]> git.lizzy.rs Git - plan9front.git/commitdiff
ape/lib9: sync arm getfcr.s implementation
authorOri Bernstein <ori@eigenstate.org>
Tue, 9 Feb 2021 00:07:09 +0000 (16:07 -0800)
committerOri Bernstein <ori@eigenstate.org>
Tue, 9 Feb 2021 00:07:09 +0000 (16:07 -0800)
The arm assembler supports movw to handle
getfcr and setfcr now, no need to hack it
with macros; sync from plan9 libc.

sys/src/ape/lib/9/arm/getfcr.s

index b27c7f08279f67e7b85c911a47406b86e9243344..4822a5f5bf70c55ebd1e7e49f9158cfb7401ca72 100644 (file)
@@ -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