diff options
author | Rich Felker <dalias@aerifal.cx> | 2012-03-18 16:43:54 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012-03-18 16:43:54 -0400 |
commit | 8d9e948652eb8381f1f376cbd0c9bc5e2947d150 (patch) | |
tree | 37c869b664053d019d5ff03374f6d825498ebd19 | |
parent | afad262440d213633144d696b8fdda7a65bf26d1 (diff) | |
download | musl-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.
-rw-r--r-- | src/math/i386/fabs.s | 6 | ||||
-rw-r--r-- | src/math/i386/fabsf.s | 6 | ||||
-rw-r--r-- | src/math/i386/fabsl.s | 6 | ||||
-rw-r--r-- | src/math/i386/rint.s | 6 | ||||
-rw-r--r-- | src/math/i386/rintf.s | 6 | ||||
-rw-r--r-- | src/math/i386/rintl.s | 6 | ||||
-rw-r--r-- | src/math/x86_64/fabsl.s | 6 | ||||
-rw-r--r-- | src/math/x86_64/rintl.s | 6 |
8 files changed, 48 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 diff --git a/src/math/x86_64/fabsl.s b/src/math/x86_64/fabsl.s new file mode 100644 index 00000000..4e7ab525 --- /dev/null +++ b/src/math/x86_64/fabsl.s @@ -0,0 +1,6 @@ +.global fabsl +.type fabsl,@function +fabsl: + fldt 8(%rsp) + fabs + ret diff --git a/src/math/x86_64/rintl.s b/src/math/x86_64/rintl.s new file mode 100644 index 00000000..64e663cd --- /dev/null +++ b/src/math/x86_64/rintl.s @@ -0,0 +1,6 @@ +.global rintl +.type rintl,@function +rintl: + fldt 8(%rsp) + frndint + ret |