aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2005-11-08 21:47:09 +0000
committerJakub Jelinek <jakub@redhat.com>2005-11-08 21:47:09 +0000
commit281a600fba9df97edfbeabae39f5b10ae3ab9186 (patch)
tree5952c77912f2e73a5e17c8a52b74642b20859855
parent2ca394f1adf0702d414de0d31651156e01414e6a (diff)
* dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
DBX_REGISTER_NUMBER being contiguous. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@106658 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/dwarf2out.c8
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5d6bfe6aec6..5e86d193a40 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2005-11-08 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
+ DBX_REGISTER_NUMBER being contiguous.
+
2005-11-08 James A. Morrison <phython@gcc.gnu.org>
Diego Novillo <dnovillo@redhat.com>
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index d0520b5811f..4cdb480a6e8 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -8536,7 +8536,11 @@ multiple_reg_loc_descriptor (rtx rtl, rtx regs)
unsigned reg;
dw_loc_descr_ref loc_result = NULL;
- reg = dbx_reg_number (rtl);
+ reg = REGNO (rtl);
+#ifdef LEAF_REG_REMAP
+ reg = LEAF_REG_REMAP (reg);
+#endif
+ gcc_assert ((unsigned) DBX_REGISTER_NUMBER (reg) == dbx_reg_number (rtl));
nregs = hard_regno_nregs[REGNO (rtl)][GET_MODE (rtl)];
/* Simple, contiguous registers. */
@@ -8549,7 +8553,7 @@ multiple_reg_loc_descriptor (rtx rtl, rtx regs)
{
dw_loc_descr_ref t;
- t = one_reg_loc_descriptor (reg);
+ t = one_reg_loc_descriptor (DBX_REGISTER_NUMBER (reg));
add_loc_descr (&loc_result, t);
add_loc_descr_op_piece (&loc_result, size);
++reg;