diff options
author | Simon Atanasyan <simon@atanasyan.com> | 2013-03-28 11:36:22 +0000 |
---|---|---|
committer | Simon Atanasyan <simon@atanasyan.com> | 2013-03-28 11:36:22 +0000 |
commit | 66ceaa439a9a664c5587b01710694bc1d086650e (patch) | |
tree | 755dea0c63fcb3634a85a03b63f32f9185676ddc /clang/lib | |
parent | 3e73c8405055a38e8c4902f3d0c6f1c1319dbc6d (diff) | |
download | bcm5719-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.cpp | 15 |
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 || |