This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Possible patches for bug 27565


On Fri, 18 Aug 2006, David Edelsohn wrote:

> 	Our consensus is that the LOCAL_ALIGNMENT test should be changed
> to
> 
> (TARGET_SPE && TREE_CODE (TYPE) == VECTOR_TYPE
>  && SPE_VECTOR_MODE (TYPE_MODE (TYPE)) ? 64 : ALIGN)
> 
> not ALIGN < 64.
> 
> 	A patch with that change is okay with me.

I've applied this patch after testing that it gets rid of the same FAILs 
as the other two patches.

2006-08-18  Joseph Myers  <joseph@codesourcery.com>

	PR target/27565
	* config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
	alignment of SPE vector types.

Index: gcc/config/rs6000/rs6000.h
===================================================================
--- gcc/config/rs6000/rs6000.h	(revision 116229)
+++ gcc/config/rs6000/rs6000.h	(working copy)
@@ -503,7 +503,8 @@
 #define LOCAL_ALIGNMENT(TYPE, ALIGN)				\
   ((TARGET_ALTIVEC && TREE_CODE (TYPE) == VECTOR_TYPE) ? 128 :	\
     (TARGET_E500_DOUBLE && TYPE_MODE (TYPE) == DFmode) ? 64 : \
-    (TARGET_SPE && TREE_CODE (TYPE) == VECTOR_TYPE) ? 64 : ALIGN)
+    (TARGET_SPE && TREE_CODE (TYPE) == VECTOR_TYPE \
+     && SPE_VECTOR_MODE (TYPE_MODE (TYPE))) ? 64 : ALIGN)
 
 /* Alignment of field after `int : 0' in a structure.  */
 #define EMPTY_FIELD_BOUNDARY 32

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]