* mingwex/math/signbit.c (__signbit): Make return value
consistent with GCC's __builtin_signbit. * mingwex/math/signbitf.c (__signbitf): Likewise. * mingwex/math/signbitf.c (__signbitl): Likewise. * include/math.h (__signbit, __signbitf, __signbitl): Likewise for inlines.
This commit is contained in:
parent
38efa5f128
commit
8559dd92d0
|
@ -1,3 +1,12 @@
|
||||||
|
2005-05-03 Danny Smith <dannysmith@users.sourceforge.net>
|
||||||
|
|
||||||
|
* mingwex/math/signbit.c (__signbit): Make return value
|
||||||
|
consistent with GCC's __builtin_signbit.
|
||||||
|
* mingwex/math/signbitf.c (__signbitf): Likewise.
|
||||||
|
* mingwex/math/signbitf.c (__signbitl): Likewise.
|
||||||
|
* include/math.h (__signbit, __signbitf, __signbitl): Likewise
|
||||||
|
for inlines.
|
||||||
|
|
||||||
2005-05-02 Danny Smith <dannysmith@users.sourceforge.net>
|
2005-05-02 Danny Smith <dannysmith@users.sourceforge.net>
|
||||||
|
|
||||||
* include/_mingw.h (__MINGW_ATTRIB_NONNULL): Don't define as
|
* include/_mingw.h (__MINGW_ATTRIB_NONNULL): Don't define as
|
||||||
|
|
|
@ -373,19 +373,19 @@ __CRT_INLINE int __cdecl __isnanl (long double _x)
|
||||||
__CRT_INLINE int __cdecl __signbit (double x) {
|
__CRT_INLINE int __cdecl __signbit (double x) {
|
||||||
unsigned short stw;
|
unsigned short stw;
|
||||||
__asm__ ( "fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
|
__asm__ ( "fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
|
||||||
return stw & 0x0200;
|
return (stw & 0x0200) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
__CRT_INLINE int __cdecl __signbitf (float x) {
|
__CRT_INLINE int __cdecl __signbitf (float x) {
|
||||||
unsigned short stw;
|
unsigned short stw;
|
||||||
__asm__ ("fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
|
__asm__ ("fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
|
||||||
return stw & 0x0200;
|
return (stw & 0x0200) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
__CRT_INLINE int __cdecl __signbitl (long double x) {
|
__CRT_INLINE int __cdecl __signbitl (long double x) {
|
||||||
unsigned short stw;
|
unsigned short stw;
|
||||||
__asm__ ("fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
|
__asm__ ("fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
|
||||||
return stw & 0x0200;
|
return (stw & 0x0200) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define signbit(x) (sizeof (x) == sizeof (float) ? __signbitf (x) \
|
#define signbit(x) (sizeof (x) == sizeof (float) ? __signbitf (x) \
|
||||||
|
|
|
@ -5,7 +5,7 @@ int __signbit (double x) {
|
||||||
__asm__ ("fxam; fstsw %%ax;"
|
__asm__ ("fxam; fstsw %%ax;"
|
||||||
: "=a" (sw)
|
: "=a" (sw)
|
||||||
: "t" (x) );
|
: "t" (x) );
|
||||||
return sw & __FP_SIGNBIT;
|
return (sw & __FP_SIGNBIT) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef signbit
|
#undef signbit
|
||||||
|
|
|
@ -5,6 +5,6 @@ int __signbitf (float x) {
|
||||||
__asm__ ("fxam; fstsw %%ax;"
|
__asm__ ("fxam; fstsw %%ax;"
|
||||||
: "=a" (sw)
|
: "=a" (sw)
|
||||||
: "t" (x) );
|
: "t" (x) );
|
||||||
return sw & __FP_SIGNBIT;
|
return (sw & __FP_SIGNBIT) != 0;
|
||||||
}
|
}
|
||||||
int __attribute__ ((alias ("__signbitf"))) signbitf (float);
|
int __attribute__ ((alias ("__signbitf"))) signbitf (float);
|
||||||
|
|
|
@ -5,7 +5,7 @@ int __signbitl (long double x) {
|
||||||
__asm__ ("fxam; fstsw %%ax;"
|
__asm__ ("fxam; fstsw %%ax;"
|
||||||
: "=a" (sw)
|
: "=a" (sw)
|
||||||
: "t" (x) );
|
: "t" (x) );
|
||||||
return sw & __FP_SIGNBIT;
|
return (sw & __FP_SIGNBIT) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int __attribute__ ((alias ("__signbitl"))) signbitl (long double);
|
int __attribute__ ((alias ("__signbitl"))) signbitl (long double);
|
||||||
|
|
Loading…
Reference in New Issue