diff options
author | Simon Dardis <simon.dardis@imgtec.com> | 2017-08-03 13:04:29 +0000 |
---|---|---|
committer | Simon Dardis <simon.dardis@imgtec.com> | 2017-08-03 13:04:29 +0000 |
commit | eeed000f622f11407536d7fd1b8cbd1e1d2c21ef (patch) | |
tree | 8aa3d84ad9cd0f0d17ba49b7eaccfa6c69950b4f /clang/lib | |
parent | eadf76d34ac579041f465acd134ca526ade4e510 (diff) | |
download | bcm5719-llvm-eeed000f622f11407536d7fd1b8cbd1e1d2c21ef.tar.gz bcm5719-llvm-eeed000f622f11407536d7fd1b8cbd1e1d2c21ef.zip |
[mips] Add support -m(no-)embedded-data option
Add support for the -membedded-data option which places constant data in
the .rodata section, rather than the .sdata section.
Reviewers: atanasyan, nitesh.jain
Differential Revision: https://reviews.llvm.org/D35914
llvm-svn: 309935
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Driver/ToolChains/Clang.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 16c700106ea..80fc9923d3b 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -1484,7 +1484,9 @@ void Clang::AddMIPSTargetArgs(const ArgList &Args, Arg *LocalSData = Args.getLastArg(options::OPT_mlocal_sdata, options::OPT_mno_local_sdata); Arg *ExternSData = Args.getLastArg(options::OPT_mextern_sdata, - options::OPT_mno_extern_sdata); + options::OPT_mno_extern_sdata); + Arg *EmbeddedData = Args.getLastArg(options::OPT_membedded_data, + options::OPT_mno_embedded_data); if (LocalSData) { CmdArgs.push_back("-mllvm"); if (LocalSData->getOption().matches(options::OPT_mlocal_sdata)) { @@ -1504,6 +1506,17 @@ void Clang::AddMIPSTargetArgs(const ArgList &Args, } ExternSData->claim(); } + + if (EmbeddedData) { + CmdArgs.push_back("-mllvm"); + if (EmbeddedData->getOption().matches(options::OPT_membedded_data)) { + CmdArgs.push_back("-membedded-data=1"); + } else { + CmdArgs.push_back("-membedded-data=0"); + } + EmbeddedData->claim(); + } + } else if ((!ABICalls || (!NoABICalls && ABICalls)) && WantGPOpt) D.Diag(diag::warn_drv_unsupported_gpopt) << (ABICalls ? 0 : 1); |