]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
2009-04-25 Paolo Bonzini <bonzini@gnu.org>
authorbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 25 Apr 2009 10:20:58 +0000 (10:20 +0000)
committerbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 25 Apr 2009 10:20:58 +0000 (10:20 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146765 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/doc/tm.texi

index 8e5d8ec40844bc678e8c3f3ea1f2483590f9d1ab..afc41ccc87a9b4419bfca5071ac35031d1bc29a1 100644 (file)
@@ -1,3 +1,9 @@
+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>
 
        * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
index ae2ee51f241f217990ed712e1688b58c2d99da25..9c561b6e8a3513c2cf9c7c05a81b531baa92c3c3 100644 (file)
@@ -2503,9 +2503,18 @@ added to another register (as well as added to a displacement).
 
 @defmac REGNO_OK_FOR_BASE_P (@var{num})
 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
-either a suitable hard register or a pseudo register that has been
-allocated such a hard register.
+suitable for use as a base register in operand addresses.
+Like @code{GO_IF_LEGITIMATE_ADDRESS}, this macro should also
+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
 
 @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
 addresses that appear outside a @code{MEM}, i.e., as an
 @code{address_operand}.
 
+This macro also has strict and non-strict variants.
 @end defmac
 
 @defmac REGNO_MODE_OK_FOR_REG_BASE_P (@var{num}, @var{mode})
@@ -2530,6 +2540,8 @@ than other base register uses.
 
 Use of this macro is deprecated; please use the more general
 @code{REGNO_MODE_CODE_OK_FOR_BASE_P}.
+
+This macro also has strict and non-strict variants.
 @end defmac
 
 @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
 corresponding index expression if @var{outer_code} is @code{PLUS};
 @code{SCRATCH} otherwise.  The mode may be @code{VOIDmode} for addresses
 that appear outside a @code{MEM}, i.e., as an @code{address_operand}.
+
+This macro also has strict and non-strict variants.
 @end defmac
 
 @defmac REGNO_OK_FOR_INDEX_P (@var{num})
@@ -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,
 looking for one that is valid, and will reload one or both registers
 only if neither labeling works.
+
+This macro also has strict and non-strict variants.
 @end defmac
 
 @defmac PREFERRED_RELOAD_CLASS (@var{x}, @var{class})