diff options
author | Jan Hubicka <jh@suse.cz> | 2013-10-03 19:25:42 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2013-10-03 17:25:42 +0000 |
commit | c7f36d55a63c3328c60e4198781867d61e14d886 (patch) | |
tree | 6a2403a59958d2806cf5d3dde9a3129d95ed6ffc | |
parent | 4f0bee4c9ae0c361ea1cb8731d928e92f610f593 (diff) | |
download | gcc-c7f36d55a63c3328c60e4198781867d61e14d886.zip gcc-c7f36d55a63c3328c60e4198781867d61e14d886.tar.gz gcc-c7f36d55a63c3328c60e4198781867d61e14d886.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 19 |
2 files changed, 6 insertions, 18 deletions
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 <jh@suse.cz> + + * i386.c (ix86_option_override_internal): Do not enable + accumulate-outgoing-args when producing unwind info. + 2013-10-03 Wei Mi <wmi@google.com> * 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. */ |