diff options
author | Steve Ellcey <sje@cup.hp.com> | 2001-12-11 23:04:36 +0000 |
---|---|---|
committer | Janis Johnson <janis@gcc.gnu.org> | 2001-12-11 23:04:36 +0000 |
commit | 0d7839daeef826108df3788cc82c198df2e56b2d (patch) | |
tree | 204c988a001cb54478276500f93ea95df61d9865 /gcc/defaults.h | |
parent | 81deb0a3e6fc4528d84b11356a470c4054b171a1 (diff) | |
download | gcc-0d7839daeef826108df3788cc82c198df2e56b2d.zip gcc-0d7839daeef826108df3788cc82c198df2e56b2d.tar.gz gcc-0d7839daeef826108df3788cc82c198df2e56b2d.tar.bz2 |
tm.texi (FUNCTION_ARG_REG_LITTLE_ENDIAN): New.
2001-12-11 Steve Ellcey <sje@cup.hp.com>
* doc/tm.texi (FUNCTION_ARG_REG_LITTLE_ENDIAN): New.
* defaults.h (FUNCTION_ARG_REG_LITTLE_ENDIAN): New.
* calls.c (store_unaligned_arguments_into_pseudos): Check
FUNCTION_ARG_REG_LITTLE_ENDIAN to see how structures
are passed/returned.
* expr.c (move_block_from_reg): Ditto.
(move_block_from_reg): Ditto.
(copy_blkmode_from_reg): Ditto.
* stmt.c (expand_return): Ditto.
* stor-layout.c (compute_record_mode): If
FUNCTION_ARG_REG_LITTLE_ENDIAN is set then check
MEMBER_TYPE_FORCES_BLK even if mode == VOIDmode.
* config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Set to true
so that Structures of one field are still treated as structures.
(FUNCTION_ARG_REG_LITTLE_ENDIAN): New, set it to true.
(FUNCTION_ARG_PADDING): Set to ia64_hpux_function_arg_padding().
(PAD_VARARGS_DOWN): Modify from default to not pad structures down.
* config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): New.
* config/ia64/ia64.c (ia64_hpux_function_arg_padding): New function
to special case handling of structure padding.
From-SVN: r47904
Diffstat (limited to 'gcc/defaults.h')
-rw-r--r-- | gcc/defaults.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/defaults.h b/gcc/defaults.h index f23b0ab..ecfceda 100644 --- a/gcc/defaults.h +++ b/gcc/defaults.h @@ -457,4 +457,14 @@ You Lose! You must define PREFERRED_DEBUGGING_TYPE! #define PREFERRED_DEBUGGING_TYPE NO_DEBUG #endif +/* This is set to 1 if BYTES_BIG_ENDIAN is defined but the target uses a + little-endian method of passing and returning structures in registers. + On the HP-UX IA64 and PA64 platforms structures are aligned differently + then integral values and setting this value to 1 will allow for the + special handling of structure arguments and return values in regs. */ + +#ifndef FUNCTION_ARG_REG_LITTLE_ENDIAN +#define FUNCTION_ARG_REG_LITTLE_ENDIAN 0 +#endif + #endif /* ! GCC_DEFAULTS_H */ |