aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/PIC16
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-08-12 07:22:17 +0000
committerChris Lattner <sabre@nondot.org>2009-08-12 07:22:17 +0000
commitd88f9fd3f28cee69b0fcdca59532824d5617577e (patch)
treeac43fb9b39f3a7abe8aa7cb217860e4d29329963 /lib/Target/PIC16
parentcdd849e6363813d9dad21dd4da5e4d47f60b551f (diff)
downloadexternal_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/PIC16')
-rw-r--r--lib/Target/PIC16/PIC16AsmPrinter.cpp3
-rw-r--r--lib/Target/PIC16/PIC16TargetAsmInfo.cpp3
-rw-r--r--lib/Target/PIC16/PIC16TargetAsmInfo.h5
-rw-r--r--lib/Target/PIC16/PIC16TargetMachine.cpp4
-rw-r--r--lib/Target/PIC16/PIC16TargetMachine.h3
5 files changed, 8 insertions, 10 deletions
diff --git a/lib/Target/PIC16/PIC16AsmPrinter.cpp b/lib/Target/PIC16/PIC16AsmPrinter.cpp
index 39ebfa4..a981d83 100644
--- a/lib/Target/PIC16/PIC16AsmPrinter.cpp
+++ b/lib/Target/PIC16/PIC16AsmPrinter.cpp
@@ -480,4 +480,7 @@ extern "C" void LLVMInitializePIC16Target() {
RegisterTargetMachine<CooperTargetMachine> B(TheCooperTarget);
RegisterAsmPrinter<PIC16AsmPrinter> C(ThePIC16Target);
RegisterAsmPrinter<PIC16AsmPrinter> D(TheCooperTarget);
+
+ RegisterAsmInfo<PIC16TargetAsmInfo> E(ThePIC16Target);
+ RegisterAsmInfo<PIC16TargetAsmInfo> F(TheCooperTarget);
}
diff --git a/lib/Target/PIC16/PIC16TargetAsmInfo.cpp b/lib/Target/PIC16/PIC16TargetAsmInfo.cpp
index fdd1ae0..8b30291 100644
--- a/lib/Target/PIC16/PIC16TargetAsmInfo.cpp
+++ b/lib/Target/PIC16/PIC16TargetAsmInfo.cpp
@@ -19,8 +19,7 @@
#include "PIC16ISelLowering.h"
using namespace llvm;
-PIC16TargetAsmInfo::
-PIC16TargetAsmInfo() {
+PIC16TargetAsmInfo::PIC16TargetAsmInfo(const Target &T, const StringRef &TT) {
CommentString = ";";
GlobalPrefix = PAN::getTagName(PAN::PREFIX_SYMBOL);
GlobalDirective = "\tglobal\t";
diff --git a/lib/Target/PIC16/PIC16TargetAsmInfo.h b/lib/Target/PIC16/PIC16TargetAsmInfo.h
index d24aa6b..23c5ebc 100644
--- a/lib/Target/PIC16/PIC16TargetAsmInfo.h
+++ b/lib/Target/PIC16/PIC16TargetAsmInfo.h
@@ -17,12 +17,15 @@
#include "llvm/Target/TargetAsmInfo.h"
namespace llvm {
+ class Target;
+ class StringRef;
+
class PIC16TargetAsmInfo : public TargetAsmInfo {
const char *RomData8bitsDirective;
const char *RomData16bitsDirective;
const char *RomData32bitsDirective;
public:
- PIC16TargetAsmInfo();
+ PIC16TargetAsmInfo(const Target &T, const StringRef &TT);
virtual const char *getDataASDirective(unsigned size, unsigned AS) const;
};
diff --git a/lib/Target/PIC16/PIC16TargetMachine.cpp b/lib/Target/PIC16/PIC16TargetMachine.cpp
index d09097c..6af693f 100644
--- a/lib/Target/PIC16/PIC16TargetMachine.cpp
+++ b/lib/Target/PIC16/PIC16TargetMachine.cpp
@@ -36,10 +36,6 @@ CooperTargetMachine::CooperTargetMachine(const Target &T, const std::string &TT,
: PIC16TargetMachine(T, TT, FS, true) {}
-const TargetAsmInfo *PIC16TargetMachine::createTargetAsmInfo() const {
- return new PIC16TargetAsmInfo();
-}
-
bool PIC16TargetMachine::addInstSelector(PassManagerBase &PM,
CodeGenOpt::Level OptLevel) {
// Install an instruction selector.
diff --git a/lib/Target/PIC16/PIC16TargetMachine.h b/lib/Target/PIC16/PIC16TargetMachine.h
index 649c7ea..51efdb2 100644
--- a/lib/Target/PIC16/PIC16TargetMachine.h
+++ b/lib/Target/PIC16/PIC16TargetMachine.h
@@ -37,9 +37,6 @@ class PIC16TargetMachine : public LLVMTargetMachine {
// any PIC16 specific FrameInfo class.
TargetFrameInfo FrameInfo;
-protected:
- virtual const TargetAsmInfo *createTargetAsmInfo() const;
-
public:
PIC16TargetMachine(const Target &T, const std::string &TT,
const std::string &FS, bool Cooper = false);