diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2012-01-11 11:21:31 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2012-01-11 11:21:31 +0000 |
commit | 35dd732fdff0e31ef0a24d76b7106597862adfcf (patch) | |
tree | 79c6c16db894b483e0c1e849d7d3f8ff827e6bee /lib/Driver/Tools.cpp | |
parent | 8844f454c7e4606578b763255a35c3a213219141 (diff) |
Fix -mfpu parsing on ARM.
- Support gcc-compatible vfpv3 name in addition to vfp3.
- Support vfpv3-d16.
- Disable neon feature for -mfpu=vfp* (yes, we were emitting Neon instructions
for those!).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147943 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/Tools.cpp')
-rw-r--r-- | lib/Driver/Tools.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index a241712da9..1edc441496 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -660,12 +660,23 @@ void Clang::AddARMTargetArgs(const ArgList &Args, CmdArgs.push_back("-vfp3"); CmdArgs.push_back("-target-feature"); CmdArgs.push_back("-neon"); + } else if (FPU == "vfp3-d16" || FPU == "vfpv3-d16") { + CmdArgs.push_back("-target-feature"); + CmdArgs.push_back("+vfp3"); + CmdArgs.push_back("-target-feature"); + CmdArgs.push_back("+d16"); + CmdArgs.push_back("-target-feature"); + CmdArgs.push_back("-neon"); } else if (FPU == "vfp") { CmdArgs.push_back("-target-feature"); CmdArgs.push_back("+vfp2"); - } else if (FPU == "vfp3") { + CmdArgs.push_back("-target-feature"); + CmdArgs.push_back("-neon"); + } else if (FPU == "vfp3" || FPU == "vfpv3") { CmdArgs.push_back("-target-feature"); CmdArgs.push_back("+vfp3"); + CmdArgs.push_back("-target-feature"); + CmdArgs.push_back("-neon"); } else if (FPU == "neon") { CmdArgs.push_back("-target-feature"); CmdArgs.push_back("+neon"); |