summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorChristian Pirker <cpirker@a-bix.com>2014-04-10 13:55:51 +0000
committerChristian Pirker <cpirker@a-bix.com>2014-04-10 13:55:51 +0000
commit02c2e25d74ff30fd5b2f1d70943548f0c9a15767 (patch)
treefdad5835084611f542486041d32c8ab52e812aaa /clang/lib
parentb373e01d870071e963fef19441257988cfa923f9 (diff)
downloadbcm5719-llvm-02c2e25d74ff30fd5b2f1d70943548f0c9a15767.tar.gz
bcm5719-llvm-02c2e25d74ff30fd5b2f1d70943548f0c9a15767.zip
AArch64: Add command line option to select big or little endian
llvm-svn: 205966
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Driver/Driver.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 317b8220950..c7a0919f98a 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1862,18 +1862,24 @@ 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)) {
+ // Handle pseudo-target flags '-mlittle-endian'/'-EL' and
+ // '-mbig-endian'/'-EB'.
+ if (Arg *A = Args.getLastArg(options::OPT_mlittle_endian,
+ options::OPT_mbig_endian)) {
+ if (A->getOption().matches(options::OPT_mlittle_endian)) {
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::aarch64_be)
+ Target.setArch(llvm::Triple::aarch64);
} else {
if (Target.getArch() == llvm::Triple::mipsel)
Target.setArch(llvm::Triple::mips);
else if (Target.getArch() == llvm::Triple::mips64el)
Target.setArch(llvm::Triple::mips64);
+ else if (Target.getArch() == llvm::Triple::aarch64)
+ Target.setArch(llvm::Triple::aarch64_be);
}
}
OpenPOWER on IntegriCloud