diff options
author | Richard Henderson <rth@redhat.com> | 2004-07-13 00:45:09 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2004-07-13 00:45:09 -0700 |
commit | fe9841365eb7e2908f9ba6b18a85910ee9024a54 (patch) | |
tree | d6061a45fae079845a6d37d0db05d65b8eb6b121 /gcc/doc | |
parent | 29f1711877a0f3f6f7e36d22f4a53b0161591d4e (diff) | |
download | gcc-fe9841365eb7e2908f9ba6b18a85910ee9024a54.zip gcc-fe9841365eb7e2908f9ba6b18a85910ee9024a54.tar.gz gcc-fe9841365eb7e2908f9ba6b18a85910ee9024a54.tar.bz2 |
target-def.h (TARGET_MUST_PASS_IN_STACK): New.
* target-def.h (TARGET_MUST_PASS_IN_STACK): New.
* target.h (struct gcc_target): Add calls.must_pass_in_stack.
* expr.h (MUST_PASS_IN_STACK): Remove.
* system.h (MUST_PASS_IN_STACK): Poison.
* tree.h (must_pass_in_stack_var_size): Declare.
(must_pass_in_stack_var_size_or_pad): Declare.
* calls.c (must_pass_in_stack_var_size): New.
(must_pass_in_stack_var_size_or_pad): Rename from
default_must_pass_in_stack.
* config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
(TARGET_MUST_PASS_IN_STACK): New.
* config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
* config/fr30/fr30.c (fr30_must_pass_in_stack): New.
(TARGET_MUST_PASS_IN_STACK): New.
* config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
* config/frv/frv.c (frv_must_pass_in_stack): New.
(TARGET_MUST_PASS_IN_STACK): New.
* config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
* config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
* config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
(ix86_must_pass_in_stack): Make static.
* config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
* config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
* config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
* config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
* config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
* config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
* config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
(mcore_must_pass_on_stack): Remove.
* config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
* config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
* config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
* config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
* config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
* config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
* config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
* config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
(TARGET_MUST_PASS_IN_STACK): New.
* config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
* config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
* config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
* config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
* config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
* config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
* doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
MUST_PASS_IN_STACK.
* calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
config/xtensa/xtensa.c: Use target hook.
From-SVN: r84606
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/tm.texi | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 3bc86f3..28dfe7d 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -3669,9 +3669,9 @@ where some arguments are usually passed in registers, is to cause nameless arguments to be passed on the stack instead. This is done by making @code{FUNCTION_ARG} return 0 whenever @var{named} is 0. -@cindex @code{MUST_PASS_IN_STACK}, and @code{FUNCTION_ARG} +@cindex @code{TARGET_MUST_PASS_IN_STACK}, and @code{FUNCTION_ARG} @cindex @code{REG_PARM_STACK_SPACE}, and @code{FUNCTION_ARG} -You may use the macro @code{MUST_PASS_IN_STACK (@var{mode}, @var{type})} +You may use the hook @code{targetm.calls.must_pass_in_stack} in the definition of this macro to determine if this argument is of a type that must be passed in the stack. If @code{REG_PARM_STACK_SPACE} is not defined and @code{FUNCTION_ARG} returns nonzero for such an @@ -3680,12 +3680,12 @@ defined, the argument will be computed in the stack and then loaded into a register. @end defmac -@defmac MUST_PASS_IN_STACK (@var{mode}, @var{type}) -Define as a C expression that evaluates to nonzero if we do not know how -to pass TYPE solely in registers. The file @file{expr.h} defines a +@deftypefn {Target Hook} bool TARGET_MUST_PASS_IN_STACK (enum machine_mode @var{mode}, tree @var{type}) +This target hook should return @code{true} if we should not pass @var{type} +solely in registers. The file @file{expr.h} defines a definition that is usually appropriate, refer to @file{expr.h} for additional documentation. -@end defmac +@end deftypefn @defmac FUNCTION_INCOMING_ARG (@var{cum}, @var{mode}, @var{type}, @var{named}) Define this macro if the target machine has ``register windows'', so @@ -3734,7 +3734,7 @@ definition of this macro might be @smallexample #define FUNCTION_ARG_PASS_BY_REFERENCE\ (CUM, MODE, TYPE, NAMED) \ - MUST_PASS_IN_STACK (MODE, TYPE) + targetm.calls.must_pass_in_stack (MODE, TYPE) @end smallexample @c this is *still* too long. --mew 5feb93 @end defmac |