mirror of https://git.musl-libc.org/git/musl
Browse Source
these were introduced in z196 and not available in the baseline (z900) ISA level. use __HTM__ as an alternate indicator for ISA level, since gcc did not define __ARCH__ until 7.x. patch by David Edelsohn.master
24 changed files with 360 additions and 0 deletions
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
double ceil(double x) |
|||
{ |
|||
__asm__ ("fidbra %0, 6, %1, 4" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../ceil.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
float ceilf(float x) |
|||
{ |
|||
__asm__ ("fiebra %0, 6, %1, 4" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../ceilf.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
long double ceill(long double x) |
|||
{ |
|||
__asm__ ("fixbra %0, 6, %1, 4" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../ceill.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
double fabs(double x) |
|||
{ |
|||
__asm__ ("lpdbr %0, %1" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../fabs.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
float fabsf(float x) |
|||
{ |
|||
__asm__ ("lpebr %0, %1" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../fabsf.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
long double fabsl(long double x) |
|||
{ |
|||
__asm__ ("lpxbr %0, %1" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../fabsl.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
double floor(double x) |
|||
{ |
|||
__asm__ ("fidbra %0, 7, %1, 4" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../floor.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
float floorf(float x) |
|||
{ |
|||
__asm__ ("fiebra %0, 7, %1, 4" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../floorf.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
long double floorl(long double x) |
|||
{ |
|||
__asm__ ("fixbra %0, 7, %1, 4" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../floorl.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
double nearbyint(double x) |
|||
{ |
|||
__asm__ ("fidbra %0, 0, %1, 4" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../nearbyint.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
float nearbyintf(float x) |
|||
{ |
|||
__asm__ ("fiebra %0, 0, %1, 4" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../nearbyintf.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
long double nearbyintl(long double x) |
|||
{ |
|||
__asm__ ("fixbra %0, 0, %1, 4" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../nearbyintl.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
double rint(double x) |
|||
{ |
|||
__asm__ ("fidbr %0, 0, %1" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../rint.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
float rintf(float x) |
|||
{ |
|||
__asm__ ("fiebr %0, 0, %1" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../rintf.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
long double rintl(long double x) |
|||
{ |
|||
__asm__ ("fixbr %0, 0, %1" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../rintl.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
double round(double x) |
|||
{ |
|||
__asm__ ("fidbra %0, 1, %1, 4" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../round.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
float roundf(float x) |
|||
{ |
|||
__asm__ ("fiebra %0, 1, %1, 4" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../roundf.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
long double roundl(long double x) |
|||
{ |
|||
__asm__ ("fixbra %0, 1, %1, 4" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../roundl.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
double sqrt(double x) |
|||
{ |
|||
__asm__ ("sqdbr %0, %1" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../sqrt.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
float sqrtf(float x) |
|||
{ |
|||
__asm__ ("sqebr %0, %1" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../sqrtf.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
long double sqrtl(long double x) |
|||
{ |
|||
__asm__ ("sqxbr %0, %1" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../sqrtl.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
double trunc(double x) |
|||
{ |
|||
__asm__ ("fidbra %0, 5, %1, 4" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../trunc.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
float truncf(float x) |
|||
{ |
|||
__asm__ ("fiebra %0, 5, %1, 4" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../truncf.c" |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
#include <math.h> |
|||
|
|||
#if defined(__HTM__) || __ARCH__ >= 9 |
|||
|
|||
long double truncl(long double x) |
|||
{ |
|||
__asm__ ("fixbra %0, 5, %1, 4" : "=f"(x) : "f"(x)); |
|||
return x; |
|||
} |
|||
|
|||
#else |
|||
|
|||
#include "../truncl.c" |
|||
|
|||
#endif |
|||
Loading…
Reference in new issue