File tree 1 file changed +10
-8
lines changed
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) {
102
102
break ;
103
103
}
104
104
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;
108
115
}
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" );
114
116
}
115
117
}
116
118
for (I = FalseMBB->begin (), E = FalseMBB->end (); CallMI && I != E && I->isPHI ();
You can’t perform that action at this time.
0 commit comments