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