From 3c94308b4ce616a2d8912b0a0bc488acbf703c11 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 7 Nov 2011 11:45:35 +1030 Subject: [PATCH] re PR target/30282 (Optimization flag -O1 -fschedule-insns2 cause red zone to be used when there is none) PR target/30282 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit blockage for ABI_V4. From-SVN: r181058 --- gcc/ChangeLog | 12 +++++++++--- gcc/config/rs6000/rs6000.c | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b94614453e7f..506a6a060275 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-11-07 Alan Modra + + PR target/30282 + * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit + blockage for ABI_V4. + 2011-11-04 Eric Botcazou PR target/50979 @@ -709,7 +715,7 @@ to flow_loop_nested_p when moving the loop upward. 2011-03-15 Richard Guenther - + PR middle-end/48031 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized or variable-indexed array accesses when in gimple form. @@ -1933,7 +1939,7 @@ Backport from mainline 2010-12-06 Jakub Jelinek - + PR target/43897 * config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER as a store into that register. @@ -3112,7 +3118,7 @@ Backport from mainline. 2010-07-22 Ramana Radhakrishnan - PR target/43698 + PR target/43698 * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev. Set *arm_rev to be predicable. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 27956c52eb78..7083584a28ee 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -18504,7 +18504,7 @@ rs6000_emit_stack_reset (rs6000_stack_t *info, { /* This blockage is needed so that sched doesn't decide to move the sp change before the register restores. */ - if (frame_reg_rtx != sp_reg_rtx + if (DEFAULT_ABI == ABI_V4 || (TARGET_SPE_ABI && info->spe_64bit_regs_used != 0 && info->first_gp_reg_save != 32)) -- 2.47.2