re PR target/30282 (Optimization flag -O1 -fschedule-insns2 cause red zone to be...
authorAlan Modra <amodra@gcc.gnu.org>
Mon, 7 Nov 2011 01:14:33 +0000 (11:44 +1030)
committerAlan Modra <amodra@gcc.gnu.org>
Mon, 7 Nov 2011 01:14:33 +0000 (11:44 +1030)
PR target/30282
* config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit
blockage for ABI_V4.

From-SVN: r181056

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index 4ea622e..b3a5be1 100644 (file)
@@ -1,3 +1,9 @@
+2011-11-07  Alan Modra  <amodra@gmail.com>
+
+       PR target/30282
+       * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit
+       blockage for ABI_V4.
+
 2011-11-06  Dave Korn  <dave.korn.cygwin@gmail.com>
 
        * config/i386/cygwin.h (LIBGCJ_SONAME): Updated to match recent
        * optabs.c (expand_sync_operation, expand_sync_fetch_operation): Remove.
        (expand_sync_lock_test_and_set): Remove.
        (expand_atomic_load, expand_atomic_store): New.
-       (expand_atomic_exchange): New. 
+       (expand_atomic_exchange): New.
        (expand_atomic_compare_and_swap): New.  Implements
        atomic_compare_exchange via compare and swap.
        (struct atomic_op_functions): Opcode table struct for fetch ops.
 
        * hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add.
        * lto-streamer.c (lto_get_section_name): Remove crc32_string.
-       Handle numerical random seed.
+       Handle numerical random seed.
        * lto-streamer.h (lto_file_decl_data): Change id to
        unsigned HOST_WIDE_INT.
        * toplev.c (random_seed): Add.
index 779086a..aa04fdd 100644 (file)
@@ -19661,7 +19661,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))