Browse Source

math: move x87-family fabs functions to C with inline asm

master
Alexander Monakov 6 years ago
committed by Rich Felker
parent
commit
c24a992386
  1. 7
      src/math/i386/fabs.c
  2. 6
      src/math/i386/fabs.s
  3. 7
      src/math/i386/fabsf.c
  4. 6
      src/math/i386/fabsf.s
  5. 7
      src/math/i386/fabsl.c
  6. 6
      src/math/i386/fabsl.s
  7. 7
      src/math/x86_64/fabsl.c
  8. 6
      src/math/x86_64/fabsl.s

7
src/math/i386/fabs.c

@ -0,0 +1,7 @@
#include <math.h>
double fabs(double x)
{
__asm__ ("fabs" : "+t"(x));
return x;
}

6
src/math/i386/fabs.s

@ -1,6 +0,0 @@
.global fabs
.type fabs,@function
fabs:
fldl 4(%esp)
fabs
ret

7
src/math/i386/fabsf.c

@ -0,0 +1,7 @@
#include <math.h>
float fabsf(float x)
{
__asm__ ("fabs" : "+t"(x));
return x;
}

6
src/math/i386/fabsf.s

@ -1,6 +0,0 @@
.global fabsf
.type fabsf,@function
fabsf:
flds 4(%esp)
fabs
ret

7
src/math/i386/fabsl.c

@ -0,0 +1,7 @@
#include <math.h>
long double fabsl(long double x)
{
__asm__ ("fabs" : "+t"(x));
return x;
}

6
src/math/i386/fabsl.s

@ -1,6 +0,0 @@
.global fabsl
.type fabsl,@function
fabsl:
fldt 4(%esp)
fabs
ret

7
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;
}

6
src/math/x86_64/fabsl.s

@ -1,6 +0,0 @@
.global fabsl
.type fabsl,@function
fabsl:
fldt 8(%rsp)
fabs
ret
Loading…
Cancel
Save