diff options
author | Simon Atanasyan <simon@atanasyan.com> | 2018-10-15 22:43:23 +0000 |
---|---|---|
committer | Simon Atanasyan <simon@atanasyan.com> | 2018-10-15 22:43:23 +0000 |
commit | db81c7b9c964db39bbc42749dc30316dd9f58eb8 (patch) | |
tree | c9fba593b08f8f80346179749bcebd13840e15a0 /clang/lib/Basic/Targets | |
parent | 6d92ca61f918456726b67d124499cbf0595ba335 (diff) | |
download | bcm5719-llvm-db81c7b9c964db39bbc42749dc30316dd9f58eb8.tar.gz bcm5719-llvm-db81c7b9c964db39bbc42749dc30316dd9f58eb8.zip |
[mips] Fix handling of GNUABIN32 environment in a target triple
The `GNUABIN32` environment in a target triple implies using the N32
ABI. This patch adds support for this environment and switches on N32
ABI if necessary.
Patch by Patch by YunQiang Su.
Differential revision: https://reviews.llvm.org/D51464
llvm-svn: 344570
Diffstat (limited to 'clang/lib/Basic/Targets')
-rw-r--r-- | clang/lib/Basic/Targets/Mips.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Basic/Targets/Mips.h b/clang/lib/Basic/Targets/Mips.h index fd1db5aa23d..f20780915d6 100644 --- a/clang/lib/Basic/Targets/Mips.h +++ b/clang/lib/Basic/Targets/Mips.h @@ -69,7 +69,12 @@ public: UseIndirectJumpHazard(false), FPMode(FPXX) { TheCXXABI.set(TargetCXXABI::GenericMIPS); - setABI(getTriple().isMIPS32() ? "o32" : "n64"); + if (Triple.isMIPS32()) + setABI("o32"); + else if (Triple.getEnvironment() == llvm::Triple::GNUABIN32) + setABI("n32"); + else + setABI("n64"); CPU = ABI == "o32" ? "mips32r2" : "mips64r2"; |