diff options
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCInstrInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCInstrInfo.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp b/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp index 7fe78809343..378312c4449 100644 --- a/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp +++ b/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp @@ -422,6 +422,15 @@ void PPCInstrInfo::copyPhysReg(MachineBasicBlock &MBB, Opc = PPC::VOR; else if (PPC::CRBITRCRegClass.contains(DestReg, SrcReg)) Opc = PPC::CROR; + + // Asymmetric copies: + + else if (PPC::GPRCRegClass.contains(DestReg) && + PPC::G8RCRegClass.contains(SrcReg)) + Opc = PPC::OR_64; + else if (PPC::G8RCRegClass.contains(DestReg) && + PPC::GPRCRegClass.contains(SrcReg)) + Opc = PPC::OR8_32; else llvm_unreachable("Impossible reg-to-reg copy"); |

