aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2008-09-23 20:44:18 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2008-09-23 20:44:18 +0000
commitb41310e29d14fccd0e8eecf34bf636d7c02ef4c9 (patch)
treed0cb552ee66fbcf479e2a8496db9068b80fd32a0 /gcc
parent8569b2d0a9f6f625ff7918dd71c2c6556531373e (diff)
downloadgcc-b41310e29d14fccd0e8eecf34bf636d7c02ef4c9.zip
gcc-b41310e29d14fccd0e8eecf34bf636d7c02ef4c9.tar.gz
gcc-b41310e29d14fccd0e8eecf34bf636d7c02ef4c9.tar.bz2
* regrename.c (do_replace): Copy REG_POINTER value to new reg.
From-SVN: r140616
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/regrename.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 15fa082..edc7f93 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2008-08-23 Steve Ellcey <sje@cup.hp.com>
+
+ * regrename.c (do_replace): Copy REG_POINTER value to new reg.
+
2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
* alias.c (find_base_value): Use FIND_BASE_TERM.
diff --git a/gcc/regrename.c b/gcc/regrename.c
index e70dae8..b01c2e6 100644
--- a/gcc/regrename.c
+++ b/gcc/regrename.c
@@ -357,11 +357,13 @@ do_replace (struct du_chain *chain, int reg)
{
unsigned int regno = ORIGINAL_REGNO (*chain->loc);
struct reg_attrs * attr = REG_ATTRS (*chain->loc);
+ int reg_ptr = REG_POINTER (*chain->loc);
*chain->loc = gen_raw_REG (GET_MODE (*chain->loc), reg);
if (regno >= FIRST_PSEUDO_REGISTER)
ORIGINAL_REGNO (*chain->loc) = regno;
REG_ATTRS (*chain->loc) = attr;
+ REG_POINTER (*chain->loc) = reg_ptr;
df_insn_rescan (chain->insn);
chain = chain->next_use;
}