Commit a0905f8b by Bernd Schmidt Committed by Bernd Schmidt

dwarf2out.c (dwarf2out_frame_debug_expr): Handle POST_MODIFY.

	* dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
	POST_MODIFY.

From-SVN: r173446
parent 805e60a0
2011-05-05 Bernd Schmidt <bernds@codesourcery.com>
* dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
POST_MODIFY.
2011-05-05 Steve Ellcey <sje@cup.hp.com>
* config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
......
......@@ -2237,7 +2237,7 @@ dwarf2out_frame_debug_cfa_restore (rtx reg, const char *label)
cfa_temp.offset = <const_int>
Rule 10:
(set (mem (pre_modify sp:cfa_store (???? <reg1> <const_int>))) <reg2>)
(set (mem ({pre,post}_modify sp:cfa_store (???? <reg1> <const_int>))) <reg2>)
effects: cfa_store.offset -= <const_int>
cfa.offset = cfa_store.offset if cfa.reg == sp
cfa.reg = sp
......@@ -2578,6 +2578,7 @@ dwarf2out_frame_debug_expr (rtx expr, const char *label)
/* Rule 10 */
/* With a push. */
case PRE_MODIFY:
case POST_MODIFY:
/* We can't handle variable size modifications. */
gcc_assert (GET_CODE (XEXP (XEXP (XEXP (dest, 0), 1), 1))
== CONST_INT);
......@@ -2590,7 +2591,10 @@ dwarf2out_frame_debug_expr (rtx expr, const char *label)
if (cfa.reg == STACK_POINTER_REGNUM)
cfa.offset = cfa_store.offset;
offset = -cfa_store.offset;
if (GET_CODE (XEXP (dest, 0)) == POST_MODIFY)
offset -= cfa_store.offset;
else
offset = -cfa_store.offset;
break;
/* Rule 11 */
......
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