This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: ppc patch


>>>>> Jeffrey A Law writes:

Jeff> Ah.  Yes, other ports deal with this by adding a couple instructions to
Jeff> access the second word by adjusting the base register before and after
Jeff> the memory access.  Gross, but effective.

Jeff> Nope.  The validity of an addressing mode is based solely on the address
Jeff> and the mode of the memory access.

	We need to change the 'o' constraint to 'm' for the
movdf_softfloat32 pattern.  The only way I see to do that safely is to
extend GO_IF_LEGITIMATE_ADDRESS so that DFmode indexed addresses are not
allowed if soft-float and not 64-bit.  That should make the proposed
change safe for the pattern in question.  The movdf_hardfloat32 pattern
also uses 'o' constraint, but 'm' is valid for FPRs so reload has a
solution.

	I think that this same failure mode can occur for movdi_32, so we
probably should not allow indexed addressing for DImode and not 64-bit
either.  Then we can make the same 'o' -> 'm' change there.

	Does that seem reasonable to you?

David



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]