|
@@ -0,0 +1,60 @@
|
|
|
+.global fegetround
|
|
|
+.type fegetround,%function
|
|
|
+fegetround:
|
|
|
+ mrc p10, 7, r0, cr1, cr0, 0
|
|
|
+ and r0, r0, #0xc00000
|
|
|
+ bx lr
|
|
|
+
|
|
|
+.global fesetround
|
|
|
+.type fesetround,%function
|
|
|
+fesetround:
|
|
|
+ mrc p10, 7, r3, cr1, cr0, 0
|
|
|
+ bic r3, r3, #0xc00000
|
|
|
+ orr r3, r3, r0
|
|
|
+ mcr p10, 7, r3, cr1, cr0, 0
|
|
|
+ mov r0, #0
|
|
|
+ bx lr
|
|
|
+
|
|
|
+.global fetestexcept
|
|
|
+.type fetestexcept,%function
|
|
|
+fetestexcept:
|
|
|
+ mrc p10, 7, r3, cr1, cr0, 0
|
|
|
+ and r0, r0, r3
|
|
|
+ bx lr
|
|
|
+
|
|
|
+.global feclearexcept
|
|
|
+.type feclearexcept,%function
|
|
|
+feclearexcept:
|
|
|
+ mrc p10, 7, r3, cr1, cr0, 0
|
|
|
+ bic r3, r3, r0
|
|
|
+ mcr p10, 7, r3, cr1, cr0, 0
|
|
|
+ mov r0, #0
|
|
|
+ bx lr
|
|
|
+
|
|
|
+.global feraiseexcept
|
|
|
+.type feraiseexcept,%function
|
|
|
+feraiseexcept:
|
|
|
+ mrc p10, 7, r3, cr1, cr0, 0
|
|
|
+ orr r3, r3, r0
|
|
|
+ mcr p10, 7, r3, cr1, cr0, 0
|
|
|
+ mov r0, #0
|
|
|
+ bx lr
|
|
|
+
|
|
|
+.global fegetenv
|
|
|
+.type fegetenv,%function
|
|
|
+fegetenv:
|
|
|
+ mrc p10, 7, r3, cr1, cr0, 0
|
|
|
+ str r3, [r0]
|
|
|
+ mov r0, #0
|
|
|
+ bx lr
|
|
|
+
|
|
|
+.global fesetenv
|
|
|
+.type fesetenv,%function
|
|
|
+fesetenv:
|
|
|
+ mrc p10, 7, r3, cr1, cr0, 0
|
|
|
+ cmn r0, #1
|
|
|
+ moveq r3, #0
|
|
|
+ ldrne r3, [r0]
|
|
|
+ mcr p10, 7, r3, cr1, cr0, 0
|
|
|
+ mov r0, #0
|
|
|
+ bx lr
|