diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-02-18 22:05:01 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-02-18 22:05:01 +0000 |
commit | f231346438e61e59ff7b72d5ecbd58b6ae484211 (patch) | |
tree | ad70d160d47665a731bb74edcbffe376d140f3cc /lib/CodeGen/CGCall.cpp | |
parent | c2b6a8239326456753cd7d636656e420feaecb40 (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.cpp | 2 |
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"); |