mirror of
git://git.musl-libc.org/musl
synced 2025-02-19 04:16:50 +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…
Reference in New Issue
Block a user