diff options
author | Zhenqiang Chen <zhenqiang.chen@linaro.org> | 2013-10-08 07:58:08 +0000 |
---|---|---|
committer | Xuepeng Guo <xguo@gcc.gnu.org> | 2013-10-08 07:58:08 +0000 |
commit | 07d964d518f6990bf4d493672b1ab1567b3e4199 (patch) | |
tree | 683088e848b5cb1e93e7946788848c42ae8c8aca /gcc | |
parent | 18971f1fc38596e4bb8cd9911a8a656231bb5827 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 11 |
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); } } |