summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorKevin Qin <Kevin.Qin@arm.com>2014-05-06 09:51:32 +0000
committerKevin Qin <Kevin.Qin@arm.com>2014-05-06 09:51:32 +0000
commite5cee260ce07f96a8bc8f82905bc319cc33106fe (patch)
tree12953537a839f8ccb7f191bba615efb645c7f18d /clang/lib/Driver/Tools.cpp
parent1353c3405dfad371a87144edbff2abe38ae24e07 (diff)
downloadbcm5719-llvm-e5cee260ce07f96a8bc8f82905bc319cc33106fe.tar.gz
bcm5719-llvm-e5cee260ce07f96a8bc8f82905bc319cc33106fe.zip
[PATCH] [ARM64] Enable alignment control option in front-end for ARM64.
This patch is to get "-mno-unaligned-access" and "-munaligned-access" work in front-end for ARM64 target. llvm-svn: 208075
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 247d0d8cfa1..99d15f72b9f 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -3391,10 +3391,18 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
options::OPT_munaligned_access)) {
if (A->getOption().matches(options::OPT_mno_unaligned_access)) {
CmdArgs.push_back("-backend-option");
- CmdArgs.push_back("-arm-strict-align");
+ if (getToolChain().getTriple().getArch() == llvm::Triple::arm64 ||
+ getToolChain().getTriple().getArch() == llvm::Triple::arm64_be)
+ CmdArgs.push_back("-arm64-strict-align");
+ else
+ CmdArgs.push_back("-arm-strict-align");
} else {
CmdArgs.push_back("-backend-option");
- CmdArgs.push_back("-arm-no-strict-align");
+ if (getToolChain().getTriple().getArch() == llvm::Triple::arm64 ||
+ getToolChain().getTriple().getArch() == llvm::Triple::arm64_be)
+ CmdArgs.push_back("-arm64-no-strict-align");
+ else
+ CmdArgs.push_back("-arm-no-strict-align");
}
}
}
OpenPOWER on IntegriCloud