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 << '$';