summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorSimon Atanasyan <satanasyan@mips.com>2012-09-21 20:19:32 +0000
committerSimon Atanasyan <satanasyan@mips.com>2012-09-21 20:19:32 +0000
commit2efe53e448097e2f0f6d4a248c8aabfb716fec61 (patch)
tree9cd8e0de5d4e9f6bdfd23de51ff2684f40edd3dd /clang/lib/Driver/Tools.cpp
parent55023de547129c5140e3db5a85797e69a072ebd2 (diff)
downloadbcm5719-llvm-2efe53e448097e2f0f6d4a248c8aabfb716fec61.tar.gz
bcm5719-llvm-2efe53e448097e2f0f6d4a248c8aabfb716fec61.zip
Add four new command line options for MIPS CPU selection:
-mips32, -mips32r2, -mips64, -mips64r2. The patch reviewed by Eric Christopher. llvm-svn: 164410
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 960ffde228f..0866c016576 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -778,6 +778,20 @@ void Clang::AddARMTargetArgs(const ArgList &Args,
CmdArgs.push_back("-no-implicit-float");
}
+// Translate MIPS CPU name alias option to CPU name.
+static StringRef getMipsCPUFromAlias(const Arg &A) {
+ if (A.getOption().matches(options::OPT_mips32))
+ return "mips32";
+ if (A.getOption().matches(options::OPT_mips32r2))
+ return "mips32r2";
+ if (A.getOption().matches(options::OPT_mips64))
+ return "mips64";
+ if (A.getOption().matches(options::OPT_mips64r2))
+ return "mips64r2";
+ llvm_unreachable("Unexpected option");
+ return "";
+}
+
// Get CPU and ABI names. They are not independent
// so we have to calculate them together.
static void getMipsCPUAndABI(const ArgList &Args,
@@ -788,8 +802,13 @@ static void getMipsCPUAndABI(const ArgList &Args,
const char *DefMips64CPU = "mips64";
if (Arg *A = Args.getLastArg(options::OPT_march_EQ,
- options::OPT_mcpu_EQ))
- CPUName = A->getValue(Args);
+ options::OPT_mcpu_EQ,
+ options::OPT_mips_CPUs_Group)) {
+ if (A->getOption().matches(options::OPT_mips_CPUs_Group))
+ CPUName = getMipsCPUFromAlias(*A);
+ else
+ CPUName = A->getValue(Args);
+ }
if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ))
ABIName = A->getValue(Args);
OpenPOWER on IntegriCloud