summaryrefslogtreecommitdiff
path: root/gcc/config/1750a
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1997-02-02 11:08:11 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1997-02-02 11:08:11 +0000
commit1e72cf8ea187811f58671c4c0659285da301fb84 (patch)
tree8ea9fb3d40b6e3419a1872c8f4fd2c1c9fc6120e /gcc/config/1750a
parent42b462d71a23a54fee4f4dcb8076b3cbaa5d1fc9 (diff)
downloadgcc-1e72cf8ea187811f58671c4c0659285da301fb84.tar.gz
(modregno_adjust): Fixed case when reg_renumber invalid.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13577 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/1750a')
-rw-r--r--gcc/config/1750a/1750a.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/config/1750a/1750a.c b/gcc/config/1750a/1750a.c
index 0c10b6ddc73..c82a872a163 100644
--- a/gcc/config/1750a/1750a.c
+++ b/gcc/config/1750a/1750a.c
@@ -204,12 +204,15 @@ mod_regno_adjust (instr, op)
char *r = (!strncmp (instr, "dvr", 3) ? "r" : "");
int modregno_gcc = REGNO (op[3]), modregno_1750 = REGNO (op[0]) + 1;
- if (modregno_gcc == modregno_1750 || (reg_renumber != NULL
- && reg_renumber[modregno_gcc] == reg_renumber[modregno_1750]))
+ if (modregno_gcc == modregno_1750
+ || (reg_renumber != NULL
+ && reg_renumber[modregno_gcc] >= 0
+ && reg_renumber[modregno_gcc] == reg_renumber[modregno_1750]))
sprintf (outstr, "%s r%%0,%s%%2", instr, r);
else
sprintf (outstr, "lr r%d,r%d\n\t%s r%%0,%s%%2\n\txwr r%d,r%d",
- modregno_gcc, modregno_1750, instr, r, modregno_1750, modregno_gcc);
+ modregno_gcc, modregno_1750, instr, r, modregno_1750,
+ modregno_gcc);
return outstr;
}