From d9a4ee007b9041817143d1fa761d5f2528818dd0 Mon Sep 17 00:00:00 2001 From: Jeffrey A Law Date: Wed, 24 Dec 1997 22:31:54 +0000 Subject: [PATCH] * expr.h (MUST_PASS_IN_STACK): Allow target port to override. From-SVN: r17230 --- gcc/ChangeLog | 4 ++++ gcc/expr.h | 2 ++ gcc/tm.texi | 7 +++++++ 3 files changed, 13 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fd3149d4700..575f9a569a1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Wed Dec 24 23:33:17 1997 Jeffrey A Law (law@cygnus.com) + + * expr.h (MUST_PASS_IN_STACK): Allow target port to override. + Wed Dec 24 23:12:14 1997 Jim Wilson * abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and TARGET_DEFAULT, diff --git a/gcc/expr.h b/gcc/expr.h index aec539a422f..62909c3c946 100644 --- a/gcc/expr.h +++ b/gcc/expr.h @@ -216,6 +216,7 @@ enum direction {none, upward, downward}; /* Value has this type. */ So a value padded in memory at the upper end can't go in a register. For a little-endian machine, the reverse is true. */ +#ifndef MUST_PASS_IN_STACK #define MUST_PASS_IN_STACK(MODE,TYPE) \ ((TYPE) != 0 \ && (TREE_CODE (TYPE_SIZE (TYPE)) != INTEGER_CST \ @@ -226,6 +227,7 @@ enum direction {none, upward, downward}; /* Value has this type. */ % (PARM_BOUNDARY / BITS_PER_UNIT))) \ && (FUNCTION_ARG_PADDING (MODE, TYPE) \ == (BYTES_BIG_ENDIAN ? upward : downward))))) +#endif /* Nonzero if type TYPE should be returned in memory. Most machines can use the following default definition. */ diff --git a/gcc/tm.texi b/gcc/tm.texi index e24a7e25f48..3a9b3108636 100644 --- a/gcc/tm.texi +++ b/gcc/tm.texi @@ -2696,6 +2696,13 @@ argument, the compiler will abort. If @code{REG_PARM_STACK_SPACE} is defined, the argument will be computed in the stack and then loaded into a register. +@findex MUST_PASS_IN_STACK +@item 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 +definition that is usually appropriate, refer to @file{expr.h} for additional +documentation. + @findex FUNCTION_INCOMING_ARG @item FUNCTION_INCOMING_ARG (@var{cum}, @var{mode}, @var{type}, @var{named}) Define this macro if the target machine has ``register windows'', so