diff --git a/llvm/lib/Target/X86/X86MCCodeEmitter.cpp b/llvm/lib/Target/X86/X86MCCodeEmitter.cpp
index 4b4f8ce2..740b43b 100644
--- a/llvm/lib/Target/X86/X86MCCodeEmitter.cpp
+++ b/llvm/lib/Target/X86/X86MCCodeEmitter.cpp
@@ -366,7 +366,7 @@
   
   // FIXME: Can we kill off MRMInitReg??
   
-  unsigned char BaseOpcode = X86InstrInfo::getBaseOpcodeFor(Desc);
+  unsigned char BaseOpcode = X86InstrInfo::getBaseOpcodeFor(TSFlags);
   switch (TSFlags & X86II::FormMask) {
   default: errs() << "FORM: " << (TSFlags & X86II::FormMask) << "\n";
       assert(0 && "Unknown FormMask value in X86MCCodeEmitter!");
@@ -387,7 +387,7 @@
 
     const MCOperand &MO1 = MI.getOperand(CurOp++);
     if (MO1.isImm()) {
-      unsigned Size = X86InstrInfo::sizeOfImm(&Desc);
+      unsigned Size = X86InstrInfo::getSizeOfImm(TSFlags);
       EmitConstant(MO1.getImm(), Size, OS);
       break;
     }
@@ -403,7 +403,7 @@
     CurOp += 2;
     if (CurOp != NumOps)
       EmitConstant(MI.getOperand(CurOp++).getImm(),
-                   X86InstrInfo::sizeOfImm(&Desc), OS);
+                   X86InstrInfo::getSizeOfImm(TSFlags), OS);
     break;
   
   case X86II::MRMDestMem:
@@ -414,7 +414,7 @@
     CurOp +=  X86AddrNumOperands + 1;
     if (CurOp != NumOps)
       EmitConstant(MI.getOperand(CurOp++).getImm(),
-                   X86InstrInfo::sizeOfImm(&Desc), OS);
+                   X86InstrInfo::getSizeOfImm(TSFlags), OS);
     break;
       
   case X86II::MRMSrcReg:
@@ -424,7 +424,7 @@
     CurOp += 2;
     if (CurOp != NumOps)
       EmitConstant(MI.getOperand(CurOp++).getImm(),
-                   X86InstrInfo::sizeOfImm(&Desc), OS);
+                   X86InstrInfo::getSizeOfImm(TSFlags), OS);
     break;
     
   case X86II::MRMSrcMem: {
@@ -440,14 +440,14 @@
     
     // FIXME: What is this actually doing?
     intptr_t PCAdj = (CurOp + AddrOperands + 1 != NumOps) ?
-       X86InstrInfo::sizeOfImm(&Desc) : 0;
+       X86InstrInfo::getSizeOfImm(TSFlags) : 0;
     
     EmitMemModRMByte(MI, CurOp+1, GetX86RegNum(MI.getOperand(CurOp)),
                      PCAdj, OS);
     CurOp += AddrOperands + 1;
     if (CurOp != NumOps)
       EmitConstant(MI.getOperand(CurOp++).getImm(),
-                   X86InstrInfo::sizeOfImm(&Desc), OS);
+                   X86InstrInfo::getSizeOfImm(TSFlags), OS);
     break;
   }
       
