forked from OSchip/llvm-project
[NFC][PowerPC]Assert when trying to generate directmove below P8.
This was found when we generated COPY from G8RC to F8RC in EmitInstrWithCustomInserter without checking proper architecture, we silently generated mtvsrd, which require P8 and up. This is a NFC patch to add assert when we call copyPhysReg, in case someone accidentally generate COPY between G8RC to F8RC for P7 and below. llvm-svn: 355920
This commit is contained in:
parent
44957b5fdd
commit
06bee01d2b
|
@ -941,12 +941,16 @@ void PPCInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
|
|||
return;
|
||||
} else if (PPC::G8RCRegClass.contains(SrcReg) &&
|
||||
PPC::VSFRCRegClass.contains(DestReg)) {
|
||||
assert(Subtarget.hasDirectMove() &&
|
||||
"Subtarget doesn't support directmove, don't know how to copy.");
|
||||
BuildMI(MBB, I, DL, get(PPC::MTVSRD), DestReg).addReg(SrcReg);
|
||||
NumGPRtoVSRSpill++;
|
||||
getKillRegState(KillSrc);
|
||||
return;
|
||||
} else if (PPC::VSFRCRegClass.contains(SrcReg) &&
|
||||
PPC::G8RCRegClass.contains(DestReg)) {
|
||||
assert(Subtarget.hasDirectMove() &&
|
||||
"Subtarget doesn't support directmove, don't know how to copy.");
|
||||
BuildMI(MBB, I, DL, get(PPC::MFVSRD), DestReg).addReg(SrcReg);
|
||||
getKillRegState(KillSrc);
|
||||
return;
|
||||
|
@ -962,7 +966,6 @@ void PPCInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
unsigned Opc;
|
||||
if (PPC::GPRCRegClass.contains(DestReg, SrcReg))
|
||||
Opc = PPC::OR;
|
||||
|
|
Loading…
Reference in New Issue