summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>1992-06-30 01:12:43 +0000
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>1992-06-30 01:12:43 +0000
commit8d1c3ddc99714847f9a8d382bdca1ed53ad57012 (patch)
tree07c5f4875f62e52ed2702c70ef73ae6f07dd1ea7 /gcc
parent47eb0eae2dc2b89722c76300a1c9ec8a6a9f8238 (diff)
downloadgcc-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')
-rw-r--r--gcc/sdbout.c18
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.