X86: Fix conflict over ESI between base register and rep;movsl
[oota-llvm.git] / lib / Target / X86 / X86CodeEmitter.cpp
index d3e3aaac61e485de28ecc7ee1268eb391cd3d10e..9c68a9ce9ca7083188777d41156b08d3b366f802 100644 (file)
@@ -107,7 +107,7 @@ namespace {
                           intptr_t PCAdj = 0);
 
     unsigned getX86RegNum(unsigned RegNo) const {
-      const TargetRegisterInfo *TRI = TM.getRegisterInfo();
+      const TargetRegisterInfo *TRI = TM.getSubtargetImpl()->getRegisterInfo();
       return TRI->getEncodingValue(RegNo) & 0x7;
     }
 
@@ -131,8 +131,8 @@ bool Emitter<CodeEmitter>::runOnMachineFunction(MachineFunction &MF) {
   MMI = &getAnalysis<MachineModuleInfo>();
   MCE.setModuleInfo(MMI);
 
-  II = TM.getInstrInfo();
-  TD = TM.getDataLayout();
+  II = TM.getSubtargetImpl()->getInstrInfo();
+  TD = TM.getSubtargetImpl()->getDataLayout();
   Is64BitMode = TM.getSubtarget<X86Subtarget>().is64Bit();
   IsPIC = TM.getRelocationModel() == Reloc::PIC_;
 
@@ -1139,6 +1139,7 @@ void Emitter<CodeEmitter>::emitInstruction(MachineInstr &MI,
     case X86::SEH_SetFrame:
     case X86::SEH_PushFrame:
     case X86::SEH_EndPrologue:
+    case X86::SEH_Epilogue:
       break;
 
     case X86::MOVPC32r: {
@@ -1147,7 +1148,7 @@ void Emitter<CodeEmitter>::emitInstruction(MachineInstr &MI,
       emitConstant(0, X86II::getSizeOfImm(Desc->TSFlags));
       // Remember PIC base.
       PICBaseOffset = (intptr_t) MCE.getCurrentPCOffset();
-      X86JITInfo *JTI = TM.getJITInfo();
+      X86JITInfo *JTI = TM.getSubtargetImpl()->getJITInfo();
       JTI->setPICBase(MCE.getCurrentPCValue());
       break;
     }