1570af302Sopenharmony_ci#ifndef __mips_soft_float
2570af302Sopenharmony_ci
3570af302Sopenharmony_ci.set	noreorder
4570af302Sopenharmony_ci.global	feclearexcept
5570af302Sopenharmony_ci.type	feclearexcept,@function
6570af302Sopenharmony_cifeclearexcept:
7570af302Sopenharmony_ci	and	$4, $4, 0x7c
8570af302Sopenharmony_ci	cfc1	$5, $31
9570af302Sopenharmony_ci	or	$5, $5, $4
10570af302Sopenharmony_ci	xor	$5, $5, $4
11570af302Sopenharmony_ci	ctc1	$5, $31
12570af302Sopenharmony_ci	jr	$ra
13570af302Sopenharmony_ci	li	$2, 0
14570af302Sopenharmony_ci
15570af302Sopenharmony_ci.global feraiseexcept
16570af302Sopenharmony_ci.type  feraiseexcept,@function
17570af302Sopenharmony_ciferaiseexcept:
18570af302Sopenharmony_ci	and	$4, $4, 0x7c
19570af302Sopenharmony_ci	cfc1	$5, $31
20570af302Sopenharmony_ci	or	$5, $5, $4
21570af302Sopenharmony_ci	ctc1	$5, $31
22570af302Sopenharmony_ci	jr	$ra
23570af302Sopenharmony_ci	li	$2, 0
24570af302Sopenharmony_ci
25570af302Sopenharmony_ci.global fetestexcept
26570af302Sopenharmony_ci.type  fetestexcept,@function
27570af302Sopenharmony_cifetestexcept:
28570af302Sopenharmony_ci	and	$4, $4, 0x7c
29570af302Sopenharmony_ci	cfc1	$2, $31
30570af302Sopenharmony_ci	jr	$ra
31570af302Sopenharmony_ci	and	$2, $2, $4
32570af302Sopenharmony_ci
33570af302Sopenharmony_ci.global fegetround
34570af302Sopenharmony_ci.type  fegetround,@function
35570af302Sopenharmony_cifegetround:
36570af302Sopenharmony_ci	cfc1	$2, $31
37570af302Sopenharmony_ci	jr	$ra
38570af302Sopenharmony_ci	andi	$2, $2, 3
39570af302Sopenharmony_ci
40570af302Sopenharmony_ci.global __fesetround
41570af302Sopenharmony_ci.hidden __fesetround
42570af302Sopenharmony_ci.type __fesetround,@function
43570af302Sopenharmony_ci__fesetround:
44570af302Sopenharmony_ci	cfc1	$5, $31
45570af302Sopenharmony_ci	li	$6, -4
46570af302Sopenharmony_ci	and	$5, $5, $6
47570af302Sopenharmony_ci	or	$5, $5, $4
48570af302Sopenharmony_ci	ctc1	$5, $31
49570af302Sopenharmony_ci	jr	$ra
50570af302Sopenharmony_ci	li	$2, 0
51570af302Sopenharmony_ci
52570af302Sopenharmony_ci.global fegetenv
53570af302Sopenharmony_ci.type  fegetenv,@function
54570af302Sopenharmony_cifegetenv:
55570af302Sopenharmony_ci	cfc1	$5, $31
56570af302Sopenharmony_ci	sw	$5, 0($4)
57570af302Sopenharmony_ci	jr	$ra
58570af302Sopenharmony_ci	li	$2, 0
59570af302Sopenharmony_ci
60570af302Sopenharmony_ci.global fesetenv
61570af302Sopenharmony_ci.type  fesetenv,@function
62570af302Sopenharmony_cifesetenv:
63570af302Sopenharmony_ci	addiu   $5, $4, 1
64570af302Sopenharmony_ci	beq	$5, $0, 1f
65570af302Sopenharmony_ci	nop
66570af302Sopenharmony_ci	lw	$5, 0($4)
67570af302Sopenharmony_ci1:	ctc1	$5, $31
68570af302Sopenharmony_ci	jr	$ra
69570af302Sopenharmony_ci	li	$2, 0
70570af302Sopenharmony_ci
71570af302Sopenharmony_ci#endif
72