projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix fesetenv(FE_DFL_ENV) on mips
[musl]
/
src
/
math
/
i386
/
asin.s
diff --git
a/src/math/i386/asin.s
b/src/math/i386/asin.s
index
932c754
..
a9f691b
100644
(file)
--- a/
src/math/i386/asin.s
+++ b/
src/math/i386/asin.s
@@
-2,7
+2,18
@@
.type asinf,@function
asinf:
flds 4(%esp)
.type asinf,@function
asinf:
flds 4(%esp)
- jmp 1f
+ mov 4(%esp),%eax
+ add %eax,%eax
+ cmp $0x01000000,%eax
+ jae 1f
+ # subnormal x, return x with underflow
+ fnstsw %ax
+ and $16,%ax
+ jnz 2f
+ fld %st(0)
+ fmul %st(1)
+ fstps 4(%esp)
+2: ret
.global asinl
.type asinl,@function
.global asinl
.type asinl,@function
@@
-14,6
+25,16
@@
asinl:
.type asin,@function
asin:
fldl 4(%esp)
.type asin,@function
asin:
fldl 4(%esp)
+ mov 8(%esp),%eax
+ add %eax,%eax
+ cmp $0x00200000,%eax
+ jae 1f
+ # subnormal x, return x with underflow
+ fnstsw %ax
+ and $16,%ax
+ jnz 2f
+ fsts 4(%esp)
+2: ret
1: fld %st(0)
fld1
fsub %st(0),%st(1)
1: fld %st(0)
fld1
fsub %st(0),%st(1)