OSDN Git Service

* regrename.c (do_replace): Copy REG_POINTER value to new reg.
authorsje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 23 Sep 2008 20:44:18 +0000 (20:44 +0000)
committersje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 23 Sep 2008 20:44:18 +0000 (20:44 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140616 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/regrename.c

index 15fa082..edc7f93 100644 (file)
@@ -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.
index e70dae8..b01c2e6 100644 (file)
@@ -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;
     }