mirror of
https://github.com/fluencelabs/musl
synced 2025-05-29 15:41:36 +00:00
math: remove x86 modf asm
the int part was wrong when -1 < x <= -0 (+0.0 instead of -0.0) and the size and performace gain of the asm version was negligible
This commit is contained in:
parent
f6ceccd922
commit
d79ac8c38f
@ -1,28 +0,0 @@
|
|||||||
.global modf
|
|
||||||
.type modf,@function
|
|
||||||
modf:
|
|
||||||
mov 12(%esp),%ecx
|
|
||||||
fldl 4(%esp)
|
|
||||||
fxam
|
|
||||||
fnstsw %ax
|
|
||||||
sahf
|
|
||||||
jnp 1f
|
|
||||||
jc 2f
|
|
||||||
1: fld1
|
|
||||||
fld %st(1)
|
|
||||||
1: fprem
|
|
||||||
fnstsw %ax
|
|
||||||
sahf
|
|
||||||
jp 1b
|
|
||||||
fstp %st(1)
|
|
||||||
fsubr %st(0),%st(1)
|
|
||||||
fxch %st(1)
|
|
||||||
fstpl (%ecx)
|
|
||||||
ret
|
|
||||||
|
|
||||||
2: fstpl (%ecx)
|
|
||||||
mov 4(%ecx),%eax
|
|
||||||
and $0x80000000,%eax
|
|
||||||
mov %eax,4(%esp)
|
|
||||||
flds 4(%esp)
|
|
||||||
ret
|
|
@ -1,28 +0,0 @@
|
|||||||
.global modff
|
|
||||||
.type modff,@function
|
|
||||||
modff:
|
|
||||||
mov 8(%esp),%ecx
|
|
||||||
flds 4(%esp)
|
|
||||||
fxam
|
|
||||||
fnstsw %ax
|
|
||||||
sahf
|
|
||||||
jnp 1f
|
|
||||||
jc 2f
|
|
||||||
1: fld1
|
|
||||||
fld %st(1)
|
|
||||||
1: fprem
|
|
||||||
fnstsw %ax
|
|
||||||
sahf
|
|
||||||
jp 1b
|
|
||||||
fstp %st(1)
|
|
||||||
fsubr %st(0),%st(1)
|
|
||||||
fxch %st(1)
|
|
||||||
fstps (%ecx)
|
|
||||||
ret
|
|
||||||
|
|
||||||
2: fstps (%ecx)
|
|
||||||
mov (%ecx),%eax
|
|
||||||
and $0x80000000,%eax
|
|
||||||
mov %eax,4(%esp)
|
|
||||||
flds 4(%esp)
|
|
||||||
ret
|
|
@ -1,28 +0,0 @@
|
|||||||
.global modfl
|
|
||||||
.type modfl,@function
|
|
||||||
modfl:
|
|
||||||
mov 16(%esp),%ecx
|
|
||||||
fldt 4(%esp)
|
|
||||||
fxam
|
|
||||||
fnstsw %ax
|
|
||||||
sahf
|
|
||||||
jnp 1f
|
|
||||||
jc 2f
|
|
||||||
1: fld1
|
|
||||||
fld %st(1)
|
|
||||||
1: fprem
|
|
||||||
fnstsw %ax
|
|
||||||
sahf
|
|
||||||
jp 1b
|
|
||||||
fstp %st(1)
|
|
||||||
fsubr %st(0),%st(1)
|
|
||||||
fxch %st(1)
|
|
||||||
fstpt (%ecx)
|
|
||||||
ret
|
|
||||||
|
|
||||||
2: fstpt (%ecx)
|
|
||||||
mov 6(%ecx),%eax
|
|
||||||
and $0x80000000,%eax
|
|
||||||
mov %eax,4(%esp)
|
|
||||||
flds 4(%esp)
|
|
||||||
ret
|
|
@ -1,27 +0,0 @@
|
|||||||
.global modfl
|
|
||||||
.type modfl,@function
|
|
||||||
modfl:
|
|
||||||
fldt 8(%rsp)
|
|
||||||
fxam
|
|
||||||
fnstsw %ax
|
|
||||||
sahf
|
|
||||||
jnp 1f
|
|
||||||
jc 2f
|
|
||||||
1: fld1
|
|
||||||
fld %st(1)
|
|
||||||
1: fprem
|
|
||||||
fnstsw %ax
|
|
||||||
sahf
|
|
||||||
jp 1b
|
|
||||||
fstp %st(1)
|
|
||||||
fsubr %st(0),%st(1)
|
|
||||||
fxch %st(1)
|
|
||||||
fstpt (%rdi)
|
|
||||||
ret
|
|
||||||
|
|
||||||
2: fstpt (%rdi)
|
|
||||||
mov 6(%rdi),%eax
|
|
||||||
and $0x80000000,%eax
|
|
||||||
mov %eax,8(%rsp)
|
|
||||||
flds 8(%rsp)
|
|
||||||
ret
|
|
Loading…
x
Reference in New Issue
Block a user