Commit 21385db0 by Jakub Jelinek Committed by Jakub Jelinek

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
parent 5ade176d
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> 2011-03-25 Kai Tietz <ktietz@redhat.com>
* config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment. * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
......
...@@ -14314,8 +14314,8 @@ mem_loc_descriptor (rtx rtl, enum machine_mode mode, ...@@ -14314,8 +14314,8 @@ mem_loc_descriptor (rtx rtl, enum machine_mode mode,
&& ((unsigned) INTVAL (XEXP (rtl, 1)) && ((unsigned) INTVAL (XEXP (rtl, 1))
+ (unsigned) INTVAL (XEXP (rtl, 2)) + (unsigned) INTVAL (XEXP (rtl, 2))
<= GET_MODE_BITSIZE (GET_MODE (rtl))) <= GET_MODE_BITSIZE (GET_MODE (rtl)))
&& GET_MODE_BITSIZE (GET_MODE (rtl)) <= DWARF2_ADDR_SIZE && GET_MODE_SIZE (GET_MODE (rtl)) <= DWARF2_ADDR_SIZE
&& GET_MODE_BITSIZE (GET_MODE (XEXP (rtl, 0))) <= DWARF2_ADDR_SIZE) && GET_MODE_SIZE (GET_MODE (XEXP (rtl, 0))) <= DWARF2_ADDR_SIZE)
{ {
int shift, size; int shift, size;
op0 = mem_loc_descriptor (XEXP (rtl, 0), mode, op0 = mem_loc_descriptor (XEXP (rtl, 0), mode,
...@@ -23128,6 +23128,9 @@ hash_loc_operands (dw_loc_descr_ref loc, hashval_t hash) ...@@ -23128,6 +23128,9 @@ hash_loc_operands (dw_loc_descr_ref loc, hashval_t hash)
case DW_OP_GNU_implicit_pointer: case DW_OP_GNU_implicit_pointer:
hash = iterative_hash_object (val2->v.val_int, hash); hash = iterative_hash_object (val2->v.val_int, hash);
break; break;
case DW_OP_GNU_entry_value:
hash = hash_loc_operands (val1->v.val_loc, hash);
break;
default: default:
/* Other codes have no operands. */ /* Other codes have no operands. */
...@@ -23285,6 +23288,8 @@ compare_loc_operands (dw_loc_descr_ref x, dw_loc_descr_ref y) ...@@ -23285,6 +23288,8 @@ compare_loc_operands (dw_loc_descr_ref x, dw_loc_descr_ref y)
&& valx1->val_class == valy1->val_class && valx1->val_class == valy1->val_class
&& valx1->v.val_die_ref.die == valy1->v.val_die_ref.die && valx1->v.val_die_ref.die == valy1->v.val_die_ref.die
&& valx2->v.val_int == valy2->v.val_int; && 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: default:
/* Other codes have no operands. */ /* Other codes have no operands. */
return true; return true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment