From 73c8090f8e75d3ad794edab1a0cd5021cd88d191 Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Tue, 30 Jun 1998 10:45:56 -0400 Subject: [PATCH] tm.texi: document STACK_SAVEAREA_MODE. md.texi: update save_stack_* pattern description. From-SVN: r20844 --- gcc/md.texi | 17 +++++++++-------- gcc/tm.texi | 13 +++++++++++++ 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