Make external globals public; other minor cleanup.
authorJeff Cohen <jeffc@jolt-lang.org>
Thu, 4 May 2006 16:20:22 +0000 (16:20 +0000)
committerJeff Cohen <jeffc@jolt-lang.org>
Thu, 4 May 2006 16:20:22 +0000 (16:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28096 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86IntelAsmPrinter.cpp

index f9093da36d8d863289d70c1fcfabc869cdc34040..0c6c6b4445895b2a43126c3b3d656d0e5c60ee49 100755 (executable)
@@ -24,20 +24,6 @@ using namespace llvm;
 
 X86IntelAsmPrinter::X86IntelAsmPrinter(std::ostream &O, X86TargetMachine &TM)
     : X86SharedAsmPrinter(O, TM) {
-  CommentString = ";";
-  GlobalPrefix = "_";
-  PrivateGlobalPrefix = "$";
-  AlignDirective = "\talign\t";
-  MLSections = true;
-  ZeroDirective = "\tdb\t";
-  ZeroDirectiveSuffix = " dup(0)";
-  AsciiDirective = "\tdb\t";
-  AscizDirective = 0;
-  Data8bitsDirective = "\t.db\t";
-  Data16bitsDirective = "\t.dw\t";
-  Data32bitsDirective = "\t.dd\t";
-  Data64bitsDirective = "\t.dq\t";
-  HasDotTypeDotSizeDirective = false;
 }
 
 /// runOnMachineFunction - This uses the printMachineInstruction()
@@ -413,8 +399,22 @@ void X86IntelAsmPrinter::printMachineInstruction(const MachineInstr *MI) {
 
 bool X86IntelAsmPrinter::doInitialization(Module &M) {
   X86SharedAsmPrinter::doInitialization(M);
+  CommentString = ";";
+  GlobalPrefix = "_";
+  PrivateGlobalPrefix = "$";
+  AlignDirective = "\talign\t";
+  MLSections = true;
+  ZeroDirective = "\tdb\t";
+  ZeroDirectiveSuffix = " dup(0)";
+  AsciiDirective = "\tdb\t";
+  AscizDirective = 0;
+  Data8bitsDirective = "\t.db\t";
+  Data16bitsDirective = "\t.dw\t";
+  Data32bitsDirective = "\t.dd\t";
+  Data64bitsDirective = "\t.dq\t";
+  HasDotTypeDotSizeDirective = false;
   Mang->markCharUnacceptable('.');
-  PrivateGlobalPrefix = "$";  // need this here too :(
+
   O << "\t.686\n\t.model flat\n\n";
 
   // Emit declarations for external functions.
@@ -427,6 +427,8 @@ bool X86IntelAsmPrinter::doInitialization(Module &M) {
        I != E; ++I) {
     if (I->isExternal())
       O << "\textern " << Mang->getValueName(I) << ":byte\n";
+    else if (I->getLinkage() == GlobalValue::ExternalLinkage)
+      O << "\tpublic " << Mang->getValueName(I) << "\n";
   }
 
   return false;