https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97532

--- Comment #9 from Vladimir Makarov <vmakarov at gcc dot gnu.org> ---
(In reply to Hongtao.liu from comment #6)
> 
> 
> Shouldn't memory_operand (XEXP (op, 0), GET_MODE (XEXP (op, 0))) imply
> legitimate_address_p?

memory_operand does not imply legitimate_address_p.  When LRA processes regular
memory it calls legitimate_address_p.  But for special memory it did not do
this.  It is a responsibility of special constraint to check it.  That is why
it is called special (it might require more constraints on addressing or hard
registers can be used).  I guess you should check it in the constraint that
base and index registers are of the right class.

Reply via email to