* expr.h (MUST_PASS_IN_STACK): Allow target port to override.

From-SVN: r17230
This commit is contained in:
Jeffrey A Law 1997-12-24 22:31:54 +00:00 committed by Jeff Law
parent 04bd620d20
commit d9a4ee007b
3 changed files with 13 additions and 0 deletions

View file

@ -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 <wilson@cygnus.com>
* abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and TARGET_DEFAULT,

View file

@ -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. */

View file

@ -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