diff options
author | Jakub Jelinek <jakub@redhat.com> | 2011-03-25 17:22:00 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2011-03-25 17:22:00 +0100 |
commit | 21385db052f28434a7de4dbb5d19c00b6deddc03 (patch) | |
tree | bf3807f74faef827af3ec1a47c9c4ba3e90a2495 | |
parent | 5ade176d5eb914bf78919ac2f610599059fba340 (diff) | |
download | gcc-21385db052f28434a7de4dbb5d19c00b6deddc03.zip gcc-21385db052f28434a7de4dbb5d19c00b6deddc03.tar.gz gcc-21385db052f28434a7de4dbb5d19c00b6deddc03.tar.bz2 |
dwarf2out.c (mem_loc_descriptor): Compare mode size instead of bitsize with DWARF2_ADDR_SIZE.
* dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
mode size instead of bitsize with DWARF2_ADDR_SIZE.
(hash_loc_operands, compare_loc_operands): Handle
DW_OP_GNU_entry_value.
From-SVN: r171464
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 9 |
2 files changed, 14 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 827a662..62299ae 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2011-03-25 Jakub Jelinek <jakub@redhat.com> + + * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare + mode size instead of bitsize with DWARF2_ADDR_SIZE. + (hash_loc_operands, compare_loc_operands): Handle + DW_OP_GNU_entry_value. + 2011-03-25 Kai Tietz <ktietz@redhat.com> * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment. diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index e57b9a1..77d533e 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -14314,8 +14314,8 @@ mem_loc_descriptor (rtx rtl, enum machine_mode mode, && ((unsigned) INTVAL (XEXP (rtl, 1)) + (unsigned) INTVAL (XEXP (rtl, 2)) <= GET_MODE_BITSIZE (GET_MODE (rtl))) - && GET_MODE_BITSIZE (GET_MODE (rtl)) <= DWARF2_ADDR_SIZE - && GET_MODE_BITSIZE (GET_MODE (XEXP (rtl, 0))) <= DWARF2_ADDR_SIZE) + && GET_MODE_SIZE (GET_MODE (rtl)) <= DWARF2_ADDR_SIZE + && GET_MODE_SIZE (GET_MODE (XEXP (rtl, 0))) <= DWARF2_ADDR_SIZE) { int shift, size; op0 = mem_loc_descriptor (XEXP (rtl, 0), mode, @@ -23128,6 +23128,9 @@ hash_loc_operands (dw_loc_descr_ref loc, hashval_t hash) case DW_OP_GNU_implicit_pointer: hash = iterative_hash_object (val2->v.val_int, hash); break; + case DW_OP_GNU_entry_value: + hash = hash_loc_operands (val1->v.val_loc, hash); + break; default: /* Other codes have no operands. */ @@ -23285,6 +23288,8 @@ compare_loc_operands (dw_loc_descr_ref x, dw_loc_descr_ref y) && valx1->val_class == valy1->val_class && valx1->v.val_die_ref.die == valy1->v.val_die_ref.die && valx2->v.val_int == valy2->v.val_int; + case DW_OP_GNU_entry_value: + return compare_loc_operands (valx1->v.val_loc, valy1->v.val_loc); default: /* Other codes have no operands. */ return true; |