aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGCall.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-02-22 07:22:25 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-02-22 07:22:25 +0000
commit775e43b3bd47d9388608a57f7489982d3024fdc5 (patch)
treed05aa6572ccae0099b8ac5c4ab095ed2aeccd99a /lib/CodeGen/CGCall.cpp
parent578a97249c10eb83f25b408de1edfb70f5a4233c (diff)
x86_64 ABI: Make sure to pass vectors that we want to pass in memory
as byval. Otherwise LLVM will have its own opinion about where to put things. We now pass all gcc dg.compat tests on x86_64. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65266 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGCall.cpp')
-rw-r--r--lib/CodeGen/CGCall.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/CodeGen/CGCall.cpp b/lib/CodeGen/CGCall.cpp
index 71ef679f18..45896314ec 100644
--- a/lib/CodeGen/CGCall.cpp
+++ b/lib/CodeGen/CGCall.cpp
@@ -843,7 +843,7 @@ ABIArgInfo X86_64ABIInfo::classifyArgumentType(QualType Ty, ASTContext &Context,
case X87:
case ComplexX87:
// Choose appropriate in memory type.
- if (CodeGenFunction::hasAggregateLLVMType(Ty))
+ if (Ty->isVectorType() || CodeGenFunction::hasAggregateLLVMType(Ty))
return ABIArgInfo::getIndirect(0);
else
return ABIArgInfo::getDirect();