diff options
author | Chris Lattner <sabre@nondot.org> | 2006-10-05 02:42:20 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-10-05 02:42:20 +0000 |
commit | 9b7ce7da820ada2cdada185de9c9aa94298e485e (patch) | |
tree | 514e09330249da48ea28bef8edddea6757cf0bd7 | |
parent | 1279b7c2a9849b499d5997d7efb5c0d6e902ca62 (diff) | |
download | external_llvm-9b7ce7da820ada2cdada185de9c9aa94298e485e.tar.gz external_llvm-9b7ce7da820ada2cdada185de9c9aa94298e485e.tar.bz2 external_llvm-9b7ce7da820ada2cdada185de9c9aa94298e485e.zip |
Move getSectionForFunction to AsmPrinter, change it to return a string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30735 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/PowerPC/PPCAsmPrinter.cpp | 19 | ||||
-rw-r--r-- | lib/Target/PowerPC/PPCTargetAsmInfo.cpp | 11 | ||||
-rw-r--r-- | lib/Target/PowerPC/PPCTargetAsmInfo.h | 6 |
3 files changed, 17 insertions, 19 deletions
diff --git a/lib/Target/PowerPC/PPCAsmPrinter.cpp b/lib/Target/PowerPC/PPCAsmPrinter.cpp index 252109a421..b7e7f2878e 100644 --- a/lib/Target/PowerPC/PPCAsmPrinter.cpp +++ b/lib/Target/PowerPC/PPCAsmPrinter.cpp @@ -238,7 +238,6 @@ namespace { virtual bool runOnMachineFunction(MachineFunction &F) = 0; virtual bool doFinalization(Module &M) = 0; - }; /// DarwinAsmPrinter - PowerPC assembly printer, customized for Darwin/Mac OS @@ -267,6 +266,9 @@ namespace { PPCAsmPrinter::getAnalysisUsage(AU); } + /// getSectionForFunction - Return the section that we should emit the + /// specified function body into. + virtual std::string getSectionForFunction(const Function &F) const; }; } // end of anonymous namespace @@ -408,6 +410,19 @@ void PPCAsmPrinter::printMachineInstruction(const MachineInstr *MI) { return; } + + +std::string DarwinAsmPrinter::getSectionForFunction(const Function &F) const { + switch (F.getLinkage()) { + default: assert(0 && "Unknown linkage type!"); + case Function::ExternalLinkage: + case Function::InternalLinkage: return TAI->getTextSection(); + case Function::WeakLinkage: + case Function::LinkOnceLinkage: + return ".section __TEXT,__textcoal_nt,coalesced,pure_instructions"; + } +} + /// runOnMachineFunction - This uses the printMachineInstruction() /// method to print assembly for each instruction. /// @@ -422,7 +437,7 @@ bool DarwinAsmPrinter::runOnMachineFunction(MachineFunction &MF) { // Print out labels for the function. const Function *F = MF.getFunction(); - SwitchToTextSection(TAI->getSectionForFunction(*F), F); + SwitchToTextSection(getSectionForFunction(*F).c_str(), F); switch (F->getLinkage()) { default: assert(0 && "Unknown linkage type!"); diff --git a/lib/Target/PowerPC/PPCTargetAsmInfo.cpp b/lib/Target/PowerPC/PPCTargetAsmInfo.cpp index f767a4428d..02ba912fbf 100644 --- a/lib/Target/PowerPC/PPCTargetAsmInfo.cpp +++ b/lib/Target/PowerPC/PPCTargetAsmInfo.cpp @@ -51,14 +51,3 @@ DarwinTargetAsmInfo::DarwinTargetAsmInfo(const PPCTargetMachine &TM) { DwarfMacInfoSection = ".section __DWARF,__debug_macinfo"; } - -const char *DarwinTargetAsmInfo::getSectionForFunction(const Function &F) const{ - switch (F.getLinkage()) { - default: assert(0 && "Unknown linkage type!"); - case Function::ExternalLinkage: - case Function::InternalLinkage: return TextSection; - case Function::WeakLinkage: - case Function::LinkOnceLinkage: - return ".section __TEXT,__textcoal_nt,coalesced,pure_instructions"; - } -} diff --git a/lib/Target/PowerPC/PPCTargetAsmInfo.h b/lib/Target/PowerPC/PPCTargetAsmInfo.h index 6188862e9f..ed8574c40d 100644 --- a/lib/Target/PowerPC/PPCTargetAsmInfo.h +++ b/lib/Target/PowerPC/PPCTargetAsmInfo.h @@ -23,12 +23,6 @@ namespace llvm { struct DarwinTargetAsmInfo : public TargetAsmInfo { DarwinTargetAsmInfo(const PPCTargetMachine &TM); - - /// getSectionForFunction - Return the section that we should emit the - /// specified function body into. This defaults to 'TextSection'. This - /// should most likely be overridden by the target to put linkonce/weak - /// functions into special sections. - virtual const char *getSectionForFunction(const Function &F) const; }; } // namespace llvm |