Commit d090a5aa by Richard Henderson Committed by Richard Henderson

* dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.

From-SVN: r171296
parent bdfe906f
......@@ -16,6 +16,8 @@
(*pushhi, *pushsi, *pushsf, popqi): Likewise.
(pophi): Remove.
* dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
* tree.c (build_call_1): New function.
......
......@@ -2239,7 +2239,7 @@ dwarf2out_frame_debug_cfa_restore (rtx reg, const char *label)
cfa.base_offset = -cfa_store.offset
Rule 11:
(set (mem ({pre_inc,pre_dec} sp:cfa_store.reg)) <reg>)
(set (mem ({pre_inc,pre_dec,post_dec} sp:cfa_store.reg)) <reg>)
effects: cfa_store.offset += -/+ mode_size(mem)
cfa.offset = cfa_store.offset if cfa.reg == sp
cfa.reg = sp
......@@ -2258,7 +2258,7 @@ dwarf2out_frame_debug_cfa_restore (rtx reg, const char *label)
cfa.base_offset = -{cfa_store,cfa_temp}.offset
Rule 14:
(set (mem (postinc <reg1>:cfa_temp <const_int>)) <reg2>)
(set (mem (post_inc <reg1>:cfa_temp <const_int>)) <reg2>)
effects: cfa.reg = <reg1>
cfa.base_offset = -cfa_temp.offset
cfa_temp.offset -= mode_size(mem)
......@@ -2591,6 +2591,7 @@ dwarf2out_frame_debug_expr (rtx expr, const char *label)
/* Rule 11 */
case PRE_INC:
case PRE_DEC:
case POST_DEC:
offset = GET_MODE_SIZE (GET_MODE (dest));
if (GET_CODE (XEXP (dest, 0)) == PRE_INC)
offset = -offset;
......@@ -2615,7 +2616,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_DEC)
offset += -cfa_store.offset;
else
offset = -cfa_store.offset;
break;
/* Rule 12 */
......
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