This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/41260] [4.5 Regression] major regressions on *-apple-darwin10 at -m64 caused by r147995
- From: "howarth at nitro dot med dot uc dot edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 20 Sep 2009 18:27:12 -0000
- Subject: [Bug middle-end/41260] [4.5 Regression] major regressions on *-apple-darwin10 at -m64 caused by r147995
- References: <bug-41260-11113@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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