------- Comment #40 from howarth at nitro dot med dot uc dot edu 2009-09-20 18:27 ------- Is this the location of the additional epilogue notes being added in r147995?
@@ -8637,7 +8757,17 @@ + frame.nregs * UNITS_PER_WORD + frame.nsseregs * 16 + frame.padding0)); - emit_insn (gen_rtx_SET (VOIDmode, stack_pointer_rtx, tmp)); + tmp = emit_insn (gen_rtx_SET (VOIDmode, stack_pointer_rtx, tmp)); + + gcc_assert (ix86_cfa_state->reg == stack_pointer_rtx); + if (ix86_cfa_state->offset != UNITS_PER_WORD) + { + ix86_cfa_state->offset = UNITS_PER_WORD; + add_reg_note (tmp, REG_CFA_DEF_CFA, + plus_constant (stack_pointer_rtx, + UNITS_PER_WORD)); + RTX_FRAME_RELATED_P (tmp) = 1; + } } } else if (!frame_pointer_needed) If so, we can't just apply an "ifndef __APPLE__/#endif" wrapper appropriately there to suppress the addition of the epilog note? The question remains if the new unwinder will tolerate missing them. Remember that on darwin >= 10, libgcc is subsumed into libSystem and the libgcc built by FSF gcc is never actually used. So we have to be careful to not break darwin9 and earlier when suppressing the epilog notes for darwin10. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41260