This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: A new patch for floating point conditional mov on PPo
- To: hjl at lucon dot org
- Subject: Re: A new patch for floating point conditional mov on PPo
- From: john at feith dot com (John Wehle)
- Date: Wed, 10 Jun 1998 17:53:35 -0400
- Cc: law at cygnus dot com, egcs-patches at cygnus dot com
>> > 2) In output_int_test_compare_fcmov you have:
>> >
>> > if (CONSTANT_P (operands[0]) || GET_CODE (operands[1]) == MEM)
>> > output = reverse;
>> > else
>> > output = normal;
>> >
>> > a) I believe that the patterns require operand 0 to be a
>> > nonimmediate_operand in which case how can CONSTANT_P
>> > ever be true?
>> I've run into a couple cases where reload doesn't check predicates
>> and blindly allows invalid RTL for a predicate.
>>
>> However, I think these cases are internal to reload and are fixed
>> up before reload finishes.
>>
>> One thought would be to abort for these cases that we think can
>> not happen. That way if they do happen we'll know about them
>> intead of silently generating incorrect code.
I believe that this is already handled by:
#ifdef REGISTER_CONSTRAINTS
if (! constrain_operands (insn_code_number, 1))
fatal_insn_not_found (insn);
#endif
in final.c (final_scan_insn).
>I will leave it alone since the same code is in the normal test/compare
>patterns. We should fix all of them, not some of them.
A patch has already been submitted for those cases. I would prefer not
perpetuating overly complex code.
-- John
-------------------------------------------------------------------------
| Feith Systems | Voice: 1-215-646-8000 | Email: john@feith.com |
| John Wehle | Fax: 1-215-540-5495 | |
-------------------------------------------------------------------------