Factor out Hexagon code to build args.

This patch factor out the code in hexagon::Link::ConstructJob to be reused
in other functions. No functionality change intended.

llvm-svn: 236926
This commit is contained in:
Ikhlas Ajbar 2015-05-09 02:13:25 +00:00
parent f34f410e0a
commit 71d19f3cd6
1 changed files with 21 additions and 8 deletions

View File

@ -5444,17 +5444,16 @@ void hexagon::Link::RenderExtraToolArgs(const JobAction &JA,
// The types are (hopefully) good enough.
}
void hexagon::Link::ConstructJob(Compilation &C, const JobAction &JA,
static void constructHexagonLinkArgs(Compilation &C, const JobAction &JA,
const toolchains::Hexagon_TC& ToolChain,
const InputInfo &Output,
const InputInfoList &Inputs,
const ArgList &Args,
const char *LinkingOutput) const {
ArgStringList &CmdArgs,
const char *LinkingOutput) {
const toolchains::Hexagon_TC& ToolChain =
static_cast<const toolchains::Hexagon_TC&>(getToolChain());
const Driver &D = ToolChain.getDriver();
ArgStringList CmdArgs;
//----------------------------------------------------------------------------
//
@ -5600,6 +5599,20 @@ void hexagon::Link::ConstructJob(Compilation &C, const JobAction &JA,
std::string finiObj = useShared ? "/finiS.o" : "/fini.o";
CmdArgs.push_back(Args.MakeArgString(StartFilesDir + finiObj));
}
}
void hexagon::Link::ConstructJob(Compilation &C, const JobAction &JA,
const InputInfo &Output,
const InputInfoList &Inputs,
const ArgList &Args,
const char *LinkingOutput) const {
const toolchains::Hexagon_TC& ToolChain =
static_cast<const toolchains::Hexagon_TC&>(getToolChain());
ArgStringList CmdArgs;
constructHexagonLinkArgs(C, JA, ToolChain, Output, Inputs, Args, CmdArgs,
LinkingOutput);
std::string Linker = ToolChain.GetProgramPath("hexagon-ld");
C.addCommand(llvm::make_unique<Command>(JA, *this, Args.MakeArgString(Linker),