On 10/30/09 07:13, Mohamed Shafi wrote:
Hi,

I am doing a port for a 32bit target in GCC 4.4.0. The target does not
have support for symbolic address in QImode for load operations.
You'll need to make sure to reject such addresses for QImode in GO_IF_LEGITIMATE_ADDRESS.


  In
order to do this what i have done is in define_expand for moveqi
reject symbolic address it they come in source operands and i have
also written a predicate for *moveqi_internal to reject such cases.
OK. Nothing wrong with these steps. Though you really need to make sure GO_IF_LEGITIMATE_ADDRESS is defined correctly.

IRA doesn't look at operand predicates or insn conditions. It assumes that any insns are valid assuming any pseudo registers appearing in the insn get suitable hard registers.

Based on the dumps you provided it appears that reg61 does not get a hard register and reload is generating the problematical insn #24. This is a good indication that your GO_IF_LEGITIMATE_ADDRESS is incorrectly implemented.


jeff

Reply via email to