summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsz <nsz@port70.net>2012-03-29 14:05:16 +0200
committernsz <nsz@port70.net>2012-03-29 14:05:16 +0200
commitd79ac8c38f3992b4547d155f5c8e612f51d9b32e (patch)
treeb4d5a4653e016e97358efa70184bfe4be8940b7f
parentf6ceccd92247575e4a35bc94f581a570b8052d43 (diff)
downloadmusl-d79ac8c38f3992b4547d155f5c8e612f51d9b32e.tar.gz
musl-d79ac8c38f3992b4547d155f5c8e612f51d9b32e.tar.bz2
musl-d79ac8c38f3992b4547d155f5c8e612f51d9b32e.tar.xz
musl-d79ac8c38f3992b4547d155f5c8e612f51d9b32e.zip
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
-rw-r--r--src/math/i386/modf.s28
-rw-r--r--src/math/i386/modff.s28
-rw-r--r--src/math/i386/modfl.s28
-rw-r--r--src/math/x86_64/modfl.s27
4 files changed, 0 insertions, 111 deletions
diff --git a/src/math/i386/modf.s b/src/math/i386/modf.s
deleted file mode 100644
index 8e3ea50d..00000000
--- a/src/math/i386/modf.s
+++ /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
index 35a08ca9..00000000
--- a/src/math/i386/modff.s
+++ /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
index d650debb..00000000
--- a/src/math/i386/modfl.s
+++ /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
index cd2ec46e..00000000
--- a/src/math/x86_64/modfl.s
+++ /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