]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Re: rs6000: Use parameterized names for tablejump
authorAlan Modra <amodra@gmail.com>
Wed, 30 Sep 2020 03:04:20 +0000 (12:34 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 30 Sep 2020 03:06:52 +0000 (12:36 +0930)
* config/rs6000/rs6000.md (@tablejump<mode>_normal): Don't use
non-existent operands[].
(@tablejump<mode>_nospec): Likewise.

gcc/config/rs6000/rs6000.md

index 24ad80993adfbb765baec9209d32b7166d592974..779bfd11237c43dd65afe6ef75b43af7f77f4c66 100644 (file)
    (use (match_operand:P 1))]
   "rs6000_speculate_indirect_jumps"
 {
+  rtx off;
   operands[0] = force_reg (SImode, operands[0]);
   if (<MODE>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_add<mode>3 (operands[3], operands[4], operands[2]));
-  emit_jump_insn (gen_tablejump_insn_normal (Pmode, operands[3], operands[1]));
+  emit_insn (gen_add<mode>3 (addr, off, lab));
+  emit_jump_insn (gen_tablejump_insn_normal (Pmode, addr, operands[1]));
   DONE;
 })
 
    (use (match_operand:CC 2))]
   "!rs6000_speculate_indirect_jumps"
 {
+  rtx off;
   operands[0] = force_reg (SImode, operands[0]);
   if (<MODE>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_add<mode>3 (operands[3], operands[4], operands[5]));
-  emit_jump_insn (gen_tablejump_insn_nospec (Pmode, operands[3], operands[1],
+  emit_insn (gen_add<mode>3 (addr, off, lab));
+  emit_jump_insn (gen_tablejump_insn_nospec (Pmode, addr, operands[1],
                                             operands[2]));
   DONE;
 })