{
return (MEM_P (x)
&& m68k_decompose_address (GET_MODE (x), XEXP (x, 0),
- reload_in_progress || reload_completed,
+ (reload_in_progress || lra_in_progress
+ || reload_completed),
address));
}
rtx tem;
if (scratch_reg
- && reload_in_progress && GET_CODE (operand0) == REG
+ && (reload_in_progress || lra_in_progress)
+ && GET_CODE (operand0) == REG
&& REGNO (operand0) >= FIRST_PSEUDO_REGISTER)
operand0 = reg_equiv_mem (REGNO (operand0));
else if (scratch_reg
- && reload_in_progress && GET_CODE (operand0) == SUBREG
+ && (reload_in_progress || lra_in_progress)
+ && GET_CODE (operand0) == SUBREG
&& GET_CODE (SUBREG_REG (operand0)) == REG
&& REGNO (SUBREG_REG (operand0)) >= FIRST_PSEUDO_REGISTER)
{
}
if (scratch_reg
- && reload_in_progress && GET_CODE (operand1) == REG
+ && (reload_in_progress || lra_in_progress)
+ && GET_CODE (operand1) == REG
&& REGNO (operand1) >= FIRST_PSEUDO_REGISTER)
operand1 = reg_equiv_mem (REGNO (operand1));
else if (scratch_reg
- && reload_in_progress && GET_CODE (operand1) == SUBREG
+ && (reload_in_progress || lra_in_progress)
+ && GET_CODE (operand1) == SUBREG
&& GET_CODE (SUBREG_REG (operand1)) == REG
&& REGNO (SUBREG_REG (operand1)) >= FIRST_PSEUDO_REGISTER)
{
operand1 = alter_subreg (&temp, true);
}
- if (scratch_reg && reload_in_progress && GET_CODE (operand0) == MEM
+ if (scratch_reg && (reload_in_progress || lra_in_progress)
+ && GET_CODE (operand0) == MEM
&& ((tem = find_replacement (&XEXP (operand0, 0)))
!= XEXP (operand0, 0)))
operand0 = gen_rtx_MEM (GET_MODE (operand0), tem);
- if (scratch_reg && reload_in_progress && GET_CODE (operand1) == MEM
+ if (scratch_reg && (reload_in_progress || lra_in_progress)
+ && GET_CODE (operand1) == MEM
&& ((tem = find_replacement (&XEXP (operand1, 0)))
!= XEXP (operand1, 0)))
operand1 = gen_rtx_MEM (GET_MODE (operand1), tem);
/* The source is an address which requires PIC relocation.
Call legitimize_pic_address with the source, mode, and a relocation
register (a new pseudo, or the final destination if reload_in_progress
- is set). Then fall through normally */
- rtx temp = reload_in_progress ? operands[0] : gen_reg_rtx (Pmode);
+ or lra_in_progress is set). Then fall through normally */
+ rtx temp = ((reload_in_progress || lra_in_progress)
+ ? operands[0] : gen_reg_rtx (Pmode));
operands[1] = legitimize_pic_address (operands[1], SImode, temp);
}
- else if (flag_pic && TARGET_PCREL && ! reload_in_progress)
+ else if (flag_pic && TARGET_PCREL && ! (reload_in_progress || lra_in_progress))
{
/* Don't allow writes to memory except via a register;
the m68k doesn't consider PC-relative addresses to be writable. */
""
{
/* We can't rewrite operands during reload. */
- if (! reload_in_progress)
+ if (! (reload_in_progress || lra_in_progress))
{
if (CONSTANT_P (operands[1]))
{