diff options
author | Rich Felker <dalias@aerifal.cx> | 2012-10-18 20:19:53 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012-10-18 20:19:53 -0400 |
commit | f321de9e0ae130e21faab5afe109270ec913602d (patch) | |
tree | 91efafaac63b0469d28f419b22f0978aacd47675 /src/fenv | |
parent | 97c8bdd88ae2ee03eb9d333a79fa669b3878fc76 (diff) | |
download | musl-f321de9e0ae130e21faab5afe109270ec913602d.tar.gz |
floating point environment/exceptions support for mips
Diffstat (limited to 'src/fenv')
-rw-r--r-- | src/fenv/mips/fenv.s | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/fenv/mips/fenv.s b/src/fenv/mips/fenv.s new file mode 100644 index 00000000..49ff36c0 --- /dev/null +++ b/src/fenv/mips/fenv.s @@ -0,0 +1,60 @@ +.set noreorder + +.global feclearexcept +.type feclearexcept,@function +feclearexcept: + 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: + cfc1 $5, $31 + or $5, $5, $4 + ctc1 $5, $31 + jr $ra + li $2, 0 + +.global fetestexcept +.type fetestexcept,@function +fetestexcept: + 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 + 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: + lw $5, 0($4) + ctc1 $5, $31 + jr $ra + li $2, 0 |