summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2018-10-15 22:43:23 +0000
committerSimon Atanasyan <simon@atanasyan.com>2018-10-15 22:43:23 +0000
commitdb81c7b9c964db39bbc42749dc30316dd9f58eb8 (patch)
treec9fba593b08f8f80346179749bcebd13840e15a0 /clang/lib/Basic/Targets
parent6d92ca61f918456726b67d124499cbf0595ba335 (diff)
downloadbcm5719-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.h7
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";
OpenPOWER on IntegriCloud