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-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>
* include/_mingw.h (__MINGW_ATTRIB_NONNULL): Don't define as
__CRT_INLINE int __cdecl __signbit (double x) {
unsigned short stw;
__asm__ ( "fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
- return stw & 0x0200;
+ return (stw & 0x0200) != 0;
}
__CRT_INLINE int __cdecl __signbitf (float x) {
unsigned short stw;
__asm__ ("fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
- return stw & 0x0200;
+ return (stw & 0x0200) != 0;
}
__CRT_INLINE int __cdecl __signbitl (long double x) {
unsigned short stw;
__asm__ ("fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
- return stw & 0x0200;
+ return (stw & 0x0200) != 0;
}
#define signbit(x) (sizeof (x) == sizeof (float) ? __signbitf (x) \
__asm__ ("fxam; fstsw %%ax;"
: "=a" (sw)
: "t" (x) );
- return sw & __FP_SIGNBIT;
+ return (sw & __FP_SIGNBIT) != 0;
}
#undef signbit
__asm__ ("fxam; fstsw %%ax;"
: "=a" (sw)
: "t" (x) );
- return sw & __FP_SIGNBIT;
+ return (sw & __FP_SIGNBIT) != 0;
}
int __attribute__ ((alias ("__signbitf"))) signbitf (float);
__asm__ ("fxam; fstsw %%ax;"
: "=a" (sw)
: "t" (x) );
- return sw & __FP_SIGNBIT;
+ return (sw & __FP_SIGNBIT) != 0;
}
int __attribute__ ((alias ("__signbitl"))) signbitl (long double);