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

Chris Lattner sabre at nondot.org
Fri Jan 15 16:32:38 PST 2010


Author: lattner
Date: Fri Jan 15 18:32:38 2010
New Revision: 93598

URL: http://llvm.org/viewvc/llvm-project?rev=93598&view=rev
Log:
MCize tis, and make it keep CurrentFnSym up to date with CurrentFnName.

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=93598&r1=93597&r2=93598&view=diff

==============================================================================
--- llvm/trunk/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp Fri Jan 15 18:32:38 2010
@@ -72,6 +72,7 @@
     X86COFFMachineModuleInfo &COFFMMI = 
       MMI->getObjFileInfo<X86COFFMachineModuleInfo>();
     COFFMMI.DecorateCygMingName(CurrentFnName, F, *TM.getTargetData());
+    CurrentFnSym = OutContext.GetOrCreateSymbol(StringRef(CurrentFnName));
   }
 
   OutStreamer.SwitchSection(getObjFileLowering().SectionForGlobal(F, Mang, TM));
@@ -84,7 +85,9 @@
     break;
   case Function::DLLExportLinkage:
   case Function::ExternalLinkage:
-    O << "\t.globl\t" << CurrentFnName << '\n';
+    O << "\t.globl\t";
+    CurrentFnSym->print(O, MAI);
+    O << '\n';
     break;
   case Function::LinkerPrivateLinkage:
   case Function::LinkOnceAnyLinkage:
@@ -92,30 +95,41 @@
   case Function::WeakAnyLinkage:
   case Function::WeakODRLinkage:
     if (Subtarget->isTargetDarwin()) {
-      O << "\t.globl\t" << CurrentFnName << '\n';
-      O << MAI->getWeakDefDirective() << CurrentFnName << '\n';
+      O << "\t.globl\t";
+      CurrentFnSym->print(O, MAI);
+      O << '\n';
+      O << MAI->getWeakDefDirective();
+      CurrentFnSym->print(O, MAI);
+      O << '\n';
     } else if (Subtarget->isTargetCygMing()) {
-      O << "\t.globl\t" << CurrentFnName << "\n"
-           "\t.linkonce discard\n";
+      O << "\t.globl\t";
+      CurrentFnSym->print(O, MAI);
+      O << "\n\t.linkonce discard\n";
     } else {
-      O << "\t.weak\t" << CurrentFnName << '\n';
+      O << "\t.weak\t";
+      CurrentFnSym->print(O, MAI);
+      O << '\n';
     }
     break;
   }
 
-  printVisibility(CurrentFnName, F->getVisibility());
+  printVisibility(CurrentFnSym, F->getVisibility());
 
-  if (Subtarget->isTargetELF())
-    O << "\t.type\t" << CurrentFnName << ", at function\n";
-  else if (Subtarget->isTargetCygMing()) {
-    O << "\t.def\t " << CurrentFnName
-      << ";\t.scl\t" <<
+  if (Subtarget->isTargetELF()) {
+    O << "\t.type\t";
+    CurrentFnSym->print(O, MAI);
+    O << ", at function\n";
+  } else if (Subtarget->isTargetCygMing()) {
+    O << "\t.def\t ";
+    CurrentFnSym->print(O, MAI);
+    O << ";\t.scl\t" <<
       (F->hasInternalLinkage() ? COFF::C_STAT : COFF::C_EXT)
       << ";\t.type\t" << (COFF::DT_FCN << COFF::N_BTSHFT)
       << ";\t.endef\n";
   }
 
-  O << CurrentFnName << ':';
+  CurrentFnSym->print(O, MAI);
+  O << ':';
   if (VerboseAsm) {
     O.PadToColumn(MAI->getCommentColumn());
     O << MAI->getCommentString() << ' ';
@@ -125,8 +139,11 @@
 
   // Add some workaround for linkonce linkage on Cygwin\MinGW
   if (Subtarget->isTargetCygMing() &&
-      (F->hasLinkOnceLinkage() || F->hasWeakLinkage()))
-    O << "Lllvm$workaround$fake$stub$" << CurrentFnName << ":\n";
+      (F->hasLinkOnceLinkage() || F->hasWeakLinkage())) {
+    O << "Lllvm$workaround$fake$stub$";
+    CurrentFnSym->print(O, MAI);
+    O << ":\n";
+  }
 }
 
 /// runOnMachineFunction - This uses the printMachineInstruction()
@@ -183,8 +200,13 @@
     O << "\tnop\n";
   }
 
-  if (MAI->hasDotTypeDotSizeDirective())
-    O << "\t.size\t" << CurrentFnName << ", .-" << CurrentFnName << '\n';
+  if (MAI->hasDotTypeDotSizeDirective()) {
+    O << "\t.size\t";
+    CurrentFnSym->print(O, MAI);
+    O << ", .-";
+    CurrentFnSym->print(O, MAI);
+    O << '\n';
+  }
 
   // Emit post-function debug information.
   if (MAI->doesSupportDebugInformation() || MAI->doesSupportExceptionHandling())





More information about the llvm-commits mailing list