diff options
author | Richard Stallman <rms@gnu.org> | 1992-06-30 01:12:43 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-06-30 01:12:43 +0000 |
commit | bf1e8c4ddced2188ae3239ac62573d73eccbd634 (patch) | |
tree | 07c5f4875f62e52ed2702c70ef73ae6f07dd1ea7 /gcc | |
parent | 61b01243ddfd3123722b4032502c7caa35149d9f (diff) | |
download | gcc-bf1e8c4ddced2188ae3239ac62573d73eccbd634.zip gcc-bf1e8c4ddced2188ae3239ac62573d73eccbd634.tar.gz gcc-bf1e8c4ddced2188ae3239ac62573d73eccbd634.tar.bz2 |
*** empty log message ***
From-SVN: r1349
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/sdbout.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/gcc/sdbout.c b/gcc/sdbout.c index e5d36e7..b8e0a4e 100644 --- a/gcc/sdbout.c +++ b/gcc/sdbout.c @@ -659,7 +659,12 @@ sdbout_symbol (decl, local) if (DECL_RTL (decl) == 0) return; - value = eliminate_regs (DECL_RTL (decl), 0, 0); + DECL_RTL (decl) = eliminate_regs (DECL_RTL (decl), 0, 0); +#ifdef LEAF_REG_REMAP + if (leaf_function) + leaf_renumber_regs_insn (DECL_RTL (decl)); +#endif + value = DECL_RTL (decl); /* Don't mention a variable at all if it was completely optimized into nothingness. @@ -671,11 +676,9 @@ sdbout_symbol (decl, local) { regno = REGNO (DECL_RTL (decl)); if (regno >= FIRST_PSEUDO_REGISTER) - regno = reg_renumber[REGNO (DECL_RTL (decl))]; - if (regno < 0) return; } - else if (GET_CODE (DECL_RTL (decl)) == SUBREG) + else if (GET_CODE (value) == SUBREG) { int offset = 0; while (GET_CODE (value) == SUBREG) @@ -687,10 +690,11 @@ sdbout_symbol (decl, local) { regno = REGNO (value); if (regno >= FIRST_PSEUDO_REGISTER) - regno = reg_renumber[REGNO (value)]; - if (regno >= 0) - regno += offset; + return; + regno += offset; } + alter_subreg (DECL_RTL (decl)); + value = DECL_RTL (decl); } /* Emit any structure, union, or enum type that has not been output. |