diff options
author | Chris Lattner <sabre@nondot.org> | 2010-07-07 16:01:42 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-07-07 16:01:42 +0000 |
commit | 3e2ee147d0ddb23592b2ec8294381b5e1801cc62 (patch) | |
tree | 034478169e2628b4396a64906e894d74e7241f0d /clang/lib/Basic/Targets.cpp | |
parent | e784616fbbb223eaf5f54c10d9c900cb45dae382 (diff) | |
download | bcm5719-llvm-3e2ee147d0ddb23592b2ec8294381b5e1801cc62.tar.gz bcm5719-llvm-3e2ee147d0ddb23592b2ec8294381b5e1801cc62.zip |
add driver support for minix, patch by Kees van Reeuwijk
from PR7583
llvm-svn: 107788
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 8f36725598d..8d793163bc0 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -212,6 +212,30 @@ public: } }; +// Minix Target +template<typename Target> +class MinixTargetInfo : public OSTargetInfo<Target> { +protected: + virtual void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, + MacroBuilder &Builder) const { + // Minix defines + + Builder.defineMacro("__minix", "3"); + Builder.defineMacro("_EM_WSIZE", "4"); + Builder.defineMacro("_EM_PSIZE", "4"); + Builder.defineMacro("_EM_SSIZE", "2"); + Builder.defineMacro("_EM_LSIZE", "4"); + Builder.defineMacro("_EM_FSIZE", "4"); + Builder.defineMacro("_EM_DSIZE", "8"); + DefineStd(Builder, "unix", Opts); + } +public: + MinixTargetInfo(const std::string &triple) + : OSTargetInfo<Target>(triple) { + this->UserLabelPrefix = ""; + } +}; + // Linux target template<typename Target> class LinuxTargetInfo : public OSTargetInfo<Target> { @@ -2501,6 +2525,8 @@ static TargetInfo *AllocateTarget(const std::string &T) { return new OpenBSDI386TargetInfo(T); case llvm::Triple::FreeBSD: return new FreeBSDTargetInfo<X86_32TargetInfo>(T); + case llvm::Triple::Minix: + return new MinixTargetInfo<X86_32TargetInfo>(T); case llvm::Triple::Solaris: return new SolarisTargetInfo<X86_32TargetInfo>(T); case llvm::Triple::Cygwin: |