@@ -29,50 +29,6 @@ namespace SystemZ {
2929 extern const MCPhysReg XPLINK64ArgFPRs[XPLINK64NumArgFPRs];
3030} // end namespace SystemZ
3131
32- class SystemZCCState : public CCState {
33- private:
34- // / Records whether the value was widened from a short vector type.
35- SmallVector<bool , 4 > ArgIsShortVector;
36-
37- // Check whether ArgVT is a short vector type.
38- bool IsShortVectorType (EVT ArgVT) {
39- return ArgVT.isVector () && ArgVT.getStoreSize () <= 8 ;
40- }
41-
42- public:
43- SystemZCCState (CallingConv::ID CC, bool isVarArg, MachineFunction &MF,
44- SmallVectorImpl<CCValAssign> &locs, LLVMContext &C)
45- : CCState(CC, isVarArg, MF, locs, C) {}
46-
47- void AnalyzeFormalArguments (const SmallVectorImpl<ISD::InputArg> &Ins,
48- CCAssignFn Fn) {
49- // Record whether the call operand was a short vector.
50- ArgIsShortVector.clear ();
51- for (unsigned i = 0 ; i < Ins.size (); ++i)
52- ArgIsShortVector.push_back (IsShortVectorType (Ins[i].ArgVT ));
53-
54- CCState::AnalyzeFormalArguments (Ins, Fn);
55- }
56-
57- void AnalyzeCallOperands (const SmallVectorImpl<ISD::OutputArg> &Outs,
58- CCAssignFn Fn) {
59- // Record whether the call operand was a short vector.
60- ArgIsShortVector.clear ();
61- for (unsigned i = 0 ; i < Outs.size (); ++i)
62- ArgIsShortVector.push_back (IsShortVectorType (Outs[i].ArgVT ));
63-
64- CCState::AnalyzeCallOperands (Outs, Fn);
65- }
66-
67- // This version of AnalyzeCallOperands in the base class is not usable
68- // since we must provide a means of accessing ISD::OutputArg::IsShortVector.
69- void AnalyzeCallOperands (const SmallVectorImpl<MVT> &Outs,
70- SmallVectorImpl<ISD::ArgFlagsTy> &Flags,
71- CCAssignFn Fn) = delete;
72-
73- bool IsShortVector (unsigned ValNo) { return ArgIsShortVector[ValNo]; }
74- };
75-
7632// Handle i128 argument types. These need to be passed by implicit
7733// reference. This could be as simple as the following .td line:
7834// CCIfType<[i128], CCPassIndirect<i64>>,
0 commit comments