diff options
Diffstat (limited to 'gcc/md.texi')
-rw-r--r-- | gcc/md.texi | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/md.texi b/gcc/md.texi index f3f6cd6a3aa..6177ac2b55c 100644 --- a/gcc/md.texi +++ b/gcc/md.texi @@ -1746,14 +1746,20 @@ pseudo registers that did not get hard registers, while on other machines explicit memory references will get optional reloads. If a scratch register is required to move an object to or from memory, -it can be allocated using @code{gen_reg_rtx} prior to reload. But this -is impossible during and after reload. If there are cases needing +it can be allocated using @code{gen_reg_rtx} prior to life analysis. + +If there are cases needing scratch registers after reload, you must define @code{SECONDARY_INPUT_RELOAD_CLASS} and perhaps also @code{SECONDARY_OUTPUT_RELOAD_CLASS} to detect them, and provide patterns @samp{reload_in@var{m}} or @samp{reload_out@var{m}} to handle them. @xref{Register Classes}. +@findex no_new_pseudos +The global variable @code{no_new_pseudos} can be used to determine if it +is unsafe to create new pseudo registers. If this variable is nonzero, then +it is unsafe to call @code{gen_reg_rtx} to allocate a new pseudo. + The constraints on a @samp{mov@var{m}} must permit moving any hard register to any other hard register provided that @code{HARD_REGNO_MODE_OK} permits mode @var{m} in both registers and |