aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/TargetInfo.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-08-26 20:08:43 +0000
committerChris Lattner <sabre@nondot.org>2010-08-26 20:08:43 +0000
commit7b733505defd34f1bb7e74d9526be0bc41e76693 (patch)
tree465d10dbbfa41363833f799335807b8765ce1aa7 /lib/CodeGen/TargetInfo.cpp
parent2e29a99cf3fb2d57b1e53906c5cf19c50bb613c9 (diff)
improve comments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112214 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/TargetInfo.cpp')
-rw-r--r--lib/CodeGen/TargetInfo.cpp7
1 files changed, 2 insertions, 5 deletions
diff --git a/lib/CodeGen/TargetInfo.cpp b/lib/CodeGen/TargetInfo.cpp
index 05bea0cf85..d2bd33258c 100644
--- a/lib/CodeGen/TargetInfo.cpp
+++ b/lib/CodeGen/TargetInfo.cpp
@@ -590,17 +590,14 @@ ABIArgInfo X86_32ABIInfo::classifyArgumentType(QualType Ty) const {
}
if (const VectorType *VT = Ty->getAs<VectorType>()) {
- // On Darwin, some vectors are returned in registers.
+ // On Darwin, some vectors are passed in memory, we handle this by passing
+ // it as an i8/i16/i32/i64.
if (IsDarwinVectorABI) {
uint64_t Size = getContext().getTypeSize(Ty);
-
- // Always return in register if it fits in a general purpose
- // register, or if it is 64 bits and has a single element.
if ((Size == 8 || Size == 16 || Size == 32) ||
(Size == 64 && VT->getNumElements() == 1))
return ABIArgInfo::getDirect(llvm::IntegerType::get(getVMContext(),
Size));
-
return ABIArgInfo::getIndirect(0);
}