mips.c (mips_sim_insn): Update comment.
authorRichard Sandiford <richard.sandiford@arm.com>
Sun, 26 Oct 2014 10:41:45 +0000 (10:41 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Sun, 26 Oct 2014 10:41:45 +0000 (10:41 +0000)
gcc/
* config/mips/mips.c (mips_sim_insn): Update comment.
(mips_sim_wait_regs_2): Delete.
(mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.

From-SVN: r216713

gcc/ChangeLog
gcc/config/mips/mips.c

index f753d6545e2d33caa8030562d4c42c0ca9ee694e..059db3081aef0cb075553c56c8c27a863c7d26b6 100644 (file)
@@ -1,3 +1,9 @@
+2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/mips/mips.c (mips_sim_insn): Update comment.
+       (mips_sim_wait_regs_2): Delete.
+       (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
+
 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
 
        * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
index 8a0185c0c988e7e3b92cf76d49243aaeab46741c..fe1f5f5f220450cbd84008a6d567ff7f065ad9bc 100644 (file)
@@ -15468,7 +15468,7 @@ mips_annotate_pic_calls (void)
     }
 }
 \f
-/* A temporary variable used by for_each_rtx callbacks, etc.  */
+/* A temporary variable used by note_uses callbacks, etc.  */
 static rtx_insn *mips_sim_insn;
 
 /* A structure representing the state of the processor pipeline.
@@ -15562,23 +15562,16 @@ mips_sim_wait_reg (struct mips_sim *state, rtx_insn *insn, rtx reg)
     }
 }
 
-/* A for_each_rtx callback.  If *X is a register, advance simulation state
-   DATA until mips_sim_insn can read the register's value.  */
-
-static int
-mips_sim_wait_regs_2 (rtx *x, void *data)
-{
-  if (REG_P (*x))
-    mips_sim_wait_reg ((struct mips_sim *) data, mips_sim_insn, *x);
-  return 0;
-}
-
-/* Call mips_sim_wait_regs_2 (R, DATA) for each register R mentioned in *X.  */
+/* A note_uses callback.  For each register in *X, advance simulation
+   state DATA until mips_sim_insn can read the register's value.  */
 
 static void
 mips_sim_wait_regs_1 (rtx *x, void *data)
 {
-  for_each_rtx (x, mips_sim_wait_regs_2, data);
+  subrtx_var_iterator::array_type array;
+  FOR_EACH_SUBRTX_VAR (iter, array, *x, NONCONST)
+    if (REG_P (*iter))
+      mips_sim_wait_reg ((struct mips_sim *) data, mips_sim_insn, *iter);
 }
 
 /* Advance simulation state STATE until all of INSN's register