File tree Expand file tree Collapse file tree 1 file changed +12
-6
lines changed Expand file tree Collapse file tree 1 file changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -709,13 +709,19 @@ void M68kInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
709
709
bool ToSR = DstReg == M68k::SR;
710
710
711
711
if (FromCCR) {
712
- assert (M68k::DR8RegClass.contains (DstReg) &&
713
- " Need DR8 register to copy CCR" );
714
- Opc = M68k::MOV8dc;
712
+ if (M68k::DR8RegClass.contains (DstReg))
713
+ Opc = M68k::MOV8dc;
714
+ else if (M68k::DR16RegClass.contains (DstReg))
715
+ Opc = M68k::MOV16dc;
716
+ else
717
+ llvm_unreachable (" Invalid register for MOVE from CCR" );
715
718
} else if (ToCCR) {
716
- assert (M68k::DR8RegClass.contains (SrcReg) &&
717
- " Need DR8 register to copy CCR" );
718
- Opc = M68k::MOV8cd;
719
+ if (M68k::DR8RegClass.contains (SrcReg))
720
+ Opc = M68k::MOV8cd;
721
+ else if (M68k::DR16RegClass.contains (SrcReg))
722
+ Opc = M68k::MOV16cd;
723
+ else
724
+ llvm_unreachable (" Invalid register for MOVE to CCR" );
719
725
} else if (FromSR || ToSR)
720
726
llvm_unreachable (" Cannot emit SR copy instruction" );
721
727
You can’t perform that action at this time.
0 commit comments