diff options
author | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-06-30 01:12:43 +0000 |
---|---|---|
committer | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-06-30 01:12:43 +0000 |
commit | 8d1c3ddc99714847f9a8d382bdca1ed53ad57012 (patch) | |
tree | 07c5f4875f62e52ed2702c70ef73ae6f07dd1ea7 /gcc/sdbout.c | |
parent | 47eb0eae2dc2b89722c76300a1c9ec8a6a9f8238 (diff) | |
download | gcc-8d1c3ddc99714847f9a8d382bdca1ed53ad57012.tar.gz |
*** empty log message ***
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@1349 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sdbout.c')
-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 e5d36e76b81..b8e0a4e2ee5 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. |