1.global fegetround
2.type fegetround,%function
3fegetround:
4	mrs x0, fpcr
5	and w0, w0, #0xc00000
6	ret
7
8.global __fesetround
9.hidden __fesetround
10.type __fesetround,%function
11__fesetround:
12	mrs x1, fpcr
13	bic w1, w1, #0xc00000
14	orr w1, w1, w0
15	msr fpcr, x1
16	mov w0, #0
17	ret
18
19.global fetestexcept
20.type fetestexcept,%function
21fetestexcept:
22	and w0, w0, #0x1f
23	mrs x1, fpsr
24	and w0, w0, w1
25	ret
26
27.global feclearexcept
28.type feclearexcept,%function
29feclearexcept:
30	and w0, w0, #0x1f
31	mrs x1, fpsr
32	bic w1, w1, w0
33	msr fpsr, x1
34	mov w0, #0
35	ret
36
37.global feraiseexcept
38.type feraiseexcept,%function
39feraiseexcept:
40	and w0, w0, #0x1f
41	mrs x1, fpsr
42	orr w1, w1, w0
43	msr fpsr, x1
44	mov w0, #0
45	ret
46
47.global fegetenv
48.type fegetenv,%function
49fegetenv:
50	mrs x1, fpcr
51	mrs x2, fpsr
52	stp w1, w2, [x0]
53	mov w0, #0
54	ret
55
56// TODO preserve some bits
57.global fesetenv
58.type fesetenv,%function
59fesetenv:
60	mov x1, #0
61	mov x2, #0
62	cmn x0, #1
63	b.eq 1f
64	ldp w1, w2, [x0]
651:	msr fpcr, x1
66	msr fpsr, x2
67	mov w0, #0
68	ret
69