about summary refs log tree commit diff
path: root/src/math
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 /src/math
parentf6ceccd92247575e4a35bc94f581a570b8052d43 (diff)
downloadmusl-d79ac8c38f3992b4547d155f5c8e612f51d9b32e.tar.gz
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
Diffstat (limited to 'src/math')
-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