From: Chris Lattner Date: Sun, 25 Feb 2007 09:14:25 +0000 (+0000) Subject: allow vectors to be passed to stdcall/fastcall functions X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=4dfccf4b484f1a726189876d362c7ad541b94d1c;p=oota-llvm.git allow vectors to be passed to stdcall/fastcall functions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34590 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index ba6f450de97..af8abf15fca 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -645,8 +645,7 @@ HowToPassCallArgument(MVT::ValueType ObjectVT, unsigned NumIntRegs, unsigned NumXMMRegs, unsigned MaxNumIntRegs, unsigned &ObjSize, unsigned &ObjIntRegs, - unsigned &ObjXMMRegs, - bool AllowVectors = true) { + unsigned &ObjXMMRegs) { ObjSize = 0; ObjIntRegs = 0; ObjXMMRegs = 0; @@ -696,14 +695,11 @@ HowToPassCallArgument(MVT::ValueType ObjectVT, case MVT::v2i64: case MVT::v4f32: case MVT::v2f64: - if (AllowVectors) { - if (NumXMMRegs < 4) - ObjXMMRegs = 1; - else - ObjSize = 16; - break; - } else - assert(0 && "Unhandled argument type [vector]!"); + if (NumXMMRegs < 4) + ObjXMMRegs = 1; + else + ObjSize = 16; + break; } } @@ -764,8 +760,7 @@ SDOperand X86TargetLowering::LowerCCCArguments(SDOperand Op, SelectionDAG &DAG, HowToPassCallArgument(ObjectVT, ArgInRegs[i], NumIntRegs, NumXMMRegs, 3, - ObjSize, ObjIntRegs, ObjXMMRegs, - !isStdCall); + ObjSize, ObjIntRegs, ObjXMMRegs); if (ObjSize > 4) ArgIncrement = ObjSize; @@ -884,8 +879,7 @@ SDOperand X86TargetLowering::LowerCCCCallTo(SDOperand Op, SelectionDAG &DAG, HowToPassCallArgument(Arg.getValueType(), ArgInRegs[i], NumIntRegs, NumXMMRegs, 3, - ObjSize, ObjIntRegs, ObjXMMRegs, - CC != CallingConv::X86_StdCall); + ObjSize, ObjIntRegs, ObjXMMRegs); if (ObjSize > 4) ArgIncrement = ObjSize; @@ -918,8 +912,7 @@ SDOperand X86TargetLowering::LowerCCCCallTo(SDOperand Op, SelectionDAG &DAG, HowToPassCallArgument(Arg.getValueType(), ArgInRegs[i], NumIntRegs, NumXMMRegs, 3, - ObjSize, ObjIntRegs, ObjXMMRegs, - CC != CallingConv::X86_StdCall); + ObjSize, ObjIntRegs, ObjXMMRegs); if (ObjSize > 4) ArgIncrement = ObjSize; @@ -1574,8 +1567,7 @@ X86TargetLowering::LowerFastCCArguments(SDOperand Op, SelectionDAG &DAG, true, // Use as much registers as possible NumIntRegs, NumXMMRegs, (isFastCall ? 2 : FASTCC_NUM_INT_ARGS_INREGS), - ObjSize, ObjIntRegs, ObjXMMRegs, - !isFastCall); + ObjSize, ObjIntRegs, ObjXMMRegs); if (ObjSize > 4) ArgIncrement = ObjSize;