aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-06-30 01:12:43 +0000
committerRichard Stallman <rms@gnu.org>1992-06-30 01:12:43 +0000
commitbf1e8c4ddced2188ae3239ac62573d73eccbd634 (patch)
tree07c5f4875f62e52ed2702c70ef73ae6f07dd1ea7 /gcc
parent61b01243ddfd3123722b4032502c7caa35149d9f (diff)
downloadgcc-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.c18
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.