summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2013-03-28 11:36:22 +0000
committerSimon Atanasyan <simon@atanasyan.com>2013-03-28 11:36:22 +0000
commit66ceaa439a9a664c5587b01710694bc1d086650e (patch)
tree755dea0c63fcb3634a85a03b63f32f9185676ddc /clang/lib
parent3e73c8405055a38e8c4902f3d0c6f1c1319dbc6d (diff)
downloadbcm5719-llvm-66ceaa439a9a664c5587b01710694bc1d086650e.tar.gz
bcm5719-llvm-66ceaa439a9a664c5587b01710694bc1d086650e.zip
[Mips] Handle pseudo-target flags '-EL' and '-EB' and properly adjust
toolchain flags for MIPS targets. llvm-svn: 178232
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Driver/Driver.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 29ed5cffaa5..4fb5502a483 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1653,6 +1653,21 @@ static llvm::Triple computeTargetTriple(StringRef DefaultTargetTriple,
}
}
+ // Handle pseudo-target flags '-EL' and '-EB'.
+ if (Arg *A = Args.getLastArg(options::OPT_EL, options::OPT_EB)) {
+ if (A->getOption().matches(options::OPT_EL)) {
+ if (Target.getArch() == llvm::Triple::mips)
+ Target.setArch(llvm::Triple::mipsel);
+ else if (Target.getArch() == llvm::Triple::mips64)
+ Target.setArch(llvm::Triple::mips64el);
+ } else {
+ if (Target.getArch() == llvm::Triple::mipsel)
+ Target.setArch(llvm::Triple::mips);
+ else if (Target.getArch() == llvm::Triple::mips64el)
+ Target.setArch(llvm::Triple::mips64);
+ }
+ }
+
// Skip further flag support on OSes which don't support '-m32' or '-m64'.
if (Target.getArchName() == "tce" ||
Target.getOS() == llvm::Triple::AuroraUX ||
OpenPOWER on IntegriCloud