| Index: fusl/src/fenv/mips/fenv.s
|
| diff --git a/fusl/src/fenv/mips/fenv.s b/fusl/src/fenv/mips/fenv.s
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..62828212ab965fba35e6cd205d001b5103245a26
|
| --- /dev/null
|
| +++ b/fusl/src/fenv/mips/fenv.s
|
| @@ -0,0 +1,67 @@
|
| +.set noreorder
|
| +
|
| +.global feclearexcept
|
| +.type feclearexcept,@function
|
| +feclearexcept:
|
| + and $4, $4, 0x7c
|
| + cfc1 $5, $31
|
| + or $5, $5, $4
|
| + xor $5, $5, $4
|
| + ctc1 $5, $31
|
| + jr $ra
|
| + li $2, 0
|
| +
|
| +.global feraiseexcept
|
| +.type feraiseexcept,@function
|
| +feraiseexcept:
|
| + and $4, $4, 0x7c
|
| + cfc1 $5, $31
|
| + or $5, $5, $4
|
| + ctc1 $5, $31
|
| + jr $ra
|
| + li $2, 0
|
| +
|
| +.global fetestexcept
|
| +.type fetestexcept,@function
|
| +fetestexcept:
|
| + and $4, $4, 0x7c
|
| + cfc1 $2, $31
|
| + jr $ra
|
| + and $2, $2, $4
|
| +
|
| +.global fegetround
|
| +.type fegetround,@function
|
| +fegetround:
|
| + cfc1 $2, $31
|
| + jr $ra
|
| + andi $2, $2, 3
|
| +
|
| +.global __fesetround
|
| +.type __fesetround,@function
|
| +__fesetround:
|
| + cfc1 $5, $31
|
| + li $6, -4
|
| + and $5, $5, $6
|
| + or $5, $5, $4
|
| + ctc1 $5, $31
|
| + jr $ra
|
| + li $2, 0
|
| +
|
| +.global fegetenv
|
| +.type fegetenv,@function
|
| +fegetenv:
|
| + cfc1 $5, $31
|
| + sw $5, 0($4)
|
| + jr $ra
|
| + li $2, 0
|
| +
|
| +.global fesetenv
|
| +.type fesetenv,@function
|
| +fesetenv:
|
| + addiu $5, $4, 1
|
| + beq $5, $0, 1f
|
| + nop
|
| + lw $5, 0($4)
|
| +1: ctc1 $5, $31
|
| + jr $ra
|
| + li $2, 0
|
|
|