]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gcc/
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Oct 2012 19:07:28 +0000 (19:07 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Oct 2012 19:07:28 +0000 (19:07 +0000)
* defaults.h (SLOW_UNALIGNED_ACCESS): Provide default definition.
* expmed.c (SLOW_UNALIGNED_ACCESS): Remove default definition.
* expr.c (SLOW_UNALIGNED_ACCESS): Likewise.
* lra-constraints.c (SLOW_UNALIGNED_ACCESS): Likewise.
(simplify_operand_subreg): Don't check STRICT_ALIGNMENT here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192992 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/defaults.h
gcc/expmed.c
gcc/expr.c
gcc/lra-constraints.c

index e7e3ec314431eabbd74b4b947a4a3bbf23011198..67348c209b467c709e50fa0c2501b4ba42565fe0 100644 (file)
@@ -1,3 +1,11 @@
+2012-10-30  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * defaults.h (SLOW_UNALIGNED_ACCESS): Provide default definition.
+       * expmed.c (SLOW_UNALIGNED_ACCESS): Remove default definition.
+       * expr.c (SLOW_UNALIGNED_ACCESS): Likewise.
+       * lra-constraints.c (SLOW_UNALIGNED_ACCESS): Likewise.
+       (simplify_operand_subreg): Don't check STRICT_ALIGNMENT here.
+
 2012-10-30  Jan Hubicka  <jh@suse.cz>
 
        * ipa-inline-analysis.c (eliminated_by_inlining_prob): Cleanup.
index 6eead33ba6c05fb1751e834a5c4d66ff8f9bd779..76909ab2d7ef71994cb97b22ab8253b41c4e6c48 100644 (file)
@@ -1218,6 +1218,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #define ATTRIBUTE_ALIGNED_VALUE BIGGEST_ALIGNMENT
 #endif
 
+#ifndef SLOW_UNALIGNED_ACCESS
+#define SLOW_UNALIGNED_ACCESS(MODE, ALIGN) STRICT_ALIGNMENT
+#endif
+
 /* For most ports anything that evaluates to a constant symbolic
    or integer value is acceptable as a constant address.  */
 #ifndef CONSTANT_ADDRESS_P
index 6d9b13354cb16a4e1b1f26d668ca5e0803c21d51..eb4b0d09152b1795a46dbf8b5fcc12ad7bf66d3d 100644 (file)
@@ -69,11 +69,6 @@ static rtx expand_sdiv_pow2 (enum machine_mode, rtx, HOST_WIDE_INT);
 /* Test whether a value is zero of a power of two.  */
 #define EXACT_POWER_OF_2_OR_ZERO_P(x) (((x) & ((x) - 1)) == 0)
 
-#ifndef SLOW_UNALIGNED_ACCESS
-#define SLOW_UNALIGNED_ACCESS(MODE, ALIGN) STRICT_ALIGNMENT
-#endif
-
-
 /* Reduce conditional compilation elsewhere.  */
 #ifndef HAVE_insv
 #define HAVE_insv      0
index 0de2f97b4a9d3499b686077016f4b94b2780002c..699dae93d3d8a77e0082b560adca9c2728356ae5 100644 (file)
@@ -189,12 +189,6 @@ static void write_complex_part (rtx, rtx, bool);
   (move_by_pieces_ninsns (SIZE, ALIGN, STORE_MAX_PIECES + 1) \
    < (unsigned int) MOVE_RATIO (optimize_insn_for_speed_p ()))
 #endif
-
-/* SLOW_UNALIGNED_ACCESS is nonzero if unaligned accesses are very slow.  */
-
-#ifndef SLOW_UNALIGNED_ACCESS
-#define SLOW_UNALIGNED_ACCESS(MODE, ALIGN) STRICT_ALIGNMENT
-#endif
 \f
 /* This is run to set up which modes can be used
    directly in memory and to initialize the block move optab.  It is run
index 3eabab88019de02eacdcbd9925168b098eda4f7a..1c2058f2ad73b4f2624d9cdc76d020eb33502dbf 100644 (file)
@@ -1107,10 +1107,6 @@ process_addr_reg (rtx *loc, rtx *before, rtx *after, enum reg_class cl)
   return true;
 }
 
-#ifndef SLOW_UNALIGNED_ACCESS
-#define SLOW_UNALIGNED_ACCESS(mode, align) 0
-#endif
-
 /* Make reloads for subreg in operand NOP with internal subreg mode
    REG_MODE, add new reloads for further processing.  Return true if
    any reload was generated.  */
@@ -1134,8 +1130,7 @@ simplify_operand_subreg (int nop, enum machine_mode reg_mode)
      address might violate the necessary alignment or the access might
      be slow.  So take this into consideration.         */
   if ((MEM_P (reg)
-       && ((! STRICT_ALIGNMENT
-           && ! SLOW_UNALIGNED_ACCESS (mode, MEM_ALIGN (reg)))
+       && (! SLOW_UNALIGNED_ACCESS (mode, MEM_ALIGN (reg))
           || MEM_ALIGN (reg) >= GET_MODE_ALIGNMENT (mode)))
       || (REG_P (reg) && REGNO (reg) < FIRST_PSEUDO_REGISTER))
     {