diff options
| author | Renato Golin <renato.golin@linaro.org> | 2013-08-24 14:44:35 +0000 |
|---|---|---|
| committer | Renato Golin <renato.golin@linaro.org> | 2013-08-24 14:44:35 +0000 |
| commit | dbb77e60dc8b6dedd98804cd1667d2d295e306b6 (patch) | |
| tree | d12d135f11a64baa0ca6a27fe6e61b65a4936ec6 /clang/lib/Driver | |
| parent | 07f383f87aa756fb45c686af4ec1813abedb3c61 (diff) | |
| download | bcm5719-llvm-dbb77e60dc8b6dedd98804cd1667d2d295e306b6.tar.gz bcm5719-llvm-dbb77e60dc8b6dedd98804cd1667d2d295e306b6.zip | |
Add the -ffixed-r9 flag for ARM.
This patch adds the -ffixed-r9 flag to clang to instruct llvm to
globally preserve the contents of r9. The flag is added to the newly
created ARM specific group.
While at it, also place marm / mno-thumb in that group.
Patch by Jeroen Hofstee.
llvm-svn: 189174
Diffstat (limited to 'clang/lib/Driver')
| -rw-r--r-- | clang/lib/Driver/Tools.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 25be6b48b66..71cbcb292f7 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -795,6 +795,14 @@ void Clang::AddARMTargetArgs(const ArgList &Args, options::OPT_mno_implicit_float, true)) CmdArgs.push_back("-no-implicit-float"); + + // llvm does not support reserving registers in general. There is support + // for reserving r9 on ARM though (defined as a platform-specific register + // in ARM EABI). + if (Args.hasArg(options::OPT_ffixed_r9)) { + CmdArgs.push_back("-backend-option"); + CmdArgs.push_back("-arm-reserve-r9"); + } } // Translate MIPS CPU name alias option to CPU name. |

