Another movdf_hardfloat32 patch
David Edelsohn
dje@watson.ibm.com
Tue Jun 22 15:00:00 GMT 1999
>>>>> Jeffrey A Law writes:
Jeff> In message < 199906221520.LAA47518@kitch12.watson.ibm.com >you write:
>> No, I disagree with this solution. We need to change the test to
>> recognize LO_SUM as well as offsettable addresses, not kludge the
>> non_offsettable path.
Jeff> No. A LO_SUM is *NOT* an offsettable address, at least that is the
Jeff> case on most targets. This was discussed at length in a thread a few
Jeff> months ago.
You seem to have misunderstood my objection. The LO_SUM case
should not use the non-offsettable version of the output that I recently
added. rs6000.c:print_operand_address() and rs6000.c:print_operand() case
'L' already handle th LO_SUM addresses. All of this, including LO_SUM,
was working before I made the change to fix the indexed address case.
There is no need to adjust a register to handle the LO_SUM case.
If LO_SUM was not handled properly in my version of the recent
change, then
if (offsettable_memref_p (operands[1])) ...
needs to be changed to accept BOTH offsettable memory references and
LO_SUM references. In other words, something like:
if (offsettable_memref_p (operands[1])
|| GET_CODE (operands[1]) == LO_SUM) ...
If this is not a simple test because we need to recursively look
inside operands, then we need to write an additional rs6000-specific
constraint pattern that tests both offsettable and LO_SUM that should be
used in place of the current tests in movdf_hardfloat32 .
I would greatly appreciate if you would help me correct this
pattern.
David
More information about the Gcc-patches
mailing list