diff --git a/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp b/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
index 38418b3..f8f54d4 100755
--- a/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
+++ b/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
@@ -196,25 +196,18 @@
       O << " + " << DispSpec.getImmedValue();
     O << "]";
     return;
-  } else if (BaseReg.isConstantPoolIndex()) {
-    O << PrivateGlobalPrefix << "CPI" << getFunctionNumber() << "_"
-      << BaseReg.getConstantPoolIndex();
-    if (forDarwin && TM.getRelocationModel() == Reloc::PIC)
-      O << "-\"L" << getFunctionNumber() << "$pb\"";
-    if (DispSpec.getImmedValue())
-      O << "+" << DispSpec.getImmedValue();
-    if (IndexReg.getReg()) {
-      O << "(,";
-      printOperand(MI, Op+2);
-      if (ScaleVal != 1)
-        O << "," << ScaleVal;
-      O << ")";
-    }
-    return;
   }
 
   if (DispSpec.isGlobalAddress()) {
     printOperand(MI, Op+3, "mem");
+  } else if (DispSpec.isConstantPoolIndex()) {
+    O << PrivateGlobalPrefix << "CPI" << getFunctionNumber() << "_"
+      << DispSpec.getConstantPoolIndex();
+    if (forDarwin && TM.getRelocationModel() == Reloc::PIC)
+      O << "-\"L" << getFunctionNumber() << "$pb\"";
+    if (DispSpec.getOffset())
+      O << "+" << DispSpec.getOffset();
+    return;
   } else {
     int DispVal = DispSpec.getImmedValue();
     if (DispVal || (!IndexReg.getReg() && !BaseReg.getReg()))
