From 1e0107a3d1e9477bb3fc0bf0dbe1b52cbdd23a77 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Mon, 23 Mar 2009 16:09:04 +0000 Subject: [PATCH] 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 --- lib/Basic/Targets.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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 @@ -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 &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); } -- 2.40.0