1570af302Sopenharmony_ci.global fegetround 2570af302Sopenharmony_ci.type fegetround,%function 3570af302Sopenharmony_cifegetround: 4570af302Sopenharmony_ci mrs x0, fpcr 5570af302Sopenharmony_ci and w0, w0, #0xc00000 6570af302Sopenharmony_ci ret 7570af302Sopenharmony_ci 8570af302Sopenharmony_ci.global __fesetround 9570af302Sopenharmony_ci.hidden __fesetround 10570af302Sopenharmony_ci.type __fesetround,%function 11570af302Sopenharmony_ci__fesetround: 12570af302Sopenharmony_ci mrs x1, fpcr 13570af302Sopenharmony_ci bic w1, w1, #0xc00000 14570af302Sopenharmony_ci orr w1, w1, w0 15570af302Sopenharmony_ci msr fpcr, x1 16570af302Sopenharmony_ci mov w0, #0 17570af302Sopenharmony_ci ret 18570af302Sopenharmony_ci 19570af302Sopenharmony_ci.global fetestexcept 20570af302Sopenharmony_ci.type fetestexcept,%function 21570af302Sopenharmony_cifetestexcept: 22570af302Sopenharmony_ci and w0, w0, #0x1f 23570af302Sopenharmony_ci mrs x1, fpsr 24570af302Sopenharmony_ci and w0, w0, w1 25570af302Sopenharmony_ci ret 26570af302Sopenharmony_ci 27570af302Sopenharmony_ci.global feclearexcept 28570af302Sopenharmony_ci.type feclearexcept,%function 29570af302Sopenharmony_cifeclearexcept: 30570af302Sopenharmony_ci and w0, w0, #0x1f 31570af302Sopenharmony_ci mrs x1, fpsr 32570af302Sopenharmony_ci bic w1, w1, w0 33570af302Sopenharmony_ci msr fpsr, x1 34570af302Sopenharmony_ci mov w0, #0 35570af302Sopenharmony_ci ret 36570af302Sopenharmony_ci 37570af302Sopenharmony_ci.global feraiseexcept 38570af302Sopenharmony_ci.type feraiseexcept,%function 39570af302Sopenharmony_ciferaiseexcept: 40570af302Sopenharmony_ci and w0, w0, #0x1f 41570af302Sopenharmony_ci mrs x1, fpsr 42570af302Sopenharmony_ci orr w1, w1, w0 43570af302Sopenharmony_ci msr fpsr, x1 44570af302Sopenharmony_ci mov w0, #0 45570af302Sopenharmony_ci ret 46570af302Sopenharmony_ci 47570af302Sopenharmony_ci.global fegetenv 48570af302Sopenharmony_ci.type fegetenv,%function 49570af302Sopenharmony_cifegetenv: 50570af302Sopenharmony_ci mrs x1, fpcr 51570af302Sopenharmony_ci mrs x2, fpsr 52570af302Sopenharmony_ci stp w1, w2, [x0] 53570af302Sopenharmony_ci mov w0, #0 54570af302Sopenharmony_ci ret 55570af302Sopenharmony_ci 56570af302Sopenharmony_ci// TODO preserve some bits 57570af302Sopenharmony_ci.global fesetenv 58570af302Sopenharmony_ci.type fesetenv,%function 59570af302Sopenharmony_cifesetenv: 60570af302Sopenharmony_ci mov x1, #0 61570af302Sopenharmony_ci mov x2, #0 62570af302Sopenharmony_ci cmn x0, #1 63570af302Sopenharmony_ci b.eq 1f 64570af302Sopenharmony_ci ldp w1, w2, [x0] 65570af302Sopenharmony_ci1: msr fpcr, x1 66570af302Sopenharmony_ci msr fpsr, x2 67570af302Sopenharmony_ci mov w0, #0 68570af302Sopenharmony_ci ret 69