diff options
| author | Chris Lattner <sabre@nondot.org> | 2009-08-12 07:22:17 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2009-08-12 07:22:17 +0000 |
| commit | d88f9fd3f28cee69b0fcdca59532824d5617577e (patch) | |
| tree | ac43fb9b39f3a7abe8aa7cb217860e4d29329963 /lib/Target/CellSPU | |
| parent | cdd849e6363813d9dad21dd4da5e4d47f60b551f (diff) | |
| download | external_llvm-d88f9fd3f28cee69b0fcdca59532824d5617577e.zip external_llvm-d88f9fd3f28cee69b0fcdca59532824d5617577e.tar.gz external_llvm-d88f9fd3f28cee69b0fcdca59532824d5617577e.tar.bz2 | |
Change TargetAsmInfo to be constructed via TargetRegistry from a Target+Triple
pair instead of from a virtual method on TargetMachine. This cuts the final
ties of TargetAsmInfo to TargetMachine, meaning that MC can now use
TargetAsmInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78802 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/CellSPU')
| -rw-r--r-- | lib/Target/CellSPU/SPUTargetAsmInfo.cpp | 2 | ||||
| -rw-r--r-- | lib/Target/CellSPU/SPUTargetAsmInfo.h | 6 | ||||
| -rw-r--r-- | lib/Target/CellSPU/SPUTargetMachine.cpp | 5 | ||||
| -rw-r--r-- | lib/Target/CellSPU/SPUTargetMachine.h | 4 |
4 files changed, 6 insertions, 11 deletions
diff --git a/lib/Target/CellSPU/SPUTargetAsmInfo.cpp b/lib/Target/CellSPU/SPUTargetAsmInfo.cpp index a295a4c..4ae852d 100644 --- a/lib/Target/CellSPU/SPUTargetAsmInfo.cpp +++ b/lib/Target/CellSPU/SPUTargetAsmInfo.cpp @@ -14,7 +14,7 @@ #include "SPUTargetAsmInfo.h" using namespace llvm; -SPULinuxTargetAsmInfo::SPULinuxTargetAsmInfo() { +SPULinuxTargetAsmInfo::SPULinuxTargetAsmInfo(const Target &T, const StringRef &TT) { ZeroDirective = "\t.space\t"; SetDirective = "\t.set"; Data64bitsDirective = "\t.quad\t"; diff --git a/lib/Target/CellSPU/SPUTargetAsmInfo.h b/lib/Target/CellSPU/SPUTargetAsmInfo.h index 9507ff9..b3c6bda 100644 --- a/lib/Target/CellSPU/SPUTargetAsmInfo.h +++ b/lib/Target/CellSPU/SPUTargetAsmInfo.h @@ -17,9 +17,11 @@ #include "llvm/Target/TargetAsmInfo.h" namespace llvm { - + class Target; + class StringRef; + struct SPULinuxTargetAsmInfo : public TargetAsmInfo { - explicit SPULinuxTargetAsmInfo(); + explicit SPULinuxTargetAsmInfo(const Target &T, const StringRef &TT); }; } // namespace llvm diff --git a/lib/Target/CellSPU/SPUTargetMachine.cpp b/lib/Target/CellSPU/SPUTargetMachine.cpp index 85dda31..b904b95 100644 --- a/lib/Target/CellSPU/SPUTargetMachine.cpp +++ b/lib/Target/CellSPU/SPUTargetMachine.cpp @@ -25,6 +25,7 @@ using namespace llvm; extern "C" void LLVMInitializeCellSPUTarget() { // Register the target. RegisterTargetMachine<SPUTargetMachine> X(TheCellSPUTarget); + RegisterAsmInfo<SPULinuxTargetAsmInfo> Y(TheCellSPUTarget); } const std::pair<unsigned, int> * @@ -33,10 +34,6 @@ SPUFrameInfo::getCalleeSaveSpillSlots(unsigned &NumEntries) const { return &LR[0]; } -const TargetAsmInfo *SPUTargetMachine::createTargetAsmInfo() const { - return new SPULinuxTargetAsmInfo(); -} - SPUTargetMachine::SPUTargetMachine(const Target &T, const std::string &TT, const std::string &FS) : LLVMTargetMachine(T, TT), diff --git a/lib/Target/CellSPU/SPUTargetMachine.h b/lib/Target/CellSPU/SPUTargetMachine.h index a0e7130..9fdcfe9 100644 --- a/lib/Target/CellSPU/SPUTargetMachine.h +++ b/lib/Target/CellSPU/SPUTargetMachine.h @@ -35,10 +35,6 @@ class SPUTargetMachine : public LLVMTargetMachine { SPUFrameInfo FrameInfo; SPUTargetLowering TLInfo; InstrItineraryData InstrItins; - -protected: - virtual const TargetAsmInfo *createTargetAsmInfo() const; - public: SPUTargetMachine(const Target &T, const std::string &TT, const std::string &FS); |
