summaryrefslogtreecommitdiff
path: root/sys/src/ape
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2014-12-25 17:44:49 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2014-12-25 17:44:49 +0100
commit2ab042f11e5848089b343cc565acb65d4a5bc64a (patch)
treefe13a0f81c426c6b5d6501de77c7e8fcdd2c4e86 /sys/src/ape
parented5c9fd00a2e34a8a45288c986d52ac499db393b (diff)
getfcr: change getfcr/setfcr to use VFP
Diffstat (limited to 'sys/src/ape')
-rw-r--r--sys/src/ape/lib/ap/arm/getfcr.s17
1 files changed, 11 insertions, 6 deletions
diff --git a/sys/src/ape/lib/ap/arm/getfcr.s b/sys/src/ape/lib/ap/arm/getfcr.s
index b27c7f082..4822a5f5b 100644
--- a/sys/src/ape/lib/ap/arm/getfcr.s
+++ b/sys/src/ape/lib/ap/arm/getfcr.s
@@ -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