diff options
| author | Kevin Qin <Kevin.Qin@arm.com> | 2014-05-06 09:51:32 +0000 |
|---|---|---|
| committer | Kevin Qin <Kevin.Qin@arm.com> | 2014-05-06 09:51:32 +0000 |
| commit | e5cee260ce07f96a8bc8f82905bc319cc33106fe (patch) | |
| tree | 12953537a839f8ccb7f191bba615efb645c7f18d /clang/lib/Driver/Tools.cpp | |
| parent | 1353c3405dfad371a87144edbff2abe38ae24e07 (diff) | |
| download | bcm5719-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.cpp | 12 |
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"); } } } |

