aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGCall.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-02-18 22:05:01 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-02-18 22:05:01 +0000
commitf231346438e61e59ff7b72d5ecbd58b6ae484211 (patch)
treead70d160d47665a731bb74edcbffe376d140f3cc /lib/CodeGen/CGCall.cpp
parentc2b6a8239326456753cd7d636656e420feaecb40 (diff)
x86_64 ABI: "is passed in regs" computation for va_arg was broken for
things passed in mixed registers. This knocks out 8 x86_64 failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64958 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 84e894a40a..9b8b74196f 100644
--- a/lib/CodeGen/CGCall.cpp
+++ b/lib/CodeGen/CGCall.cpp
@@ -1013,7 +1013,7 @@ llvm::Value *X86_64ABIInfo::EmitVAArg(llvm::Value *VAListAddr, QualType Ty,
llvm::ConstantInt::get(llvm::Type::Int32Ty,
176 - neededSSE * 8),
"fits_in_fp");
- InRegs = InRegs ? CGF.Builder.CreateOr(InRegs, FitsInFP) : FitsInFP;
+ InRegs = InRegs ? CGF.Builder.CreateAnd(InRegs, FitsInFP) : FitsInFP;
}
llvm::BasicBlock *InRegBlock = CGF.createBasicBlock("vaarg.in_reg");