aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorAnatoly Sokolov <aesok@post.ru>2010-05-12 23:08:31 +0400
committerAnatoly Sokolov <aesok@gcc.gnu.org>2010-05-12 23:08:31 +0400
commitcbda7dc6923547363e10787e6a58dfdd5cae5954 (patch)
treeab0664b99a156d91a202d107ee413a933ccb1249 /gcc/doc
parentdfe5f5b2b36092f0e07f3e7e58293c5e0565ced4 (diff)
downloadgcc-cbda7dc6923547363e10787e6a58dfdd5cae5954.zip
gcc-cbda7dc6923547363e10787e6a58dfdd5cae5954.tar.gz
gcc-cbda7dc6923547363e10787e6a58dfdd5cae5954.tar.bz2
target.h (struct gcc_target): Add mode_dependent_address_p field.
* target.h (struct gcc_target): Add mode_dependent_address_p field. * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New. (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P. * targhooks.c (default_mode_dependent_address_p): New function. * targhooks.h (default_mode_dependent_address_p): Declare function. * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New. (GO_IF_MODE_DEPENDENT_ADDRESS): Update. * recog.c: (mode_dependent_address_p): Call mode_dependent_address_p target hook. Change return type to bool. * recog.h: (mode_dependent_address_p): Change return type to bool. From-SVN: r159339
Diffstat (limited to 'gcc/doc')
-rw-r--r--gcc/doc/tm.texi19
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 96fc62c..6a998ed 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -5609,6 +5609,22 @@ It is not necessary for this macro to come up with a legitimate
address; but often a machine-dependent strategy can generate better code.
@end defmac
+@deftypefn {Target Hook} bool TARGET_MODE_DEPENDENT_ADDRESS_P (const_rtx @var{addr})
+This hook returns @code{true} if memory address @var{addr} can have
+different meanings depending on the machine mode of the memory
+reference it is used for or if the address is valid for some modes
+but not others.
+
+Autoincrement and autodecrement addresses typically have mode-dependent
+effects because the amount of the increment or decrement is the size
+of the operand being addressed. Some machines have other mode-dependent
+addresses. Many RISC machines have no mode-dependent addresses.
+
+You may assume that @var{addr} is a valid address for the machine.
+
+The default version of this hook returns @code{false}.
+@end deftypefn
+
@defmac GO_IF_MODE_DEPENDENT_ADDRESS (@var{addr}, @var{label})
A C statement or compound statement with a conditional @code{goto
@var{label};} executed if memory address @var{x} (an RTX) can have
@@ -5622,6 +5638,9 @@ of the operand being addressed. Some machines have other mode-dependent
addresses. Many RISC machines have no mode-dependent addresses.
You may assume that @var{addr} is a valid address for the machine.
+
+These are obsolete macros, replaced by the
+@code{TARGET_MODE_DEPENDENT_ADDRESS_P} target hook.
@end defmac
@defmac LEGITIMATE_CONSTANT_P (@var{x})