summaryrefslogtreecommitdiff
path: root/gcc/ira-emit.c
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2008-10-18 10:14:55 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2008-10-18 10:14:55 +0000
commit9c771277d6f6843d1b7cde60a8d5acf95593dee2 (patch)
tree79ed757686c57821a35c3efb96f5a1eab82e2aaf /gcc/ira-emit.c
parentf42aeaddf822d9596e1c31224078d97a08097847 (diff)
downloadgcc-9c771277d6f6843d1b7cde60a8d5acf95593dee2.tar.gz
2008-10-18 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r141209 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@141210 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira-emit.c')
-rw-r--r--gcc/ira-emit.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ira-emit.c b/gcc/ira-emit.c
index 7fdaefb52e5..a6a7582f519 100644
--- a/gcc/ira-emit.c
+++ b/gcc/ira-emit.c
@@ -137,6 +137,7 @@ change_regs (rtx *loc)
int i, regno, result = false;
const char *fmt;
enum rtx_code code;
+ rtx reg;
if (*loc == NULL_RTX)
return false;
@@ -151,7 +152,10 @@ change_regs (rtx *loc)
return false;
if (ira_curr_regno_allocno_map[regno] == NULL)
return false;
- *loc = ALLOCNO_REG (ira_curr_regno_allocno_map[regno]);
+ reg = ALLOCNO_REG (ira_curr_regno_allocno_map[regno]);
+ if (reg == *loc)
+ return false;
+ *loc = reg;
return true;
}