File tree Expand file tree Collapse file tree 1 file changed +10
-8
lines changed Expand file tree Collapse file tree 1 file changed +10
-8
lines changed Original file line number Diff line number Diff line change @@ -102,15 +102,17 @@ bool Z80MachineEarlyOptimization::runOnMachineFunction(MachineFunction &MF) {
102102 break ;
103103 }
104104 if (CallMI && Opc == TargetOpcode::COPY) {
105- if (Results.size () == 4 ) {
106- CallMI = nullptr ;
107- break ;
105+ Register DstReg = I->getOperand (0 ).getReg ();
106+ Register SrcReg = I->getOperand (1 ).getReg ();
107+ if (DstReg.isVirtual () && SrcReg.isPhysical ()) {
108+ if (Results.size () == 4 ) {
109+ CallMI = nullptr ;
110+ break ;
111+ }
112+ Result &Res = Results.emplace_back ();
113+ Res.TrueReg = DstReg;
114+ Res.PhysReg = SrcReg;
108115 }
109- Result &Res = Results.emplace_back ();
110- Res.TrueReg = I->getOperand (0 ).getReg ();
111- Res.PhysReg = I->getOperand (1 ).getReg ();
112- assert (Res.TrueReg .isVirtual () && Res.PhysReg .isPhysical () &&
113- " Expected phys to virt reg copy inside call sequence" );
114116 }
115117 }
116118 for (I = FalseMBB->begin (), E = FalseMBB->end (); CallMI && I != E && I->isPHI ();
You can’t perform that action at this time.
0 commit comments