Lines Matching refs:VA
110 CCValAssign &VA = RVLocs[i];
111 assert(VA.isRegLoc() && "Can only return in registers!");
113 Chain = DAG.getCopyToReg(Chain, dl, VA.getLocReg(),
169 CCValAssign &VA = ArgLocs[i];
182 if (VA.isRegLoc()) {
183 if (VA.needsCustom()) {
184 assert(VA.getLocVT() == MVT::f64);
186 MF.getRegInfo().addLiveIn(VA.getLocReg(), VRegHi);
212 MF.getRegInfo().addLiveIn(VA.getLocReg(), VReg);
214 if (VA.getLocVT() == MVT::f32)
216 else if (VA.getLocVT() != MVT::i32) {
218 DAG.getValueType(VA.getLocVT()));
219 Arg = DAG.getNode(ISD::TRUNCATE, dl, VA.getLocVT(), Arg);
225 assert(VA.isMemLoc());
227 unsigned Offset = VA.getLocMemOffset()+StackOffset;
229 if (VA.needsCustom()) {
230 assert(VA.getValVT() == MVT::f64);
237 SDValue Load = DAG.getLoad(VA.getValVT(), dl, Chain, FIPtr,
272 if (VA.getValVT() == MVT::i32 || VA.getValVT() == MVT::f32) {
273 Load = DAG.getLoad(VA.getValVT(), dl, Chain, FIPtr,
279 unsigned Offset = 4-std::max(1U, VA.getValVT().getSizeInBits()/8);
284 VA.getValVT(), false, false,0);
285 Load = DAG.getNode(ISD::TRUNCATE, dl, VA.getValVT(), Load);
406 CCValAssign &VA = ArgLocs[i];
416 switch (VA.getLocInfo()) {
420 Arg = DAG.getNode(ISD::SIGN_EXTEND, dl, VA.getLocVT(), Arg);
423 Arg = DAG.getNode(ISD::ZERO_EXTEND, dl, VA.getLocVT(), Arg);
426 Arg = DAG.getNode(ISD::ANY_EXTEND, dl, VA.getLocVT(), Arg);
429 Arg = DAG.getNode(ISD::BITCAST, dl, VA.getLocVT(), Arg);
434 assert(VA.needsCustom());
446 if (VA.needsCustom()) {
447 assert(VA.getLocVT() == MVT::f64);
449 if (VA.isMemLoc()) {
450 unsigned Offset = VA.getLocMemOffset() + StackOffset;
477 if (VA.isRegLoc()) {
478 RegsToPass.push_back(std::make_pair(VA.getLocReg(), Hi));
494 unsigned Offset = VA.getLocMemOffset() + StackOffset;
514 if (VA.isRegLoc()) {
515 if (VA.getLocVT() != MVT::f32) {
516 RegsToPass.push_back(std::make_pair(VA.getLocReg(), Arg));
520 RegsToPass.push_back(std::make_pair(VA.getLocReg(), Arg));
524 assert(VA.isMemLoc());
528 SDValue PtrOff = DAG.getIntPtrConstant(VA.getLocMemOffset()+StackOffset);