[cfe-commits] r64958 - /cfe/trunk/lib/CodeGen/CGCall.cpp

Daniel Dunbar daniel at zuster.org
Wed Feb 18 14:05:01 PST 2009


Author: ddunbar
Date: Wed Feb 18 16:05:01 2009
New Revision: 64958

URL: http://llvm.org/viewvc/llvm-project?rev=64958&view=rev
Log:
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.

Modified:
    cfe/trunk/lib/CodeGen/CGCall.cpp

Modified: cfe/trunk/lib/CodeGen/CGCall.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCall.cpp?rev=64958&r1=64957&r2=64958&view=diff

==============================================================================
--- cfe/trunk/lib/CodeGen/CGCall.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGCall.cpp Wed Feb 18 16:05:01 2009
@@ -1013,7 +1013,7 @@
                                 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");





More information about the cfe-commits mailing list