On Wed, Oct 16, 2002 at 02:54:29PM -0700, Mark Mitchell wrote:
Since you think the semantics are unclear, I'll make an effort to state
them again:
If the user does not explicitly use floating point at the source
level, the compiler will not generate reads to or writes from the
floating point registers that can ever be executed by the program,
unless that program calls "setjmp" or makes use of exception-handling.
I would prefer to phrase it thus:
The compiler will not generate floating point instructions that can
ever be executed by the program, unless either
(a) the source code of the program makes use of floating point, or
(b) the source code of the program contains constructs which -
although not explicitly using floating point - cannot be implemented
in an ABI-compatible manner without causing the compiled program to
execute floating point instructions.
Examples of such constructs are: exception handling, setjmp,
longjmp, and variadic functions. This list is not necessarily
exhaustive, nor do all of these constructs necessarily require
floating point.