aboutsummaryrefslogtreecommitdiff
path: root/lib/Basic/Targets.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-03-23 16:09:04 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-03-23 16:09:04 +0000
commit1e0107a3d1e9477bb3fc0bf0dbe1b52cbdd23a77 (patch)
treedcc68e2b0cbdd7ccacb03270bdcc1a44b987d9ea /lib/Basic/Targets.cpp
parent693de5d7feb92c096431c98ea6ee637494bfe6fb (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.cpp15
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);
}