diff options
-rw-r--r-- | lib/Driver/Tools.cpp | 9 |
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 || |