Translate from the i386. All FP constants and operations are evaluated

in the range and precision of their type(s) on amd64, but FLT_EVAL_METHOD
said that they were evalated in the "interesting" (buggy) i387 methods.
float_t was broken compatibly with FLT_EVAL_METHOD.

These definitions seem to be broken on powerpc and possibly on arm.
float_t is float on powerpc with gcc [-notraditional] according to
glibc, and FLT_EVAL_METHOD is marked with XXX on arm.
This commit is contained in:
bde 2008-01-17 13:12:46 +00:00
parent 961a1f29ef
commit 691f99e98f
2 changed files with 2 additions and 2 deletions

View File

@ -64,7 +64,7 @@ typedef __int32_t __clock_t; /* clock()... */
typedef unsigned int __cpumask_t;
typedef __int64_t __critical_t;
typedef double __double_t;
typedef double __float_t;
typedef float __float_t;
typedef __int64_t __intfptr_t;
typedef __int64_t __intmax_t;
typedef __int64_t __intptr_t;

View File

@ -42,7 +42,7 @@ __END_DECLS
#define FLT_RADIX 2 /* b */
#define FLT_ROUNDS __flt_rounds()
#if __ISO_C_VISIBLE >= 1999
#define FLT_EVAL_METHOD (-1) /* i387 semantics are...interesting */
#define FLT_EVAL_METHOD 0 /* no promotions */
#define DECIMAL_DIG 21 /* max precision in decimal digits */
#endif