From c7f36d55a63c3328c60e4198781867d61e14d886 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Thu, 3 Oct 2013 19:25:42 +0200 Subject: i386.c (ix86_option_override_internal): Do not enable accumulate-outgoing-args when producing unwind info. * i386.c (ix86_option_override_internal): Do not enable accumulate-outgoing-args when producing unwind info. From-SVN: r203171 --- gcc/ChangeLog | 5 +++++ gcc/config/i386/i386.c | 19 +------------------ 2 files changed, 6 insertions(+), 18 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 138d6c5..93cd63d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-10-03 Jan Hubicka + + * i386.c (ix86_option_override_internal): Do not enable + accumulate-outgoing-args when producing unwind info. + 2013-10-03 Wei Mi * lra-constraints.c (insert_move_for_subreg): New function diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 21fc531..09b0fc5 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -3793,28 +3793,11 @@ ix86_option_override_internal (bool main_args_p) } ix86_tune_mask = 1u << ix86_tune; - if ((!USE_IX86_FRAME_POINTER - || (x86_accumulate_outgoing_args & ix86_tune_mask)) + if ((x86_accumulate_outgoing_args & ix86_tune_mask) && !(target_flags_explicit & MASK_ACCUMULATE_OUTGOING_ARGS) && !optimize_size) target_flags |= MASK_ACCUMULATE_OUTGOING_ARGS; - /* ??? Unwind info is not correct around the CFG unless either a frame - pointer is present or M_A_O_A is set. Fixing this requires rewriting - unwind info generation to be aware of the CFG and propagating states - around edges. */ - if ((flag_unwind_tables || flag_asynchronous_unwind_tables - || flag_exceptions || flag_non_call_exceptions) - && flag_omit_frame_pointer - && !(target_flags & MASK_ACCUMULATE_OUTGOING_ARGS)) - { - if (target_flags_explicit & MASK_ACCUMULATE_OUTGOING_ARGS) - warning (0, "unwind tables currently require either a frame pointer " - "or %saccumulate-outgoing-args%s for correctness", - prefix, suffix); - target_flags |= MASK_ACCUMULATE_OUTGOING_ARGS; - } - /* If stack probes are required, the space used for large function arguments on the stack must also be probed, so enable -maccumulate-outgoing-args so this happens in the prologue. */ -- cgit v1.1