diff options
| author | Simon Atanasyan <simon@atanasyan.com> | 2018-09-27 05:04:50 +0000 |
|---|---|---|
| committer | Simon Atanasyan <simon@atanasyan.com> | 2018-09-27 05:04:50 +0000 |
| commit | 0c0fb4b76559db8ba4c6dff9599300b0cc5fe3fe (patch) | |
| tree | eb6af55d21ba6f63ff9e90d6ed6192dfb7e23ad1 /clang/lib | |
| parent | b441be0924a32d37ba7213cbe3235690d2feaf26 (diff) | |
| download | bcm5719-llvm-0c0fb4b76559db8ba4c6dff9599300b0cc5fe3fe.tar.gz bcm5719-llvm-0c0fb4b76559db8ba4c6dff9599300b0cc5fe3fe.zip | |
[driver][mips] Adjust target triple accordingly to provided ABI name
Explicitly selected MIPS ABI using the `-mabi` option implies
corresponding target triple. For 'O32' ABI it's a 32-bit target triple
like `mips-linux-gnu`. For 'N32' and 'N64' ABIs it's a 64-bit target
triple like `mips64-linux-gnu`. This patch adjusts target triple
accordingly these rules like we do for pseudo-target flags '-m64',
'-m32' etc already.
Differential revision: https://reviews.llvm.org/D52290
llvm-svn: 343169
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Driver/Driver.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 4439e721f48..8266f92a3ad 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -481,6 +481,16 @@ static llvm::Triple computeTargetTriple(const Driver &D, Target.setVendorName("intel"); } + // If target is MIPS adjust the target triple + // accordingly to provided ABI name. + A = Args.getLastArg(options::OPT_mabi_EQ); + if (A && Target.isMIPS()) + Target = llvm::StringSwitch<llvm::Triple>(A->getValue()) + .Case("32", Target.get32BitArchVariant()) + .Case("n32", Target.get64BitArchVariant()) + .Case("64", Target.get64BitArchVariant()) + .Default(Target); + return Target; } |

