(use (match_operand:P 1))]
"rs6000_speculate_indirect_jumps"
{
- rtx off;
- operands[0] = force_reg (SImode, operands[0]);
- if (<MODE>mode == SImode)
- off = operands[0];
- else
+ rtx off = force_reg (SImode, operands[0]);
+ if (<MODE>mode != SImode)
{
+ rtx src = gen_rtx_fmt_e (SIGN_EXTEND, Pmode, off);
off = gen_reg_rtx (Pmode);
- rtx src = gen_rtx_fmt_e (SIGN_EXTEND, Pmode, operands[0]);
emit_move_insn (off, src);
}
(use (match_operand:CC 2))]
"!rs6000_speculate_indirect_jumps"
{
- rtx off;
- operands[0] = force_reg (SImode, operands[0]);
- if (<MODE>mode == SImode)
- off = operands[0];
- else
+ rtx off = force_reg (SImode, operands[0]);
+ if (<MODE>mode != SImode)
{
+ rtx src = gen_rtx_fmt_e (SIGN_EXTEND, Pmode, off);
off = gen_reg_rtx (Pmode);
- rtx src = gen_rtx_fmt_e (SIGN_EXTEND, Pmode, operands[0]);
emit_move_insn (off, src);
}