From ac001f5ce604f40f0a0099909325837b8792294b Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 30 Sep 2020 12:34:20 +0930 Subject: [PATCH] Re: rs6000: Use parameterized names for tablejump * config/rs6000/rs6000.md (@tablejump_normal): Don't use non-existent operands[]. (@tablejump_nospec): Likewise. --- gcc/config/rs6000/rs6000.md | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 24ad80993adf..779bfd11237c 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -12716,21 +12716,22 @@ (use (match_operand:P 1))] "rs6000_speculate_indirect_jumps" { + rtx off; operands[0] = force_reg (SImode, operands[0]); if (mode == SImode) - operands[4] = operands[0]; + off = operands[0]; else { - operands[4] = gen_reg_rtx (Pmode); + off = gen_reg_rtx (Pmode); rtx src = gen_rtx_fmt_e (SIGN_EXTEND, Pmode, operands[0]); - emit_move_insn (operands[4], src); + emit_move_insn (off, src); } - operands[2] = force_reg (Pmode, gen_rtx_LABEL_REF (Pmode, operands[1])); - operands[3] = gen_reg_rtx (Pmode); + rtx lab = force_reg (Pmode, gen_rtx_LABEL_REF (Pmode, operands[1])); + rtx addr = gen_reg_rtx (Pmode); - emit_insn (gen_add3 (operands[3], operands[4], operands[2])); - emit_jump_insn (gen_tablejump_insn_normal (Pmode, operands[3], operands[1])); + emit_insn (gen_add3 (addr, off, lab)); + emit_jump_insn (gen_tablejump_insn_normal (Pmode, addr, operands[1])); DONE; }) @@ -12740,21 +12741,22 @@ (use (match_operand:CC 2))] "!rs6000_speculate_indirect_jumps" { + rtx off; operands[0] = force_reg (SImode, operands[0]); if (mode == SImode) - operands[4] = operands[0]; + off = operands[0]; else { - operands[4] = gen_reg_rtx (Pmode); + off = gen_reg_rtx (Pmode); rtx src = gen_rtx_fmt_e (SIGN_EXTEND, Pmode, operands[0]); - emit_move_insn (operands[4], src); + emit_move_insn (off, src); } - operands[5] = force_reg (Pmode, gen_rtx_LABEL_REF (Pmode, operands[1])); - operands[3] = gen_reg_rtx (Pmode); + rtx lab = force_reg (Pmode, gen_rtx_LABEL_REF (Pmode, operands[1])); + rtx addr = gen_reg_rtx (Pmode); - emit_insn (gen_add3 (operands[3], operands[4], operands[5])); - emit_jump_insn (gen_tablejump_insn_nospec (Pmode, operands[3], operands[1], + emit_insn (gen_add3 (addr, off, lab)); + emit_jump_insn (gen_tablejump_insn_nospec (Pmode, addr, operands[1], operands[2])); DONE; }) -- 2.47.2