diff options
| author | Scott Douglass <sdouglass@arm.com> | 2015-03-23 10:54:24 +0000 |
|---|---|---|
| committer | Scott Douglass <sdouglass@arm.com> | 2015-03-23 10:54:24 +0000 |
| commit | 3205f521985dc6c53c3d1db0eb5b164fff85156c (patch) | |
| tree | f978086857e534d18b9946869f047e372fa7addc /clang/lib/Driver | |
| parent | d4cfffccc749d5e3a4aa3524697c95290576ab84 (diff) | |
| download | bcm5719-llvm-3205f521985dc6c53c3d1db0eb5b164fff85156c.tar.gz bcm5719-llvm-3205f521985dc6c53c3d1db0eb5b164fff85156c.zip | |
handle armeb/thumb/thumbeb consistently in gnutools::Assemble::ConstructJob
Differential Revision: http://reviews.llvm.org/D8196
llvm-svn: 232940
Diffstat (limited to 'clang/lib/Driver')
| -rw-r--r-- | clang/lib/Driver/Tools.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 5a07b1ac545..41134725921 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -7303,15 +7303,20 @@ void gnutools::Assemble::ConstructJob(Compilation &C, const JobAction &JA, case llvm::Triple::armeb: case llvm::Triple::thumb: case llvm::Triple::thumbeb: { - StringRef MArch = getToolChain().getArchName(); - if (MArch == "armv7" || MArch == "armv7a" || MArch == "armv7-a") + const llvm::Triple &Triple = getToolChain().getTriple(); + switch (Triple.getSubArch()) { + case llvm::Triple::ARMSubArch_v7: CmdArgs.push_back("-mfpu=neon"); - if (MArch == "armv8" || MArch == "armv8a" || MArch == "armv8-a" || - MArch == "armebv8" || MArch == "armebv8a" || MArch == "armebv8-a") + break; + case llvm::Triple::ARMSubArch_v8: CmdArgs.push_back("-mfpu=crypto-neon-fp-armv8"); + break; + default: + break; + } StringRef ARMFloatABI = tools::arm::getARMFloatABI( - getToolChain().getDriver(), Args, getToolChain().getTriple()); + getToolChain().getDriver(), Args, Triple); CmdArgs.push_back(Args.MakeArgString("-mfloat-abi=" + ARMFloatABI)); Args.AddLastArg(CmdArgs, options::OPT_march_EQ); |

