summaryrefslogtreecommitdiffstats
path: root/recipes-devtools/gcc/files/gcc.local_unaligned_altivec.patch
blob: feee54a1042e983592d68b58bd66a06763ed3699 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
gcc.local_unaligned_altivec

Optimization:
On Altivec targets, make all char arrays 128 bits aligned (instead of
32 bits aligned)

--- gcc-4.5.0/gcc/config/rs6000/rs6000.h-orig	2010-10-20 10:23:52.000000000 -0500
+++ gcc-4.5.0/gcc/config/rs6000/rs6000.h	2010-10-20 10:39:14.000000000 -0500
@@ -768,7 +768,8 @@
       ? 64								\
       : (TREE_CODE (TYPE) == ARRAY_TYPE					\
 	 && TYPE_MODE (TREE_TYPE (TYPE)) == QImode			\
-	 && (ALIGN) < BITS_PER_WORD) ? BITS_PER_WORD : (ALIGN)))
+	 && (ALIGN) < (TARGET_ALTIVEC ? 128 : BITS_PER_WORD))           \
+            ? (TARGET_ALTIVEC ? 128 : BITS_PER_WORD) : (ALIGN)))
 
 /* Nonzero if move instructions will actually fail to work
    when given unaligned data.  */