1*c9945492SAndroid Build Coastguard Worker#if __ARM_PCS_VFP 2*c9945492SAndroid Build Coastguard Worker 3*c9945492SAndroid Build Coastguard Worker.syntax unified 4*c9945492SAndroid Build Coastguard Worker.fpu vfp 5*c9945492SAndroid Build Coastguard Worker 6*c9945492SAndroid Build Coastguard Worker.global fegetround 7*c9945492SAndroid Build Coastguard Worker.type fegetround,%function 8*c9945492SAndroid Build Coastguard Workerfegetround: 9*c9945492SAndroid Build Coastguard Worker fmrx r0, fpscr 10*c9945492SAndroid Build Coastguard Worker and r0, r0, #0xc00000 11*c9945492SAndroid Build Coastguard Worker bx lr 12*c9945492SAndroid Build Coastguard Worker 13*c9945492SAndroid Build Coastguard Worker.global __fesetround 14*c9945492SAndroid Build Coastguard Worker.hidden __fesetround 15*c9945492SAndroid Build Coastguard Worker.type __fesetround,%function 16*c9945492SAndroid Build Coastguard Worker__fesetround: 17*c9945492SAndroid Build Coastguard Worker fmrx r3, fpscr 18*c9945492SAndroid Build Coastguard Worker bic r3, r3, #0xc00000 19*c9945492SAndroid Build Coastguard Worker orr r3, r3, r0 20*c9945492SAndroid Build Coastguard Worker fmxr fpscr, r3 21*c9945492SAndroid Build Coastguard Worker mov r0, #0 22*c9945492SAndroid Build Coastguard Worker bx lr 23*c9945492SAndroid Build Coastguard Worker 24*c9945492SAndroid Build Coastguard Worker.global fetestexcept 25*c9945492SAndroid Build Coastguard Worker.type fetestexcept,%function 26*c9945492SAndroid Build Coastguard Workerfetestexcept: 27*c9945492SAndroid Build Coastguard Worker and r0, r0, #0x1f 28*c9945492SAndroid Build Coastguard Worker fmrx r3, fpscr 29*c9945492SAndroid Build Coastguard Worker and r0, r0, r3 30*c9945492SAndroid Build Coastguard Worker bx lr 31*c9945492SAndroid Build Coastguard Worker 32*c9945492SAndroid Build Coastguard Worker.global feclearexcept 33*c9945492SAndroid Build Coastguard Worker.type feclearexcept,%function 34*c9945492SAndroid Build Coastguard Workerfeclearexcept: 35*c9945492SAndroid Build Coastguard Worker and r0, r0, #0x1f 36*c9945492SAndroid Build Coastguard Worker fmrx r3, fpscr 37*c9945492SAndroid Build Coastguard Worker bic r3, r3, r0 38*c9945492SAndroid Build Coastguard Worker fmxr fpscr, r3 39*c9945492SAndroid Build Coastguard Worker mov r0, #0 40*c9945492SAndroid Build Coastguard Worker bx lr 41*c9945492SAndroid Build Coastguard Worker 42*c9945492SAndroid Build Coastguard Worker.global feraiseexcept 43*c9945492SAndroid Build Coastguard Worker.type feraiseexcept,%function 44*c9945492SAndroid Build Coastguard Workerferaiseexcept: 45*c9945492SAndroid Build Coastguard Worker and r0, r0, #0x1f 46*c9945492SAndroid Build Coastguard Worker fmrx r3, fpscr 47*c9945492SAndroid Build Coastguard Worker orr r3, r3, r0 48*c9945492SAndroid Build Coastguard Worker fmxr fpscr, r3 49*c9945492SAndroid Build Coastguard Worker mov r0, #0 50*c9945492SAndroid Build Coastguard Worker bx lr 51*c9945492SAndroid Build Coastguard Worker 52*c9945492SAndroid Build Coastguard Worker.global fegetenv 53*c9945492SAndroid Build Coastguard Worker.type fegetenv,%function 54*c9945492SAndroid Build Coastguard Workerfegetenv: 55*c9945492SAndroid Build Coastguard Worker fmrx r3, fpscr 56*c9945492SAndroid Build Coastguard Worker str r3, [r0] 57*c9945492SAndroid Build Coastguard Worker mov r0, #0 58*c9945492SAndroid Build Coastguard Worker bx lr 59*c9945492SAndroid Build Coastguard Worker 60*c9945492SAndroid Build Coastguard Worker.global fesetenv 61*c9945492SAndroid Build Coastguard Worker.type fesetenv,%function 62*c9945492SAndroid Build Coastguard Workerfesetenv: 63*c9945492SAndroid Build Coastguard Worker cmn r0, #1 64*c9945492SAndroid Build Coastguard Worker moveq r3, #0 65*c9945492SAndroid Build Coastguard Worker ldrne r3, [r0] 66*c9945492SAndroid Build Coastguard Worker fmxr fpscr, r3 67*c9945492SAndroid Build Coastguard Worker mov r0, #0 68*c9945492SAndroid Build Coastguard Worker bx lr 69*c9945492SAndroid Build Coastguard Worker 70*c9945492SAndroid Build Coastguard Worker#endif 71