On Fri, 1 Aug 2014, Arnaud Charlet wrote: > This change makes it so that the Machine, Model and Rounding FP attributes > are generated in line by the compiler (in conjunction with a conversion to > an integer type for the third) and optimized on architectures that do not > make use of internal extended precision in the FPU.
Using TARGET_FLT_EVAL_METHOD would be better than basing this on examining the machine modes (after all, on x86_64, you have XFmode but use of SSE means there are no excess previous issues; likewise, ia64 has XFmode but proper floating-point operations for all modes, including the formatOf operations that take wider operands and produce a narrower result without double rounding). Except that S/390 defines TARGET_FLT_EVAL_METHOD to 1 for historical reasons (but doesn't, I think, actually have any excess precision issues with the back end - excess precision would only really be used for C with -fexcess-precision=standard), so strictly you'd need a different macro that differs from TARGET_FLT_EVAL_METHOD only on S/390 (i.e., a macro that describes what FLT_EVAL_METHOD is at back-end level rather than what it is at C API level with -fexcess-precision=standard). -- Joseph S. Myers jos...@codesourcery.com