[llvm-commits] [llvm-gcc-4.2] r52752 - /llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h

Dale Johannesen dalej at apple.com
Wed Jun 25 18:56:27 PDT 2008


Author: johannes
Date: Wed Jun 25 20:56:27 2008
New Revision: 52752

URL: http://llvm.org/viewvc/llvm-project?rev=52752&view=rev
Log:
x86-64 byval vectors use 8 byte alignment.


Modified:
    llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h

Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h?rev=52752&r1=52751&r2=52752&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h Wed Jun 25 20:56:27 2008
@@ -85,10 +85,12 @@
 
 #ifdef LLVM_ABI_H
 
-/* Objects containing SSE vectors are 16 byte aligned, everything else 4. */
+/* On x86-32 objects containing SSE vectors are 16 byte aligned, everything
+   else 4.  On x86-64 vectors are 8-byte aligned, everything else can
+   be figured out by the back end. */
 extern "C" bool contains_128bit_aligned_vector_p(tree);
 #define LLVM_BYVAL_ALIGNMENT(T) \
-  (TARGET_64BIT ? 0 : \
+  (TARGET_64BIT ? (TREE_CODE(T)==VECTOR_TYPE ? 8 : 0) : \
    TARGET_SSE && contains_128bit_aligned_vector_p(T) ? 16 : 4)
 
 extern tree llvm_x86_should_return_selt_struct_as_scalar(tree);





More information about the llvm-commits mailing list