summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2014-04-19 18:34:50 +0200
committerAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2014-04-19 18:34:50 +0200
commitdd0fe97e0ad26f34cadfcaaf8e148b87673c0bec (patch)
tree1b40fe046d9f1f48c05af2633cb157f500ed809f
parentcfcd2bfd5fe31d41a752bc070025a416b61d314f (diff)
downloadclang-dd0fe97e0ad26f34cadfcaaf8e148b87673c0bec.tar.gz
clang-dd0fe97e0ad26f34cadfcaaf8e148b87673c0bec.tar.bz2
clang-dd0fe97e0ad26f34cadfcaaf8e148b87673c0bec.tar.xz
[Embtk] ARM/gnutools::Assemble: when no -mfpu is specficied use default configured if any
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 4043452181..d848535701 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -5826,6 +5826,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 {
@@ -5833,7 +5841,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 ||