summaryrefslogtreecommitdiff
path: root/src/math/i386
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-03-18 16:43:54 -0400
committerRich Felker <dalias@aerifal.cx>2012-03-18 16:43:54 -0400
commit8d9e948652eb8381f1f376cbd0c9bc5e2947d150 (patch)
tree37c869b664053d019d5ff03374f6d825498ebd19 /src/math/i386
parentafad262440d213633144d696b8fdda7a65bf26d1 (diff)
downloadmusl-8d9e948652eb8381f1f376cbd0c9bc5e2947d150.tar.gz
musl-8d9e948652eb8381f1f376cbd0c9bc5e2947d150.tar.bz2
musl-8d9e948652eb8381f1f376cbd0c9bc5e2947d150.tar.xz
musl-8d9e948652eb8381f1f376cbd0c9bc5e2947d150.zip
asm versions of some simple math functions for i386 and x86_64
these are functions that have direct fpu approaches to implementation without problematic exception or rounding issues. x86_64 lacks float/double versions because i'm unfamiliar with the necessary sse code for performing these operations.
Diffstat (limited to 'src/math/i386')
-rw-r--r--src/math/i386/fabs.s6
-rw-r--r--src/math/i386/fabsf.s6
-rw-r--r--src/math/i386/fabsl.s6
-rw-r--r--src/math/i386/rint.s6
-rw-r--r--src/math/i386/rintf.s6
-rw-r--r--src/math/i386/rintl.s6
6 files changed, 36 insertions, 0 deletions
diff --git a/src/math/i386/fabs.s b/src/math/i386/fabs.s
new file mode 100644
index 00000000..d66ea9a1
--- /dev/null
+++ b/src/math/i386/fabs.s
@@ -0,0 +1,6 @@
+.global fabs
+.type fabs,@function
+fabs:
+ fldl 4(%esp)
+ fabs
+ ret
diff --git a/src/math/i386/fabsf.s b/src/math/i386/fabsf.s
new file mode 100644
index 00000000..a981c422
--- /dev/null
+++ b/src/math/i386/fabsf.s
@@ -0,0 +1,6 @@
+.global fabsf
+.type fabsf,@function
+fabsf:
+ flds 4(%esp)
+ fabs
+ ret
diff --git a/src/math/i386/fabsl.s b/src/math/i386/fabsl.s
new file mode 100644
index 00000000..ceef9e4c
--- /dev/null
+++ b/src/math/i386/fabsl.s
@@ -0,0 +1,6 @@
+.global fabsl
+.type fabsl,@function
+fabsl:
+ fldt 4(%esp)
+ fabs
+ ret
diff --git a/src/math/i386/rint.s b/src/math/i386/rint.s
new file mode 100644
index 00000000..bb99a11c
--- /dev/null
+++ b/src/math/i386/rint.s
@@ -0,0 +1,6 @@
+.global rint
+.type rint,@function
+rint:
+ fldl 4(%esp)
+ frndint
+ ret
diff --git a/src/math/i386/rintf.s b/src/math/i386/rintf.s
new file mode 100644
index 00000000..bce4c5a6
--- /dev/null
+++ b/src/math/i386/rintf.s
@@ -0,0 +1,6 @@
+.global rintf
+.type rintf,@function
+rintf:
+ flds 4(%esp)
+ frndint
+ ret
diff --git a/src/math/i386/rintl.s b/src/math/i386/rintl.s
new file mode 100644
index 00000000..cd2bf9a9
--- /dev/null
+++ b/src/math/i386/rintl.s
@@ -0,0 +1,6 @@
+.global rintl
+.type rintl,@function
+rintl:
+ fldt 4(%esp)
+ frndint
+ ret