diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1997-02-02 06:08:11 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1997-02-02 06:08:11 -0500 |
commit | b11d179015a079ad00e99b1480ed03ed725a4077 (patch) | |
tree | 8ea9fb3d40b6e3419a1872c8f4fd2c1c9fc6120e | |
parent | 2c5447d988ec4cc8eaa4d2bf029e46b6e939d654 (diff) | |
download | gcc-b11d179015a079ad00e99b1480ed03ed725a4077.zip gcc-b11d179015a079ad00e99b1480ed03ed725a4077.tar.gz gcc-b11d179015a079ad00e99b1480ed03ed725a4077.tar.bz2 |
(modregno_adjust): Fixed case when reg_renumber invalid.
From-SVN: r13577
-rw-r--r-- | gcc/config/1750a/1750a.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/config/1750a/1750a.c b/gcc/config/1750a/1750a.c index 0c10b6d..c82a872 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; } |