mirror of
git://git.musl-libc.org/musl
synced 2024-12-17 20:24:54 +00:00
floating point environment/exceptions support for mips
This commit is contained in:
parent
97c8bdd88a
commit
f321de9e0a
@ -1,10 +1,20 @@
|
||||
#define FE_ALL_EXCEPT 0
|
||||
#define FE_TONEAREST 0
|
||||
#define FE_INEXACT 4
|
||||
#define FE_UNDERFLOW 8
|
||||
#define FE_OVERFLOW 16
|
||||
#define FE_DIVBYZERO 32
|
||||
#define FE_INVALID 64
|
||||
|
||||
typedef unsigned long fexcept_t;
|
||||
#define FE_ALL_EXCEPT 124
|
||||
|
||||
#define FE_TONEAREST 0
|
||||
#define FE_TOWARDZERO 1
|
||||
#define FE_UPWARD 2
|
||||
#define FE_DOWNWARD 3
|
||||
|
||||
typedef unsigned short fexcept_t;
|
||||
|
||||
typedef struct {
|
||||
unsigned long __cw;
|
||||
unsigned __cw;
|
||||
} fenv_t;
|
||||
|
||||
#define FE_DFL_ENV ((const fenv_t *) -1)
|
||||
|
60
src/fenv/mips/fenv.s
Normal file
60
src/fenv/mips/fenv.s
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user