diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Basic/Targets.cpp | 3 | ||||
-rw-r--r-- | lib/Driver/Tools.cpp | 9 |
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index f094784c72..5d29417cb4 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -3708,7 +3708,8 @@ public: if (Name == "soft-float" || Name == "single-float" || Name == "o32" || Name == "n32" || Name == "n64" || Name == "eabi" || Name == "mips32" || Name == "mips32r2" || - Name == "mips64" || Name == "mips64r2") { + Name == "mips64" || Name == "mips64r2" || + Name == "mips16") { Features[Name] = Enabled; return true; } diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index a5e2e401e2..1be4659f61 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -919,6 +919,15 @@ void Clang::AddMIPSTargetArgs(const ArgList &Args, CmdArgs.push_back("-mfloat-abi"); CmdArgs.push_back("hard"); } + + if (Arg *A = Args.getLastArg(options::OPT_mips16, + options::OPT_mno_mips16)) { + CmdArgs.push_back("-target-feature"); + if (A->getOption().matches(options::OPT_mips16)) + CmdArgs.push_back("+mips16"); + else + CmdArgs.push_back("-mips16"); + } } /// getPPCTargetCPU - Get the (LLVM) name of the PowerPC cpu we are targeting. |