summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2014-04-13 17:17:49 +0200
committerAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2014-05-09 23:20:49 +0200
commit27ce9ee3a559e45e635dcc9cc89c4283b75b1382 (patch)
treeb05c96f7ef897f031202938f6aeaa53df3d44637
parent6e57c5a48f500376eec5ba54633e79abe4ea6587 (diff)
downloadclang-27ce9ee3a559e45e635dcc9cc89c4283b75b1382.tar.gz
clang-27ce9ee3a559e45e635dcc9cc89c4283b75b1382.tar.bz2
clang-27ce9ee3a559e45e635dcc9cc89c4283b75b1382.tar.xz
[Embtk] gnutools::Assemble: ARM: set -mfpu with default configured when not specified on command line
Signed-off-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org>
-rw-r--r--lib/Driver/Tools.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index 15f7f2f0f4..48baeb11bc 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -6263,6 +6263,14 @@ void gnutools::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
getToolChain().getTriple());
CmdArgs.push_back(Args.MakeArgString("-mfloat-abi=" + ARMFloatABI));
llvm::Triple Triple = getToolChain().getTriple();
+ if (Args.hasArg(options::OPT_mfpu_EQ)) {
+ Args.AddLastArg(CmdArgs, options::OPT_mfpu_EQ);
+ } else if (Triple.getEnvironment() == llvm::Triple::GNUEABIHF &&
+ llvm::sys::hasDefaultTargetFpu()) {
+ StringRef MFPU = llvm::sys::getDefaultTargetFpu();
+ CmdArgs.push_back(Args.MakeArgString("-mfpu=" + MFPU));
+ }
+
if (Args.hasArg(options::OPT_mcpu_EQ)) {
Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
} else {
@@ -6270,7 +6278,6 @@ void gnutools::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
CmdArgs.push_back(Args.MakeArgString("-mcpu=" + MCPU));
}
Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
- Args.AddLastArg(CmdArgs, options::OPT_mfpu_EQ);
} else if (getToolChain().getArch() == llvm::Triple::mips ||
getToolChain().getArch() == llvm::Triple::mipsel ||
getToolChain().getArch() == llvm::Triple::mips64 ||