minor tidying, only do work if a function is
authorChris Lattner <sabre@nondot.org>
Fri, 12 Mar 2010 19:48:03 +0000 (19:48 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 12 Mar 2010 19:48:03 +0000 (19:48 +0000)
actually X86_StdCall or X86_FastCall.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98374 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp
lib/Target/X86/AsmPrinter/X86MCInstLower.cpp
lib/Target/X86/X86COFFMachineModuleInfo.cpp
lib/Target/X86/X86COFFMachineModuleInfo.h

index b879d48ce053a6d8a43c75576c0a1eea2ec0bb6b..cc80e20fb1c3cc3512f733cfe97d988a68033815 100644 (file)
@@ -61,10 +61,8 @@ MCSymbol *X86AsmPrinter::GetGlobalValueSymbol(const GlobalValue *GV) const {
   
   X86COFFMachineModuleInfo &COFFMMI =
     MMI->getObjFileInfo<X86COFFMachineModuleInfo>();
-  COFFMMI.DecorateCygMingName(Symb, OutContext, cast<Function>(GV),
-                              *TM.getTargetData());
-
-  return Symb;
+  return COFFMMI.DecorateCygMingName(Symb, OutContext, cast<Function>(GV),
+                                     *TM.getTargetData());
 }
 
 /// runOnMachineFunction - Emit the function body.
index 8dabaac6d1939e968a241e070f9e14be7fbcb05a..537d44222f0148c10e5257a773190400fe3f7bbd 100644 (file)
@@ -65,8 +65,8 @@ GetSymbolFromOperand(const MachineOperand &MO) const {
     MCSymbol *Sym = Mang->getSymbol(GV);
     X86COFFMachineModuleInfo &COFFMMI = 
     AsmPrinter.MMI->getObjFileInfo<X86COFFMachineModuleInfo>();
-    COFFMMI.DecorateCygMingName(Sym, Ctx, cast<Function>(GV),
-                                *AsmPrinter.TM.getTargetData());
+    Sym = COFFMMI.DecorateCygMingName(Sym, Ctx, cast<Function>(GV),
+                                      *AsmPrinter.TM.getTargetData());
     Name.append(Sym->getName().begin(), Sym->getName().end());
   } else {    
     const GlobalValue *GV = MO.getGlobal();
index 8fbd20714d6a398a8af09e5b4bc100b7e1fe0236..2988e4f91d07ff6f0f8d44bb64b65f4ffaf0dd7e 100644 (file)
@@ -28,16 +28,14 @@ X86COFFMachineModuleInfo::~X86COFFMachineModuleInfo() {
 
 /// DecorateCygMingName - Query FunctionInfoMap and use this information for
 /// various name decorations for Cygwin and MingW.
-void X86COFFMachineModuleInfo::DecorateCygMingName(MCSymbol *&NameSym,
-                                                   MCContext &Ctx,
-                                                   const Function *F,
-                                                   const TargetData &TD) {
-  SmallString<128> Name(NameSym->getName().begin(), NameSym->getName().end());
-  
+MCSymbol *X86COFFMachineModuleInfo::DecorateCygMingName(MCSymbol *NameSym,
+                                                        MCContext &Ctx,
+                                                        const Function *F,
+                                                        const TargetData &TD) {
   // We don't want to decorate non-stdcall or non-fastcall functions right now
   CallingConv::ID CC = F->getCallingConv();
   if (CC != CallingConv::X86_StdCall && CC != CallingConv::X86_FastCall)
-    return;
+    return NameSym;
   
   unsigned ArgWords = 0;
   
@@ -55,6 +53,9 @@ void X86COFFMachineModuleInfo::DecorateCygMingName(MCSymbol *&NameSym,
   }
   
   const FunctionType *FT = F->getFunctionType();
+  
+  SmallString<128> Name(NameSym->getName().begin(), NameSym->getName().end());
+
   // "Pure" variadic functions do not receive @0 suffix.
   if (!FT->isVarArg() || FT->getNumParams() == 0 ||
       (FT->getNumParams() == 1 && F->hasStructRetAttr()))
@@ -67,5 +68,5 @@ void X86COFFMachineModuleInfo::DecorateCygMingName(MCSymbol *&NameSym,
       Name.insert(Name.begin(), '@');
   }
   
-  NameSym = Ctx.GetOrCreateSymbol(Name.str());
+  return Ctx.GetOrCreateSymbol(Name.str());
 }
index f43b5ce7cbba6f0fbfb18a7b81e9e8cdc45a0116..d07f07335355c7505d14e2e78c43ba0111547543 100644 (file)
@@ -30,8 +30,8 @@ public:
   X86COFFMachineModuleInfo(const MachineModuleInfo &) {}
   virtual ~X86COFFMachineModuleInfo();
 
-  void DecorateCygMingName(MCSymbol *&Name, MCContext &Ctx,
-                           const Function *F, const TargetData &TD);
+  MCSymbol *DecorateCygMingName(MCSymbol *Name, MCContext &Ctx,
+                                const Function *F, const TargetData &TD);
 
   void addExternalFunction(StringRef Name) {
     CygMingStubs.insert(Name);