diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2014-12-25 17:44:49 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2014-12-25 17:44:49 +0100 |
commit | 2ab042f11e5848089b343cc565acb65d4a5bc64a (patch) | |
tree | fe13a0f81c426c6b5d6501de77c7e8fcdd2c4e86 /sys/src/ape | |
parent | ed5c9fd00a2e34a8a45288c986d52ac499db393b (diff) |
getfcr: change getfcr/setfcr to use VFP
Diffstat (limited to 'sys/src/ape')
-rw-r--r-- | sys/src/ape/lib/ap/arm/getfcr.s | 17 |
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 |