aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@mhpcc.edu>1998-06-30 14:45:56 +0000
committerDavid Edelsohn <edelsohn@mhpcc.edu>1998-06-30 14:45:56 +0000
commit998f0a9128d180209ea096d0a26e89fd032e4a46 (patch)
treede7d9ac754f4158ed994cf6063ff0220c93487ec
parent1ae929e00c9ada997c69dc0a983dd0c25705d4db (diff)
tm.texi: document STACK_SAVEAREA_MODE.
md.texi: update save_stack_* pattern description. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@20844 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/md.texi17
-rw-r--r--gcc/tm.texi13
2 files changed, 22 insertions, 8 deletions
diff --git a/gcc/md.texi b/gcc/md.texi
index 2fcff2f0a18..a3ebe693e43 100644
--- a/gcc/md.texi
+++ b/gcc/md.texi
@@ -2412,14 +2412,15 @@ such required data.
@end enumerate
When saving the stack pointer, operand 0 is the save area and operand 1
-is the stack pointer. The mode used to allocate the save area is the
-mode of operand 0. You must specify an integral mode, or
-@code{VOIDmode} if no save area is needed for a particular type of save
-(either because no save is needed or because a machine-specific save
-area can be used). Operand 0 is the stack pointer and operand 1 is the
-save area for restore operations. If @samp{save_stack_block} is
-defined, operand 0 must not be @code{VOIDmode} since these saves can be
-arbitrarily nested.
+is the stack pointer. The mode used to allocate the save area defaults
+to @code{Pmode} but you can override that choice by defining the
+@code{STACK_SAVEAREA_MODE} macro (@pxref{Storage_Layout}). You must
+specify an integral mode, or @code{VOIDmode} if no save area is needed
+for a particular type of save (either because no save is needed or
+because a machine-specific save area can be used). Operand 0 is the
+stack pointer and operand 1 is the save area for restore operations. If
+@samp{save_stack_block} is defined, operand 0 must not be
+@code{VOIDmode} since these saves can be arbitrarily nested.
A save area is a @code{mem} that is at a constant offset from
@code{virtual_stack_vars_rtx} when the stack pointer is saved for use by
diff --git a/gcc/tm.texi b/gcc/tm.texi
index 0637a1adf80..78cc6ce496c 100644
--- a/gcc/tm.texi
+++ b/gcc/tm.texi
@@ -979,6 +979,19 @@ this size or smaller can be used for structures and unions with the
appropriate sizes. If this macro is undefined, @code{GET_MODE_BITSIZE
(DImode)} is assumed.
+@findex STACK_SAVEAREA_MODE
+@item STACK_SAVEAREA_MODE (@var{save_level})
+If defined, an expression of type @code{enum machine_mode} that
+specifies the mode of a @code{save_stack_@var{level}} named pattern
+(@pxref{Standard Names}). @var{save_level} is one of @code{SAVE_BLOCK},
+@code{SAVE_FUNCTION}, or @code{SAVE_NONLOCAL} and selects which of the
+three named patterns is having its mode specified.
+
+You need not define this macro if it always returns @code{Pmode}. You
+would most commonly define this macro if the
+@code{save_stack_@var{level}} patterns need to support both a 32- and a
+64-bit mode.
+
@findex CHECK_FLOAT_VALUE
@item CHECK_FLOAT_VALUE (@var{mode}, @var{value}, @var{overflow})
A C statement to validate the value @var{value} (of type