diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-03-23 16:09:04 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-03-23 16:09:04 +0000 |
commit | 1e0107a3d1e9477bb3fc0bf0dbe1b52cbdd23a77 (patch) | |
tree | dcc68e2b0cbdd7ccacb03270bdcc1a44b987d9ea /lib/Basic/Targets.cpp | |
parent | 693de5d7feb92c096431c98ea6ee637494bfe6fb (diff) |
Ad FreeBSD ARM target info.
- Patch by Ed Schoeten!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67527 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Basic/Targets.cpp')
-rw-r--r-- | lib/Basic/Targets.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 903fa8a19e..4ea73280cd 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -900,6 +900,19 @@ public: } // end anonymous namespace. namespace { +// arm FreeBSD target +class FreeBSDARMTargetInfo : public ARMTargetInfo { +public: + FreeBSDARMTargetInfo(const std::string& triple) : ARMTargetInfo(triple) {} + virtual void getTargetDefines(const LangOptions &Opts, + std::vector<char> &Defines) const { + ARMTargetInfo::getTargetDefines(Opts, Defines); + getFreeBSDDefines(Opts, 0, getTargetTriple(), Defines); + } +}; +} // end anonymous namespace + +namespace { class SparcV8TargetInfo : public TargetInfo { static const TargetInfo::GCCRegAlias GCCRegAliases[]; static const char * const GCCRegNames[]; @@ -1092,6 +1105,8 @@ TargetInfo* TargetInfo::CreateTargetInfo(const std::string &T) { if (T.find("armv6-") == 0 || T.find("arm-") == 0) { if (isDarwin) return new DarwinARMTargetInfo(T); + if (isFreeBSD) + return new FreeBSDARMTargetInfo(T); return new ARMTargetInfo(T); } |