Check in the last of the darwin-specific code necessary to get shootout
working before modifying the asm printer to use the subtarget info.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22408 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/X86/X86ATTAsmPrinter.cpp b/lib/Target/X86/X86ATTAsmPrinter.cpp
index bb606f1..ca8630c 100755
--- a/lib/Target/X86/X86ATTAsmPrinter.cpp
+++ b/lib/Target/X86/X86ATTAsmPrinter.cpp
@@ -101,22 +101,22 @@
       if (F && isCallOp && F->isExternal()) {
         FnStubs.insert(Name);
         O << "L" << Name << "$stub";
-        return;
-      }
-
-      // Link-once, External, or Weakly-linked global variables need 
-      // non-lazily-resolved stubs
-      if (GV->hasLinkOnceLinkage()) {
+      } else if (GV->hasLinkOnceLinkage()) {
+        // Link-once, External, or Weakly-linked global variables need 
+        // non-lazily-resolved stubs
         LinkOnceStubs.insert(Name);
         O << "L" << Name << "$non_lazy_ptr";
-        return;
-      }
-      if (GV->isExternal() || GV->hasWeakLinkage()) {
+      } else if (GV->isExternal() || GV->hasWeakLinkage()) {
         GVStubs.insert(Name);
         O << "L" << Name << "$non_lazy_ptr";
-        return;
+      } else {
+        O << Mang->getValueName(GV);
       }
-      O << Mang->getValueName(GV);
+      int Offset = MO.getOffset();
+      if (Offset > 0)
+        O << "+" << Offset;
+      else if (Offset < 0)
+        O << Offset;
       return;
     }
     if (!isCallOp) O << '$';