From dc536f55c0c85df7644592c69434b7b191d73dc8 Mon Sep 17 00:00:00 2001 From: Simon Atanasyan Date: Thu, 5 Jul 2012 18:51:43 +0000 Subject: [PATCH] MIPS: Factor out the code converting command line options to target features. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159767 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Driver/Tools.cpp | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 1be4659f61..a4153515de 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -880,6 +880,20 @@ static StringRef getMipsFloatABI(const Driver &D, const ArgList &Args) { return FloatABI; } +static void AddTargetFeature(const ArgList &Args, + ArgStringList &CmdArgs, + OptSpecifier OnOpt, + OptSpecifier OffOpt, + StringRef FeatureName) { + if (Arg *A = Args.getLastArg(OnOpt, OffOpt)) { + CmdArgs.push_back("-target-feature"); + if (A->getOption().matches(OnOpt)) + CmdArgs.push_back(Args.MakeArgString("+" + FeatureName)); + else + CmdArgs.push_back(Args.MakeArgString("-" + FeatureName)); + } +} + void Clang::AddMIPSTargetArgs(const ArgList &Args, ArgStringList &CmdArgs) const { const Driver &D = getToolChain().getDriver(); @@ -920,14 +934,9 @@ void Clang::AddMIPSTargetArgs(const ArgList &Args, 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"); - } + AddTargetFeature(Args, CmdArgs, + options::OPT_mips16, options::OPT_mno_mips16, + "mips16"); } /// getPPCTargetCPU - Get the (LLVM) name of the PowerPC cpu we are targeting. -- 2.40.0