* mn10300.md (reload_insi): Handle SUBREG properly.
From-SVN: r14109
This commit is contained in:
parent
5bef9b1f9d
commit
bb75a000ab
@ -167,12 +167,26 @@
|
||||
if (XEXP (operands[1], 0) == stack_pointer_rtx)
|
||||
{
|
||||
emit_move_insn (operands[0], XEXP (operands[1], 0));
|
||||
emit_move_insn (operands[2], XEXP (operands[1], 1));
|
||||
if (GET_CODE (XEXP (operands[1], 1)) == SUBREG
|
||||
&& (GET_MODE_SIZE (GET_MODE (XEXP (operands[1], 1)))
|
||||
> GET_MODE_SIZE (GET_MODE (SUBREG_REG (XEXP (operands[1], 1))))))
|
||||
emit_move_insn (operands[2],
|
||||
gen_rtx (ZERO_EXTEND, GET_MODE (XEXP (operands[1], 1)),
|
||||
SUBREG_REG (XEXP (operands[1], 1))));
|
||||
else
|
||||
emit_move_insn (operands[2], XEXP (operands[1], 1));
|
||||
}
|
||||
else
|
||||
{
|
||||
emit_move_insn (operands[0], XEXP (operands[1], 1));
|
||||
emit_move_insn (operands[2], XEXP (operands[1], 0));
|
||||
if (GET_CODE (XEXP (operands[1], 0)) == SUBREG
|
||||
&& (GET_MODE_SIZE (GET_MODE (XEXP (operands[1], 0)))
|
||||
> GET_MODE_SIZE (GET_MODE (SUBREG_REG (XEXP (operands[1], 0))))))
|
||||
emit_move_insn (operands[2],
|
||||
gen_rtx (ZERO_EXTEND, GET_MODE (XEXP (operands[1], 0)),
|
||||
SUBREG_REG (XEXP (operands[1], 0))));
|
||||
else
|
||||
emit_move_insn (operands[2], XEXP (operands[1], 0));
|
||||
}
|
||||
emit_insn (gen_addsi3 (operands[0], operands[0], operands[2]));
|
||||
DONE;
|
||||
|
Loading…
Reference in New Issue
Block a user