From: Rich Felker Date: Sun, 18 Mar 2012 20:43:54 +0000 (-0400) Subject: asm versions of some simple math functions for i386 and x86_64 X-Git-Tag: v0.8.8~105 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=8d9e948652eb8381f1f376cbd0c9bc5e2947d150;p=oweals%2Fmusl.git 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. --- 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