mirror of
https://github.com/fluencelabs/musl
synced 2025-05-07 04:52:14 +00:00
asm for inverse trig functions
unlike trig functions, these are easy to do in asm because they do not involve (arbitrary-precision) argument reduction. fpatan automatically takes care of domain issues, and in asin and acos, fsqrt takes care of them for us.
This commit is contained in:
parent
495a52ae7b
commit
bc33e61704
24
src/math/i386/acos.s
Normal file
24
src/math/i386/acos.s
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
.global acosf
|
||||||
|
.type acosf,@function
|
||||||
|
acosf:
|
||||||
|
flds 4(%esp)
|
||||||
|
jmp 1f
|
||||||
|
|
||||||
|
.global acosl
|
||||||
|
.type acosl,@function
|
||||||
|
acosl:
|
||||||
|
fldt 4(%esp)
|
||||||
|
jmp 1f
|
||||||
|
|
||||||
|
.global acos
|
||||||
|
.type acos,@function
|
||||||
|
acos:
|
||||||
|
fldl 4(%esp)
|
||||||
|
1: fld %st(0)
|
||||||
|
fmul %st(0)
|
||||||
|
fld1
|
||||||
|
fsubp %st(1)
|
||||||
|
fsqrt
|
||||||
|
fxch %st(1)
|
||||||
|
fpatan
|
||||||
|
ret
|
1
src/math/i386/acosf.s
Normal file
1
src/math/i386/acosf.s
Normal file
@ -0,0 +1 @@
|
|||||||
|
# see acos.s
|
1
src/math/i386/acosl.s
Normal file
1
src/math/i386/acosl.s
Normal file
@ -0,0 +1 @@
|
|||||||
|
# see acos.s
|
23
src/math/i386/asin.s
Normal file
23
src/math/i386/asin.s
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
.global asinf
|
||||||
|
.type asinf,@function
|
||||||
|
asinf:
|
||||||
|
flds 4(%esp)
|
||||||
|
jmp 1f
|
||||||
|
|
||||||
|
.global asinl
|
||||||
|
.type asinl,@function
|
||||||
|
asinl:
|
||||||
|
fldt 4(%esp)
|
||||||
|
jmp 1f
|
||||||
|
|
||||||
|
.global asin
|
||||||
|
.type asin,@function
|
||||||
|
asin:
|
||||||
|
fldl 4(%esp)
|
||||||
|
1: fld %st(0)
|
||||||
|
fmul %st(0)
|
||||||
|
fld1
|
||||||
|
fsubp %st(1)
|
||||||
|
fsqrt
|
||||||
|
fpatan
|
||||||
|
ret
|
1
src/math/i386/asinf.s
Normal file
1
src/math/i386/asinf.s
Normal file
@ -0,0 +1 @@
|
|||||||
|
# see asin.s
|
1
src/math/i386/asinl.s
Normal file
1
src/math/i386/asinl.s
Normal file
@ -0,0 +1 @@
|
|||||||
|
# see asin.s
|
7
src/math/i386/atan.s
Normal file
7
src/math/i386/atan.s
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
.global atan
|
||||||
|
.type atan,@function
|
||||||
|
atan:
|
||||||
|
fldl 4(%esp)
|
||||||
|
fld1
|
||||||
|
fpatan
|
||||||
|
ret
|
7
src/math/i386/atan2.s
Normal file
7
src/math/i386/atan2.s
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
.global atan2
|
||||||
|
.type atan2,@function
|
||||||
|
atan2:
|
||||||
|
fldl 4(%esp)
|
||||||
|
fldl 12(%esp)
|
||||||
|
fpatan
|
||||||
|
ret
|
7
src/math/i386/atan2f.s
Normal file
7
src/math/i386/atan2f.s
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
.global atan2f
|
||||||
|
.type atan2f,@function
|
||||||
|
atan2f:
|
||||||
|
flds 4(%esp)
|
||||||
|
flds 8(%esp)
|
||||||
|
fpatan
|
||||||
|
ret
|
7
src/math/i386/atan2l.s
Normal file
7
src/math/i386/atan2l.s
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
.global atan2l
|
||||||
|
.type atan2l,@function
|
||||||
|
atan2l:
|
||||||
|
fldt 4(%esp)
|
||||||
|
fldt 16(%esp)
|
||||||
|
fpatan
|
||||||
|
ret
|
7
src/math/i386/atanf.s
Normal file
7
src/math/i386/atanf.s
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
.global atanf
|
||||||
|
.type atanf,@function
|
||||||
|
atanf:
|
||||||
|
flds 4(%esp)
|
||||||
|
fld1
|
||||||
|
fpatan
|
||||||
|
ret
|
7
src/math/i386/atanl.s
Normal file
7
src/math/i386/atanl.s
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
.global atanl
|
||||||
|
.type atanl,@function
|
||||||
|
atanl:
|
||||||
|
fldt 4(%esp)
|
||||||
|
fld1
|
||||||
|
fpatan
|
||||||
|
ret
|
Loading…
x
Reference in New Issue
Block a user