[llvm-commits] [llvm] r103377 - /llvm/trunk/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp

Nathan Jeffords blunted2night at gmail.com
Sun May 9 01:40:06 PDT 2010


Author: njeffords
Date: Sun May  9 03:40:06 2010
New Revision: 103377

URL: http://llvm.org/viewvc/llvm-project?rev=103377&view=rev
Log:
updated handling dllexport in X86AsmPrinter

changed dllexport code to use EmitBytes instead of EmitRawText, and changed the export option to use /EXPORT: instead of -export: on the windows platform

Modified:
    llvm/trunk/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp

Modified: llvm/trunk/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp?rev=103377&r1=103376&r2=103377&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp Sun May  9 03:40:06 2010
@@ -598,14 +598,28 @@
     // Output linker support code for dllexported globals on windows.
     if (!DLLExportedGlobals.empty() || !DLLExportedFns.empty()) {
       OutStreamer.SwitchSection(TLOFCOFF.getDrectveSection());
-      for (unsigned i = 0, e = DLLExportedGlobals.size(); i != e; ++i)
-        OutStreamer.EmitRawText("\t.ascii \" -export:" +
-                                Twine(DLLExportedGlobals[i]->getName()) +
-                                ",data\"");
-
-      for (unsigned i = 0, e = DLLExportedFns.size(); i != e; ++i)
-        OutStreamer.EmitRawText("\t.ascii \" -export:" +
-                                Twine(DLLExportedFns[i]->getName()) + "\"");
+      SmallString<128> name;
+      for (unsigned i = 0, e = DLLExportedGlobals.size(); i != e; ++i) {
+        if (Subtarget->isTargetWindows())
+          name = " /EXPORT:";
+        else
+          name = " -export:";
+        name += DLLExportedGlobals[i]->getName();
+        if (Subtarget->isTargetWindows())
+          name += ",DATA";
+        else
+        name += ",data";
+        OutStreamer.EmitBytes(name, 0);
+      }
+
+      for (unsigned i = 0, e = DLLExportedFns.size(); i != e; ++i) {
+        if (Subtarget->isTargetWindows())
+          name = " /EXPORT:";
+        else
+          name = " -export:";
+        name += DLLExportedFns[i]->getName();
+        OutStreamer.EmitBytes(name, 0);
+      }
     }
   }
 





More information about the llvm-commits mailing list