On 03/22/2011 05:01 PM, Richard Henderson wrote: > On 03/22/2011 05:31 AM, Bernd Schmidt wrote: >> On 03/21/2011 09:50 PM, Richard Henderson wrote: >>> Ok to commit? >> >> As far as the dwarf2out bits are concerned, yes but please change it to >> also accept POST_MODIFY - your patch is identical to some code I need >> for a new target except for the rtx code. > > I can't quite. It's more than a 1-liner, and I'd prefer to test. > I *think* it also belongs in rule 10, not rule 11, but I'm not quite sure.
Ah yes. I didn't notice that you were modifying a different case; the surrounding code looked identical. Ok to apply the following on top? Bernd
* dwarf2out.c (dwarf2out_frame_debug_expr): Handle POST_MODIFY stores through the stack pointer. Index: gcc/dwarf2out.c =================================================================== --- gcc/dwarf2out.c (revision 316201) +++ gcc/dwarf2out.c (revision 316202) @@ -2440,6 +2440,7 @@ dwarf2out_frame_debug_expr (rtx expr, co /* 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); @@ -2452,7 +2453,10 @@ dwarf2out_frame_debug_expr (rtx expr, co 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 */