diff options
-rw-r--r-- | lib/Target/X86/X86InstrInfo.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Target/X86/X86InstrInfo.cpp b/lib/Target/X86/X86InstrInfo.cpp index 91cec98..acd214e 100644 --- a/lib/Target/X86/X86InstrInfo.cpp +++ b/lib/Target/X86/X86InstrInfo.cpp @@ -1932,7 +1932,9 @@ bool X86InstrInfo::copyRegToReg(MachineBasicBlock &MBB, } else if (CommonRC == &X86::GR8RegClass) { // Copying to or from a physical H register on x86-64 requires a NOREX // move. Otherwise use a normal move. - if ((isHReg(DestReg) || isHReg(SrcReg)) && + if ((isHReg(DestReg) || isHReg(SrcReg) || + SrcRC == &X86::GR8_ABCD_HRegClass || + DestRC == &X86::GR8_ABCD_HRegClass) && TM.getSubtarget<X86Subtarget>().is64Bit()) Opc = X86::MOV8rr_NOREX; else |