diff options
author | Alexander Monakov <amonakov@ispras.ru> | 2020-01-06 11:36:18 +0300 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2020-03-24 16:27:38 -0400 |
commit | c24a9923863fc29af4a5249727fe800224fc3c44 (patch) | |
tree | 13c5658d43c039834542f04dc6ecbe46ac10840f | |
parent | 87026f6843f45573d6ac93c791c0597ba7f4e693 (diff) | |
download | musl-c24a9923863fc29af4a5249727fe800224fc3c44.tar.gz musl-c24a9923863fc29af4a5249727fe800224fc3c44.tar.bz2 musl-c24a9923863fc29af4a5249727fe800224fc3c44.tar.xz musl-c24a9923863fc29af4a5249727fe800224fc3c44.zip |
math: move x87-family fabs functions to C with inline asm
-rw-r--r-- | src/math/i386/fabs.c | 7 | ||||
-rw-r--r-- | src/math/i386/fabs.s | 6 | ||||
-rw-r--r-- | src/math/i386/fabsf.c | 7 | ||||
-rw-r--r-- | src/math/i386/fabsf.s | 6 | ||||
-rw-r--r-- | src/math/i386/fabsl.c | 7 | ||||
-rw-r--r-- | src/math/i386/fabsl.s | 6 | ||||
-rw-r--r-- | src/math/x86_64/fabsl.c | 7 | ||||
-rw-r--r-- | src/math/x86_64/fabsl.s | 6 |
8 files changed, 28 insertions, 24 deletions
diff --git a/src/math/i386/fabs.c b/src/math/i386/fabs.c new file mode 100644 index 00000000..39672786 --- /dev/null +++ b/src/math/i386/fabs.c @@ -0,0 +1,7 @@ +#include <math.h> + +double fabs(double x) +{ + __asm__ ("fabs" : "+t"(x)); + return x; +} diff --git a/src/math/i386/fabs.s b/src/math/i386/fabs.s deleted file mode 100644 index d66ea9a1..00000000 --- a/src/math/i386/fabs.s +++ /dev/null @@ -1,6 +0,0 @@ -.global fabs -.type fabs,@function -fabs: - fldl 4(%esp) - fabs - ret diff --git a/src/math/i386/fabsf.c b/src/math/i386/fabsf.c new file mode 100644 index 00000000..d882eee3 --- /dev/null +++ b/src/math/i386/fabsf.c @@ -0,0 +1,7 @@ +#include <math.h> + +float fabsf(float x) +{ + __asm__ ("fabs" : "+t"(x)); + return x; +} diff --git a/src/math/i386/fabsf.s b/src/math/i386/fabsf.s deleted file mode 100644 index a981c422..00000000 --- a/src/math/i386/fabsf.s +++ /dev/null @@ -1,6 +0,0 @@ -.global fabsf -.type fabsf,@function -fabsf: - flds 4(%esp) - fabs - ret diff --git a/src/math/i386/fabsl.c b/src/math/i386/fabsl.c new file mode 100644 index 00000000..cc1c9ed9 --- /dev/null +++ b/src/math/i386/fabsl.c @@ -0,0 +1,7 @@ +#include <math.h> + +long double fabsl(long double x) +{ + __asm__ ("fabs" : "+t"(x)); + return x; +} diff --git a/src/math/i386/fabsl.s b/src/math/i386/fabsl.s deleted file mode 100644 index ceef9e4c..00000000 --- a/src/math/i386/fabsl.s +++ /dev/null @@ -1,6 +0,0 @@ -.global fabsl -.type fabsl,@function -fabsl: - fldt 4(%esp) - fabs - ret diff --git a/src/math/x86_64/fabsl.c b/src/math/x86_64/fabsl.c new file mode 100644 index 00000000..cc1c9ed9 --- /dev/null +++ b/src/math/x86_64/fabsl.c @@ -0,0 +1,7 @@ +#include <math.h> + +long double fabsl(long double x) +{ + __asm__ ("fabs" : "+t"(x)); + return x; +} diff --git a/src/math/x86_64/fabsl.s b/src/math/x86_64/fabsl.s deleted file mode 100644 index 4e7ab525..00000000 --- a/src/math/x86_64/fabsl.s +++ /dev/null @@ -1,6 +0,0 @@ -.global fabsl -.type fabsl,@function -fabsl: - fldt 8(%rsp) - fabs - ret |