From 9f2ff8e5c985bb72bc6190be916618279abeb7ce Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 5 Jul 2011 10:05:04 -0700 Subject: [PATCH] ia64: Issue REG_CFA_REGISTER for ar.pfs at alloc insn. * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER for ar.pfs save at alloc insn. From-SVN: r175871 --- gcc/ChangeLog | 5 +++++ gcc/config/ia64/ia64.c | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 31ca36d1784..f696e9b00d4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-07-05 Richard Henderson + + * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER + for ar.pfs save at alloc insn. + 2011-07-05 Richard Henderson * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove. diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index c06903d869f..0a6f2e62216 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -3249,7 +3249,14 @@ ia64_expand_prologue (void) GEN_INT (current_frame_info.n_local_regs), GEN_INT (current_frame_info.n_output_regs), GEN_INT (current_frame_info.n_rotate_regs))); - RTX_FRAME_RELATED_P (insn) = (current_frame_info.r[reg_save_ar_pfs] != 0); + if (current_frame_info.r[reg_save_ar_pfs]) + { + RTX_FRAME_RELATED_P (insn) = 1; + add_reg_note (insn, REG_CFA_REGISTER, + gen_rtx_SET (VOIDmode, + ar_pfs_save_reg, + gen_rtx_REG (DImode, AR_PFS_REGNUM))); + } } /* Set up frame pointer, stack pointer, and spill iterators. */ -- 2.30.2