------- Additional Comments From rth at gcc dot gnu dot org 2005-01-14 01:36 ------- I would consider (1) wrong.
I'm not sure about (2); I think at one time there was a target that put fp return values in the integer registers even when a coprocessor was present. But there doesn't seem to be such a target in the tree now. Perhaps it got purged. I don't like (3) because that forces -mhard-float to imply MASK_FLOAT_RETURN, which would interfere with (2) if it still existed. As for (4), what do you think the problem *is* anyway? It's the fact that "fxch" is marked TARGET_80387, and the only reason *that* got emitted is to put the return value in the right place for MASK_FLOAT_RETURN. Duh. And my suggestion is to add if (!TARGET_80387) target_flags &= ~MASK_FLOAT_RETURNS; somewhere in the middle of override_options. Preferably near the other bits that talk about fpmath etc. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19379