@@ -101,8 +101,10 @@ void SystemZPostRewrite::selectSELRMux(MachineBasicBlock &MBB,
101101 unsigned LowOpcode,
102102 unsigned HighOpcode) {
103103 Register DestReg = MBBI->getOperand (0 ).getReg ();
104- Register Src1Reg = MBBI->getOperand (1 ).getReg ();
105- Register Src2Reg = MBBI->getOperand (2 ).getReg ();
104+ MachineOperand &Src1MO = MBBI->getOperand (1 );
105+ MachineOperand &Src2MO = MBBI->getOperand (2 );
106+ Register Src1Reg = Src1MO.getReg ();
107+ Register Src2Reg = Src2MO.getReg ();
106108 bool DestIsHigh = SystemZ::isHighReg (DestReg);
107109 bool Src1IsHigh = SystemZ::isHighReg (Src1Reg);
108110 bool Src2IsHigh = SystemZ::isHighReg (Src2Reg);
@@ -114,7 +116,7 @@ void SystemZPostRewrite::selectSELRMux(MachineBasicBlock &MBB,
114116 if (Src1Reg == Src2Reg) {
115117 BuildMI (*MBBI->getParent (), MBBI, MBBI->getDebugLoc (),
116118 TII->get (SystemZ::COPY), DestReg)
117- .addReg (MBBI-> getOperand ( 1 ). getReg (), RegState::Renamable );
119+ .addReg (Src1Reg, getRegState (Src1MO) & getRegState (Src2MO) );
118120 MBBI->eraseFromParent ();
119121 return ;
120122 }
@@ -126,15 +128,15 @@ void SystemZPostRewrite::selectSELRMux(MachineBasicBlock &MBB,
126128 if (DestIsHigh != Src1IsHigh) {
127129 BuildMI (*MBBI->getParent (), MBBI, MBBI->getDebugLoc (),
128130 TII->get (SystemZ::COPY), DestReg)
129- .addReg (MBBI-> getOperand ( 1 ). getReg () , getRegState (MBBI-> getOperand ( 1 ) ));
130- MBBI-> getOperand ( 1 ) .setReg (DestReg);
131+ .addReg (Src1Reg , getRegState (Src1MO ));
132+ Src1MO .setReg (DestReg);
131133 Src1Reg = DestReg;
132134 Src1IsHigh = DestIsHigh;
133135 } else if (DestIsHigh != Src2IsHigh) {
134136 BuildMI (*MBBI->getParent (), MBBI, MBBI->getDebugLoc (),
135137 TII->get (SystemZ::COPY), DestReg)
136- .addReg (MBBI-> getOperand ( 2 ). getReg () , getRegState (MBBI-> getOperand ( 2 ) ));
137- MBBI-> getOperand ( 2 ) .setReg (DestReg);
138+ .addReg (Src2Reg , getRegState (Src2MO ));
139+ Src2MO .setReg (DestReg);
138140 Src2Reg = DestReg;
139141 Src2IsHigh = DestIsHigh;
140142 }
0 commit comments