]> granicus.if.org Git - clang/commitdiff
Ad FreeBSD ARM target info.
authorDaniel Dunbar <daniel@zuster.org>
Mon, 23 Mar 2009 16:09:04 +0000 (16:09 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Mon, 23 Mar 2009 16:09:04 +0000 (16:09 +0000)
 - Patch by Ed Schoeten!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67527 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Basic/Targets.cpp

index 903fa8a19ee99a7b1f3aebaf4502a830ff4f50bd..4ea73280cdfffa736cbd744475c4a074d7ace7a5 100644 (file)
@@ -899,6 +899,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[];
@@ -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);
   }