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
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index 903fa8a..4ea7328 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -900,6 +900,19 @@
 } // 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 @@
   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);
   }