diff options
author | Simon Atanasyan <satanasyan@mips.com> | 2012-09-21 20:19:32 +0000 |
---|---|---|
committer | Simon Atanasyan <satanasyan@mips.com> | 2012-09-21 20:19:32 +0000 |
commit | 2efe53e448097e2f0f6d4a248c8aabfb716fec61 (patch) | |
tree | 9cd8e0de5d4e9f6bdfd23de51ff2684f40edd3dd /clang/lib/Driver/Tools.cpp | |
parent | 55023de547129c5140e3db5a85797e69a072ebd2 (diff) | |
download | bcm5719-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.cpp | 23 |
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); |