dwarf2out.c (loc_descr_plus_const): When offset is negative, use DW_OP_minus with negated offset instead of DW_OP_plus.

* dwarf2out.c (loc_descr_plus_const): When offset is negative, use
	DW_OP_minus with negated offset instead of DW_OP_plus.
	(loc_list_from_tree): Don't test whether second operand is
	INTEGER_CST.

From-SVN: r159809
This commit is contained in:
Jakub Jelinek 2010-05-25 09:49:16 +02:00 committed by Jakub Jelinek
parent fd33fd1023
commit 9d4545b28e
2 changed files with 10 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2010-05-25 Jakub Jelinek <jakub@redhat.com>
* dwarf2out.c (loc_descr_plus_const): When offset is negative, use
DW_OP_minus with negated offset instead of DW_OP_plus.
(loc_list_from_tree): Don't test whether second operand is
INTEGER_CST.
2010-05-25 Wei Guozhi <carrot@google.com>
* config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to

View File

@ -4677,8 +4677,8 @@ loc_descr_plus_const (dw_loc_descr_ref *list_head, HOST_WIDE_INT offset)
else
{
loc->dw_loc_next = int_loc_descriptor (offset);
add_loc_descr (&loc->dw_loc_next, new_loc_descr (DW_OP_plus, 0, 0));
loc->dw_loc_next = int_loc_descriptor (-offset);
add_loc_descr (&loc->dw_loc_next, new_loc_descr (DW_OP_minus, 0, 0));
}
}
@ -15137,8 +15137,7 @@ loc_list_from_tree (tree loc, int want_address)
case POINTER_PLUS_EXPR:
case PLUS_EXPR:
if (TREE_CODE (TREE_OPERAND (loc, 1)) == INTEGER_CST
&& host_integerp (TREE_OPERAND (loc, 1), 0))
if (host_integerp (TREE_OPERAND (loc, 1), 0))
{
list_ret = loc_list_from_tree (TREE_OPERAND (loc, 0), 0);
if (list_ret == 0)