aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorZhenqiang Chen <zhenqiang.chen@linaro.org>2013-10-08 07:58:08 +0000
committerXuepeng Guo <xguo@gcc.gnu.org>2013-10-08 07:58:08 +0000
commit07d964d518f6990bf4d493672b1ab1567b3e4199 (patch)
tree683088e848b5cb1e93e7946788848c42ae8c8aca /gcc
parent18971f1fc38596e4bb8cd9911a8a656231bb5827 (diff)
downloadgcc-07d964d518f6990bf4d493672b1ab1567b3e4199.zip
gcc-07d964d518f6990bf4d493672b1ab1567b3e4199.tar.gz
gcc-07d964d518f6990bf4d493672b1ab1567b3e4199.tar.bz2
re PR target/58423 ([ARM]ICE with shrink-wrap-sibcall.c on a15/neon/hard)
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/arm.c11
2 files changed, 13 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index aa0325f..500fcbb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 42f3f47..071c702 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -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);
}
}