* mn10300.md (reload_insi): Handle SUBREG properly.

From-SVN: r14109
This commit is contained in:
Jeff Law 1997-05-21 23:35:37 -06:00
parent 5bef9b1f9d
commit bb75a000ab

View File

@ -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;