Clarify LEGITIMIZE_RELOAD_ADDRESS issues a tad.

From-SVN: r18997
This commit is contained in:
Richard Henderson 1998-04-04 10:37:01 -08:00
parent 0022a94004
commit 39bdfaa056

View file

@ -4243,21 +4243,26 @@ LEGITIMIZE_RELOAD_ADDRESS appropriately, the intermediate addresses
generated for adjacent some stack slots can be made identical, and thus
be shared.
@findex strict_memory_address_p
The macro definition may use @code{strict_memory_address_p} to test if
the address has become legitimate.
@emph{Note}: This macro should be used with caution. It is necessary
to know something of how reload works in order to effectively use this,
and it is quite easy to produce macros that build in too much knowledge
of reload internals.
@findex push_reload
It may use @code{push_reload} to indicate parts that need reloading.
@var{opnum}, @var{type} and @var{ind_levels} are usually suitable to be
passed unaltered to push_reload.
The macro definition should use @code{push_reload} to indicate parts that
need reloading; @var{opnum}, @var{type} and @var{ind_levels} are usually
suitable to be passed unaltered to @code{push_reload}.
The code generated by this macro should not alter the substructure of
The code generated by this macro must not alter the substructure of
@var{x}. If it transforms @var{x} into a more legitimate form, it
should assign @var{x} (which will always be a C variable) a new value.
This also applies to parts that you change indirectly by calling
@code{push_reload}.
@findex strict_memory_address_p
The macro definition may use @code{strict_memory_address_p} to test if
the address has become legitimate.
@findex copy_rtx
If you want to change only a part of @var{x}, one standard way of doing
this is to use @code{copy_rtx}. Note, however, that is unshares only a
@ -4266,11 +4271,6 @@ top level, you'll need to replace first the top leve
It is not necessary for this macro to come up with a legitimate
address; but often a machine-dependent strategy can generate better code.
@emph{Note}: This macro should be used with caution. It is necessary
to know something of how reload works in order to effectively use this,
and it is quite easy to produce macros that build in too much knowledge
of reload internals.
@findex GO_IF_MODE_DEPENDENT_ADDRESS
@item GO_IF_MODE_DEPENDENT_ADDRESS (@var{addr}, @var{label})
A C statement or compound statement with a conditional @code{goto