diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-07-05 17:05:04 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-07-05 17:05:04 +0000 |
commit | 19641ccbf6a373713d11ad9eafe2a75ebbbf2143 (patch) | |
tree | bb24150fb1af8befd373e0b030d792c4e81ce92e | |
parent | 07216fdfba8ffd4a2a537df6772eb37142f78bf5 (diff) | |
download | gcc-19641ccbf6a373713d11ad9eafe2a75ebbbf2143.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175871 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.c | 9 |
2 files changed, 13 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 31ca36d1784..f696e9b00d4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2011-07-05 Richard Henderson <rth@redhat.com> + * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER + for ar.pfs save at alloc insn. + +2011-07-05 Richard Henderson <rth@redhat.com> + * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove. (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove. (arm_expand_prologue): Use REG_CFA_REGISTER to mark the 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. */ |