fix copies to/from GR8_ABCD_H even more
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 7 Jul 2010 23:04:56 +0000 (23:04 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 7 Jul 2010 23:04:56 +0000 (23:04 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107832 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrInfo.cpp

index 91cec9894691363c4afa35163fd1a3dbc18d9858..acd214ed0ac9d0f7bba5ef509a66862e4e43bfb6 100644 (file)
@@ -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