summaryrefslogtreecommitdiffstats
path: root/clang/lib
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
commitc53305fd421b7c752f2f6971ee3ffd7271c815a8 (patch)
tree1d65995aae51989df7baec7fa1e60a979235e2a9 /clang/lib
parent4f2fea1a21f73934c3060e744cd1a5bb94c79be3 (diff)
downloadbcm5719-llvm-c53305fd421b7c752f2f6971ee3ffd7271c815a8.tar.gz
bcm5719-llvm-c53305fd421b7c752f2f6971ee3ffd7271c815a8.zip
Ad FreeBSD ARM target info.
- Patch by Ed Schoeten! llvm-svn: 67527
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Basic/Targets.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 903fa8a19ee..4ea73280cdf 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/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);
}
OpenPOWER on IntegriCloud