github.com/afumu/libc@v0.0.6/musl/src/fenv/arm/fenv-hf.S (about) 1 #if __ARM_PCS_VFP 2 3 .syntax unified 4 .fpu vfp 5 6 .global fegetround 7 .type fegetround,%function 8 fegetround: 9 fmrx r0, fpscr 10 and r0, r0, #0xc00000 11 bx lr 12 13 .global __fesetround 14 .hidden __fesetround 15 .type __fesetround,%function 16 __fesetround: 17 fmrx r3, fpscr 18 bic r3, r3, #0xc00000 19 orr r3, r3, r0 20 fmxr fpscr, r3 21 mov r0, #0 22 bx lr 23 24 .global fetestexcept 25 .type fetestexcept,%function 26 fetestexcept: 27 and r0, r0, #0x1f 28 fmrx r3, fpscr 29 and r0, r0, r3 30 bx lr 31 32 .global feclearexcept 33 .type feclearexcept,%function 34 feclearexcept: 35 and r0, r0, #0x1f 36 fmrx r3, fpscr 37 bic r3, r3, r0 38 fmxr fpscr, r3 39 mov r0, #0 40 bx lr 41 42 .global feraiseexcept 43 .type feraiseexcept,%function 44 feraiseexcept: 45 and r0, r0, #0x1f 46 fmrx r3, fpscr 47 orr r3, r3, r0 48 fmxr fpscr, r3 49 mov r0, #0 50 bx lr 51 52 .global fegetenv 53 .type fegetenv,%function 54 fegetenv: 55 fmrx r3, fpscr 56 str r3, [r0] 57 mov r0, #0 58 bx lr 59 60 .global fesetenv 61 .type fesetenv,%function 62 fesetenv: 63 cmn r0, #1 64 moveq r3, #0 65 ldrne r3, [r0] 66 fmxr fpscr, r3 67 mov r0, #0 68 bx lr 69 70 #endif