Home | History | Annotate | Download | only in SystemZ

Lines Matching refs:VA

530 // Value is a value that has been passed to us in the location described by VA
531 // (and so has type VA.getLocVT()). Convert Value to VA.getValVT(), chaining
534 CCValAssign &VA, SDValue Chain,
538 if (VA.getLocInfo() == CCValAssign::SExt)
539 Value = DAG.getNode(ISD::AssertSext, DL, VA.getLocVT(), Value,
540 DAG.getValueType(VA.getValVT()));
541 else if (VA.getLocInfo() == CCValAssign::ZExt)
542 Value = DAG.getNode(ISD::AssertZext, DL, VA.getLocVT(), Value,
543 DAG.getValueType(VA.getValVT()));
545 if (VA.isExtInLoc())
546 Value = DAG.getNode(ISD::TRUNCATE, DL, VA.getValVT(), Value);
547 else if (VA.getLocInfo() == CCValAssign::Indirect)
548 Value = DAG.getLoad(VA.getValVT(), DL, Chain, Value,
551 assert(VA.getLocInfo() == CCValAssign::Full && "Unsupported getLocInfo");
555 // Value is a value of type VA.getValVT() that we need to copy into
556 // the location described by VA. Return a copy of Value converted to
557 // VA.getValVT(). The caller is responsible for handling indirect values.
559 CCValAssign &VA, SDValue Value) {
560 switch (VA.getLocInfo()) {
562 return DAG.getNode(ISD::SIGN_EXTEND, DL, VA.getLocVT(), Value);
564 return DAG.getNode(ISD::ZERO_EXTEND, DL, VA.getLocVT(), Value);
566 return DAG.getNode(ISD::ANY_EXTEND, DL, VA.getLocVT(), Value);
596 CCValAssign &VA = ArgLocs[I];
597 EVT LocVT = VA.getLocVT();
598 if (VA.isRegLoc()) {
624 MRI.addLiveIn(VA.getLocReg(), VReg);
627 assert(VA.isMemLoc() && "Argument not register or memory");
631 VA.getLocMemOffset(), true);
638 if (VA.getLocVT() == MVT::i32 || VA.getLocVT() == MVT::f32)
647 InVals.push_back(convertLocVTToValVT(DAG, DL, VA, Chain, ArgValue));
728 CCValAssign &VA = ArgLocs[I];
731 if (VA.getLocInfo() == CCValAssign::Indirect) {
733 SDValue SpillSlot = DAG.CreateStackTemporary(VA.getValVT());
740 ArgValue = convertValVTToLocVT(DAG, DL, VA, ArgValue);
742 if (VA.isRegLoc())
744 RegsToPass.push_back(std::make_pair(VA.getLocReg(), ArgValue));
746 assert(VA.isMemLoc() && "Argument not register or memory");
752 unsigned Offset = SystemZMC::CallFrameSize + VA.getLocMemOffset();
753 if (VA.getLocVT() == MVT::i32 || VA.getLocVT() == MVT::f32)
822 CCValAssign &VA = RetLocs[I];
825 SDValue RetValue = DAG.getCopyFromReg(Chain, DL, VA.getLocReg(),
826 VA.getLocVT(), Glue);
832 InVals.push_back(convertLocVTToValVT(DAG, DL, VA, Chain, RetValue));
860 CCValAssign &VA = RetLocs[I];
864 assert(VA.isRegLoc() && "Can only return in registers!");
867 RetValue = convertValVTToLocVT(DAG, DL, VA, RetValue);
870 unsigned Reg = VA.getLocReg();
873 RetOps.push_back(DAG.getRegister(Reg, VA.getLocVT()));