]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/58423 ([ARM]ICE with shrink-wrap-sibcall.c on a15/neon/hard)
authorZhenqiang Chen <zhenqiang.chen@linaro.org>
Tue, 8 Oct 2013 07:58:08 +0000 (07:58 +0000)
committerXuepeng Guo <xguo@gcc.gnu.org>
Tue, 8 Oct 2013 07:58:08 +0000 (07:58 +0000)
2013-10-08  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

PR target/58423
* config/arm/arm.c (arm_emit_ldrd_pop): Attach
RTX_FRAME_RELATED_P on INSN.

From-SVN: r203267

gcc/ChangeLog
gcc/config/arm/arm.c

index aa0325f0e964b51ffdfabec5dee2a36570fff00e..500fcbb0e5d64057e2fd8a146d07287dd942ec36 100644 (file)
@@ -1,3 +1,9 @@
+2013-10-08  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
+
+       PR target/58423
+       * config/arm/arm.c (arm_emit_ldrd_pop): Attach
+       RTX_FRAME_RELATED_P on INSN.
+
 2013-10-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
        * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
index 42f3f478308e3d421f5362bce1d463af9127f695..071c7024f1602bbe4a47a8eb69f1878d64ce3a13 100644 (file)
@@ -19565,8 +19565,8 @@ arm_emit_ldrd_pop (unsigned long saved_regs_mask)
               mem = gen_frame_mem (DImode, stack_pointer_rtx);
 
             tmp = gen_rtx_SET (DImode, gen_rtx_REG (DImode, j), mem);
-            RTX_FRAME_RELATED_P (tmp) = 1;
             tmp = emit_insn (tmp);
+           RTX_FRAME_RELATED_P (tmp) = 1;
 
             /* Generate dwarf info.  */
 
@@ -19594,8 +19594,8 @@ arm_emit_ldrd_pop (unsigned long saved_regs_mask)
               mem = gen_frame_mem (SImode, stack_pointer_rtx);
 
             tmp = gen_rtx_SET (SImode, gen_rtx_REG (SImode, j), mem);
-            RTX_FRAME_RELATED_P (tmp) = 1;
             tmp = emit_insn (tmp);
+           RTX_FRAME_RELATED_P (tmp) = 1;
 
             /* Generate dwarf info.  */
             REG_NOTES (tmp) = alloc_reg_note (REG_CFA_RESTORE,
@@ -19619,8 +19619,9 @@ arm_emit_ldrd_pop (unsigned long saved_regs_mask)
                          plus_constant (Pmode,
                                         stack_pointer_rtx,
                                         offset));
-      RTX_FRAME_RELATED_P (tmp) = 1;
-      emit_insn (tmp);
+      tmp = emit_insn (tmp);
+      arm_add_cfa_adjust_cfa_note (tmp, offset,
+                                  stack_pointer_rtx, stack_pointer_rtx);
       offset = 0;
     }
 
@@ -19643,6 +19644,8 @@ arm_emit_ldrd_pop (unsigned long saved_regs_mask)
                               gen_rtx_REG (SImode, PC_REGNUM),
                               NULL_RTX);
       REG_NOTES (par) = dwarf;
+      arm_add_cfa_adjust_cfa_note (par, UNITS_PER_WORD,
+                                  stack_pointer_rtx, stack_pointer_rtx);
     }
 }