diff options
author | Richard Henderson <rth@redhat.com> | 2011-07-05 10:05:04 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2011-07-05 10:05:04 -0700 |
commit | 9f2ff8e5c985bb72bc6190be916618279abeb7ce (patch) | |
tree | bb24150fb1af8befd373e0b030d792c4e81ce92e | |
parent | ddc6e7d62c53eb1ef02410d5494bd3fd726b9f68 (diff) | |
download | gcc-9f2ff8e5c985bb72bc6190be916618279abeb7ce.zip gcc-9f2ff8e5c985bb72bc6190be916618279abeb7ce.tar.gz gcc-9f2ff8e5c985bb72bc6190be916618279abeb7ce.tar.bz2 |
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
-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 31ca36d..f696e9b 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 c06903d..0a6f2e6 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. */ |