diff options
author | Jeffrey A Law <law@cygnus.com> | 1997-12-24 22:31:54 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1997-12-24 15:31:54 -0700 |
commit | d9a4ee007b9041817143d1fa761d5f2528818dd0 (patch) | |
tree | 445d6cc7b1e2c6973fb18054e37e65d6c5eb44ae /gcc | |
parent | 04bd620d207354e517075a6abc32db18986180a7 (diff) | |
download | gcc-d9a4ee007b9041817143d1fa761d5f2528818dd0.zip gcc-d9a4ee007b9041817143d1fa761d5f2528818dd0.tar.gz gcc-d9a4ee007b9041817143d1fa761d5f2528818dd0.tar.bz2 |
* expr.h (MUST_PASS_IN_STACK): Allow target port to override.
From-SVN: r17230
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/expr.h | 2 | ||||
-rw-r--r-- | gcc/tm.texi | 7 |
3 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fd3149d..575f9a5 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 <wilson@cygnus.com> * abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and TARGET_DEFAULT, @@ -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 e24a7e2..3a9b310 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 |