387234bc2d012b14aef9ffc9d281067e7be049ad
[musl] / src / fenv / armhf / fenv.s
1 .global fegetround
2 .type fegetround,%function
3 fegetround:
4         mrc p10, 7, r0, cr1, cr0, 0
5         and r0, r0, #0xc00000
6         bx lr
7
8 .global __fesetround
9 .type __fesetround,%function
10 __fesetround:
11         mrc p10, 7, r3, cr1, cr0, 0
12         bic r3, r3, #0xc00000
13         orr r3, r3, r0
14         mcr p10, 7, r3, cr1, cr0, 0
15         mov r0, #0
16         bx lr
17
18 .global fetestexcept
19 .type fetestexcept,%function
20 fetestexcept:
21         and r0, r0, #0x1f
22         mrc p10, 7, r3, cr1, cr0, 0
23         and r0, r0, r3
24         bx lr
25
26 .global feclearexcept
27 .type feclearexcept,%function
28 feclearexcept:
29         and r0, r0, #0x1f
30         mrc p10, 7, r3, cr1, cr0, 0
31         bic r3, r3, r0
32         mcr p10, 7, r3, cr1, cr0, 0
33         mov r0, #0
34         bx lr
35
36 .global feraiseexcept
37 .type feraiseexcept,%function
38 feraiseexcept:
39         and r0, r0, #0x1f
40         mrc p10, 7, r3, cr1, cr0, 0
41         orr r3, r3, r0
42         mcr p10, 7, r3, cr1, cr0, 0
43         mov r0, #0
44         bx lr
45
46 .global fegetenv
47 .type fegetenv,%function
48 fegetenv:
49         mrc p10, 7, r3, cr1, cr0, 0
50         str r3, [r0]
51         mov r0, #0
52         bx lr
53
54 .global fesetenv
55 .type fesetenv,%function
56 fesetenv:
57         cmn r0, #1
58         moveq r3, #0
59         ldrne r3, [r0]
60         mcr p10, 7, r3, cr1, cr0, 0
61         mov r0, #0
62         bx lr