@@ -44,32 +44,6 @@ void MipsSEDAGToDAGISelLegacy::getAnalysisUsage(AnalysisUsage &AU) const {
4444 SelectionDAGISelLegacy::getAnalysisUsage (AU);
4545}
4646
47- void MipsSEDAGToDAGISel::addDSPCtrlRegOperands (bool IsDef, MachineInstr &MI,
48- MachineFunction &MF) {
49- MachineInstrBuilder MIB (MF, &MI);
50- unsigned Mask = MI.getOperand (1 ).getImm ();
51- unsigned Flag =
52- IsDef ? RegState::ImplicitDefine : RegState::Implicit | RegState::Undef;
53-
54- if (Mask & 1 )
55- MIB.addReg (Mips::DSPPos, Flag);
56-
57- if (Mask & 2 )
58- MIB.addReg (Mips::DSPSCount, Flag);
59-
60- if (Mask & 4 )
61- MIB.addReg (Mips::DSPCarry, Flag);
62-
63- if (Mask & 8 )
64- MIB.addReg (Mips::DSPOutFlag, Flag);
65-
66- if (Mask & 16 )
67- MIB.addReg (Mips::DSPCCond, Flag);
68-
69- if (Mask & 32 )
70- MIB.addReg (Mips::DSPEFI, Flag);
71- }
72-
7347MCRegister MipsSEDAGToDAGISel::getMSACtrlReg (const SDValue RegIdx) const {
7448 uint64_t RegNum = RegIdx->getAsZExtVal ();
7549 return Mips::MSACtrlRegClass.getRegister (RegNum);
@@ -155,12 +129,6 @@ void MipsSEDAGToDAGISel::processFunctionAfterISel(MachineFunction &MF) {
155129 for (auto &MBB: MF) {
156130 for (auto &MI: MBB) {
157131 switch (MI.getOpcode ()) {
158- case Mips::RDDSP:
159- addDSPCtrlRegOperands (false , MI, MF);
160- break ;
161- case Mips::WRDSP:
162- addDSPCtrlRegOperands (true , MI, MF);
163- break ;
164132 case Mips::BuildPairF64_64:
165133 case Mips::ExtractElementF64_64:
166134 if (!Subtarget->useOddSPReg ()) {
@@ -231,8 +199,8 @@ void MipsSEDAGToDAGISel::selectAddE(SDNode *Node, const SDLoc &DL) const {
231199
232200 SDValue OuFlag = CurDAG->getTargetConstant (20 , DL, MVT::i32 );
233201
234- SDNode *DSPCtrlField = CurDAG->getMachineNode (Mips::RDDSP, DL, MVT:: i32 ,
235- MVT::Glue, CstOne, InGlue);
202+ SDNode *DSPCtrlField = CurDAG->getMachineNode (
203+ Mips::RDDSP_Pseudo, DL, MVT:: i32 , MVT::Glue, CstOne, InGlue);
236204
237205 SDNode *Carry = CurDAG->getMachineNode (
238206 Mips::EXT, DL, MVT::i32 , SDValue (DSPCtrlField, 0 ), OuFlag, CstOne);
@@ -253,7 +221,7 @@ void MipsSEDAGToDAGISel::selectAddE(SDNode *Node, const SDLoc &DL) const {
253221 SDNode *DSPCtrlFinal =
254222 CurDAG->getMachineNode (Mips::INS, DL, MVT::i32 , InsOps);
255223
256- SDNode *WrDSP = CurDAG->getMachineNode (Mips::WRDSP , DL, MVT::Glue,
224+ SDNode *WrDSP = CurDAG->getMachineNode (Mips::WRDSP_Pseudo , DL, MVT::Glue,
257225 SDValue (DSPCtrlFinal, 0 ), CstOne);
258226
259227 SDValue Operands[3 ] = {LHS, RHS, SDValue (WrDSP, 0 )};
0 commit comments