summaryrefslogtreecommitdiffstats
path: root/gcc/regrename.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2003-02-07 01:20:04 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2003-02-07 01:20:04 +0000
commit83d9f7763f1c06b080ce0e8ba78f7ae7938fda8f (patch)
treec728b29df1166939da2bee8ea8edd87016334bf3 /gcc/regrename.c
parent652147b325071f0a296342a5a96ce0f3a95dd383 (diff)
downloadppe42-gcc-83d9f7763f1c06b080ce0e8ba78f7ae7938fda8f.tar.gz
ppe42-gcc-83d9f7763f1c06b080ce0e8ba78f7ae7938fda8f.zip
* regrename.c (do_replace, find_oldest_value_reg,
copyprop_hardreg_forward_1): Update register attributes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62509 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/regrename.c')
-rw-r--r--gcc/regrename.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/regrename.c b/gcc/regrename.c
index dce0e898751..027e2f444b7 100644
--- a/gcc/regrename.c
+++ b/gcc/regrename.c
@@ -377,9 +377,12 @@ do_replace (chain, reg)
while (chain)
{
unsigned int regno = ORIGINAL_REGNO (*chain->loc);
+ struct reg_attrs * attr = REG_ATTRS (*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;
chain = chain->next_use;
}
}
@@ -1393,6 +1396,7 @@ find_oldest_value_reg (class, reg, vd)
regno)))
{
ORIGINAL_REGNO (new) = ORIGINAL_REGNO (reg);
+ REG_ATTRS (new) = REG_ATTRS (reg);
return new;
}
}
@@ -1686,6 +1690,7 @@ copyprop_hardreg_forward_1 (bb, vd)
if (validate_change (insn, &SET_SRC (set), new, 0))
{
ORIGINAL_REGNO (new) = ORIGINAL_REGNO (src);
+ REG_ATTRS (new) = REG_ATTRS (src);
if (rtl_dump_file)
fprintf (rtl_dump_file,
"insn %u: replaced reg %u with %u\n",
OpenPOWER on IntegriCloud