math: remove x86 modf asm
authornsz <nsz@port70.net>
Thu, 29 Mar 2012 12:05:16 +0000 (14:05 +0200)
committernsz <nsz@port70.net>
Thu, 29 Mar 2012 12:05:16 +0000 (14:05 +0200)
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

src/math/i386/modf.s [deleted file]
src/math/i386/modff.s [deleted file]
src/math/i386/modfl.s [deleted file]
src/math/x86_64/modfl.s [deleted file]

diff --git a/src/math/i386/modf.s b/src/math/i386/modf.s
deleted file mode 100644 (file)
index 8e3ea50..0000000
+++ /dev/null
@@ -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
diff --git a/src/math/i386/modff.s b/src/math/i386/modff.s
deleted file mode 100644 (file)
index 35a08ca..0000000
+++ /dev/null
@@ -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
diff --git a/src/math/i386/modfl.s b/src/math/i386/modfl.s
deleted file mode 100644 (file)
index d650deb..0000000
+++ /dev/null
@@ -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
diff --git a/src/math/x86_64/modfl.s b/src/math/x86_64/modfl.s
deleted file mode 100644 (file)
index cd2ec46..0000000
+++ /dev/null
@@ -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