On 10/10/12 16:03, Greta Yorsh wrote:
Generate epilogue using LDRD in Thumb mode when prefer_ldrd_strd is set in
tune_params.

ChangeLog

gcc/

2012-09-13  Sameera Deshpande  <sameera.deshpa...@arm.com>
             Greta Yorsh  <greta.yo...@arm.com>

     * config/arm/arm.c (thumb2_emit_ldrd_pop): New function.
       (arm_expand_epilogue): Use the new function.


This is OK, apart from:



+
+  /* Var j iterates over all the registers to gather all the registers in
+     saved_regs_mask.  Var i gives index of saved registers in stack frame.
+     A PARALLEL RTX of register-pair is created here, so that pattern for
+     LDRD can be matched.  As PC is always last register to be popped, and
+     we have already decremented num_regs if PC, we don't have to worry
+     about PC in this loop.  */
+  for (i = 0, j = 0; i < (num_regs - (num_regs % 2)); j++)
+    if (saved_regs_mask & (1 << j))
+      {
+        gcc_assert (j != SP_REGNUM);

Please move the assert outside of the loop.

R.


Reply via email to