|
@@ -3,17 +3,17 @@
|
|
|
.global fegetround
|
|
|
.type fegetround,%function
|
|
|
fegetround:
|
|
|
- mrc p10, 7, r0, cr1, cr0, 0
|
|
|
+ fmrx r0, fpscr
|
|
|
and r0, r0, #0xc00000
|
|
|
bx lr
|
|
|
|
|
|
.global __fesetround
|
|
|
.type __fesetround,%function
|
|
|
__fesetround:
|
|
|
- mrc p10, 7, r3, cr1, cr0, 0
|
|
|
+ fmrx r3, fpscr
|
|
|
bic r3, r3, #0xc00000
|
|
|
orr r3, r3, r0
|
|
|
- mcr p10, 7, r3, cr1, cr0, 0
|
|
|
+ fmxr fpscr, r3
|
|
|
mov r0, #0
|
|
|
bx lr
|
|
|
|
|
@@ -21,7 +21,7 @@ __fesetround:
|
|
|
.type fetestexcept,%function
|
|
|
fetestexcept:
|
|
|
and r0, r0, #0x1f
|
|
|
- mrc p10, 7, r3, cr1, cr0, 0
|
|
|
+ fmrx r3, fpscr
|
|
|
and r0, r0, r3
|
|
|
bx lr
|
|
|
|
|
@@ -29,9 +29,9 @@ fetestexcept:
|
|
|
.type feclearexcept,%function
|
|
|
feclearexcept:
|
|
|
and r0, r0, #0x1f
|
|
|
- mrc p10, 7, r3, cr1, cr0, 0
|
|
|
+ fmrx r3, fpscr
|
|
|
bic r3, r3, r0
|
|
|
- mcr p10, 7, r3, cr1, cr0, 0
|
|
|
+ fmxr fpscr, r3
|
|
|
mov r0, #0
|
|
|
bx lr
|
|
|
|
|
@@ -39,16 +39,16 @@ feclearexcept:
|
|
|
.type feraiseexcept,%function
|
|
|
feraiseexcept:
|
|
|
and r0, r0, #0x1f
|
|
|
- mrc p10, 7, r3, cr1, cr0, 0
|
|
|
+ fmrx r3, fpscr
|
|
|
orr r3, r3, r0
|
|
|
- mcr p10, 7, r3, cr1, cr0, 0
|
|
|
+ fmxr fpscr, r3
|
|
|
mov r0, #0
|
|
|
bx lr
|
|
|
|
|
|
.global fegetenv
|
|
|
.type fegetenv,%function
|
|
|
fegetenv:
|
|
|
- mrc p10, 7, r3, cr1, cr0, 0
|
|
|
+ fmrx r3, fpscr
|
|
|
str r3, [r0]
|
|
|
mov r0, #0
|
|
|
bx lr
|
|
@@ -59,6 +59,6 @@ fesetenv:
|
|
|
cmn r0, #1
|
|
|
moveq r3, #0
|
|
|
ldrne r3, [r0]
|
|
|
- mcr p10, 7, r3, cr1, cr0, 0
|
|
|
+ fmxr fpscr, r3
|
|
|
mov r0, #0
|
|
|
bx lr
|