xref: /aosp_15_r20/external/musl/src/fenv/riscv32/fenv.S (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker#ifdef __riscv_flen
2*c9945492SAndroid Build Coastguard Worker
3*c9945492SAndroid Build Coastguard Worker.global feclearexcept
4*c9945492SAndroid Build Coastguard Worker.type feclearexcept, %function
5*c9945492SAndroid Build Coastguard Workerfeclearexcept:
6*c9945492SAndroid Build Coastguard Worker	csrc fflags, a0
7*c9945492SAndroid Build Coastguard Worker	li a0, 0
8*c9945492SAndroid Build Coastguard Worker	ret
9*c9945492SAndroid Build Coastguard Worker
10*c9945492SAndroid Build Coastguard Worker.global feraiseexcept
11*c9945492SAndroid Build Coastguard Worker.type feraiseexcept, %function
12*c9945492SAndroid Build Coastguard Workerferaiseexcept:
13*c9945492SAndroid Build Coastguard Worker	csrs fflags, a0
14*c9945492SAndroid Build Coastguard Worker	li a0, 0
15*c9945492SAndroid Build Coastguard Worker	ret
16*c9945492SAndroid Build Coastguard Worker
17*c9945492SAndroid Build Coastguard Worker.global fetestexcept
18*c9945492SAndroid Build Coastguard Worker.type fetestexcept, %function
19*c9945492SAndroid Build Coastguard Workerfetestexcept:
20*c9945492SAndroid Build Coastguard Worker	frflags t0
21*c9945492SAndroid Build Coastguard Worker	and a0, t0, a0
22*c9945492SAndroid Build Coastguard Worker	ret
23*c9945492SAndroid Build Coastguard Worker
24*c9945492SAndroid Build Coastguard Worker.global fegetround
25*c9945492SAndroid Build Coastguard Worker.type fegetround, %function
26*c9945492SAndroid Build Coastguard Workerfegetround:
27*c9945492SAndroid Build Coastguard Worker	frrm a0
28*c9945492SAndroid Build Coastguard Worker	ret
29*c9945492SAndroid Build Coastguard Worker
30*c9945492SAndroid Build Coastguard Worker.global __fesetround
31*c9945492SAndroid Build Coastguard Worker.type __fesetround, %function
32*c9945492SAndroid Build Coastguard Worker__fesetround:
33*c9945492SAndroid Build Coastguard Worker	fsrm t0, a0
34*c9945492SAndroid Build Coastguard Worker	li a0, 0
35*c9945492SAndroid Build Coastguard Worker	ret
36*c9945492SAndroid Build Coastguard Worker
37*c9945492SAndroid Build Coastguard Worker.global fegetenv
38*c9945492SAndroid Build Coastguard Worker.type fegetenv, %function
39*c9945492SAndroid Build Coastguard Workerfegetenv:
40*c9945492SAndroid Build Coastguard Worker	frcsr t0
41*c9945492SAndroid Build Coastguard Worker	sw t0, 0(a0)
42*c9945492SAndroid Build Coastguard Worker	li a0, 0
43*c9945492SAndroid Build Coastguard Worker	ret
44*c9945492SAndroid Build Coastguard Worker
45*c9945492SAndroid Build Coastguard Worker.global fesetenv
46*c9945492SAndroid Build Coastguard Worker.type fesetenv, %function
47*c9945492SAndroid Build Coastguard Workerfesetenv:
48*c9945492SAndroid Build Coastguard Worker	li t2, -1
49*c9945492SAndroid Build Coastguard Worker	li t1, 0
50*c9945492SAndroid Build Coastguard Worker	beq a0, t2, 1f
51*c9945492SAndroid Build Coastguard Worker	lw t1, 0(a0)
52*c9945492SAndroid Build Coastguard Worker1:	fscsr t1
53*c9945492SAndroid Build Coastguard Worker	li a0, 0
54*c9945492SAndroid Build Coastguard Worker	ret
55*c9945492SAndroid Build Coastguard Worker
56*c9945492SAndroid Build Coastguard Worker#endif
57