Commit 1c62e8f2 by Paolo Bonzini Committed by Paolo Bonzini

tm.texi (REGNO_OK_FOR_BASE_P, [...]): Mention strict/nonstrict difference.

2009-04-25  Paolo Bonzini  <bonzini@gnu.org>

	* doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
	REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
	REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.

From-SVN: r146765
parent 496a4ef5
2009-04-25 Paolo Bonzini <bonzini@gnu.org>
* doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
2009-04-25 Jan Hubicka <jh@suse.cz> 2009-04-25 Jan Hubicka <jh@suse.cz>
* tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels. * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
......
...@@ -2503,9 +2503,18 @@ added to another register (as well as added to a displacement). ...@@ -2503,9 +2503,18 @@ added to another register (as well as added to a displacement).
@defmac REGNO_OK_FOR_BASE_P (@var{num}) @defmac REGNO_OK_FOR_BASE_P (@var{num})
A C expression which is nonzero if register number @var{num} is A C expression which is nonzero if register number @var{num} is
suitable for use as a base register in operand addresses. It may be suitable for use as a base register in operand addresses.
either a suitable hard register or a pseudo register that has been Like @code{GO_IF_LEGITIMATE_ADDRESS}, this macro should also
allocated such a hard register. exist in strict or non-strict variants. Both variants behave
the same for hard register; for pseudos, the strict variant will
pass only those that have been allocated to a valid hard registers,
while the non-strict variant will pass all pseudos.
@findex REG_OK_STRICT
Compiler source files that want to use the strict variant of this and
other macros define the macro @code{REG_OK_STRICT}. You should use an
@code{#ifdef REG_OK_STRICT} conditional to define the strict variant in
that case and the non-strict variant otherwise.
@end defmac @end defmac
@defmac REGNO_MODE_OK_FOR_BASE_P (@var{num}, @var{mode}) @defmac REGNO_MODE_OK_FOR_BASE_P (@var{num}, @var{mode})
...@@ -2518,6 +2527,7 @@ you define this macro, the compiler will use it instead of ...@@ -2518,6 +2527,7 @@ you define this macro, the compiler will use it instead of
addresses that appear outside a @code{MEM}, i.e., as an addresses that appear outside a @code{MEM}, i.e., as an
@code{address_operand}. @code{address_operand}.
This macro also has strict and non-strict variants.
@end defmac @end defmac
@defmac REGNO_MODE_OK_FOR_REG_BASE_P (@var{num}, @var{mode}) @defmac REGNO_MODE_OK_FOR_REG_BASE_P (@var{num}, @var{mode})
...@@ -2530,6 +2540,8 @@ than other base register uses. ...@@ -2530,6 +2540,8 @@ than other base register uses.
Use of this macro is deprecated; please use the more general Use of this macro is deprecated; please use the more general
@code{REGNO_MODE_CODE_OK_FOR_BASE_P}. @code{REGNO_MODE_CODE_OK_FOR_BASE_P}.
This macro also has strict and non-strict variants.
@end defmac @end defmac
@defmac REGNO_MODE_CODE_OK_FOR_BASE_P (@var{num}, @var{mode}, @var{outer_code}, @var{index_code}) @defmac REGNO_MODE_CODE_OK_FOR_BASE_P (@var{num}, @var{mode}, @var{outer_code}, @var{index_code})
...@@ -2542,6 +2554,8 @@ address, @code{ADDRESS} for something that occurs in an ...@@ -2542,6 +2554,8 @@ address, @code{ADDRESS} for something that occurs in an
corresponding index expression if @var{outer_code} is @code{PLUS}; corresponding index expression if @var{outer_code} is @code{PLUS};
@code{SCRATCH} otherwise. The mode may be @code{VOIDmode} for addresses @code{SCRATCH} otherwise. The mode may be @code{VOIDmode} for addresses
that appear outside a @code{MEM}, i.e., as an @code{address_operand}. that appear outside a @code{MEM}, i.e., as an @code{address_operand}.
This macro also has strict and non-strict variants.
@end defmac @end defmac
@defmac REGNO_OK_FOR_INDEX_P (@var{num}) @defmac REGNO_OK_FOR_INDEX_P (@var{num})
...@@ -2558,6 +2572,8 @@ labeling is used must fit the machine's constraints of which registers ...@@ -2558,6 +2572,8 @@ labeling is used must fit the machine's constraints of which registers
may serve in each capacity. The compiler will try both labelings, may serve in each capacity. The compiler will try both labelings,
looking for one that is valid, and will reload one or both registers looking for one that is valid, and will reload one or both registers
only if neither labeling works. only if neither labeling works.
This macro also has strict and non-strict variants.
@end defmac @end defmac
@defmac PREFERRED_RELOAD_CLASS (@var{x}, @var{class}) @defmac PREFERRED_RELOAD_CLASS (@var{x}, @var{class})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment