summaryrefslogtreecommitdiff
path: root/gcc/defaults.h
diff options
context:
space:
mode:
authorjanis <janis@138bc75d-0d04-0410-961f-82ee72b054a4>2001-12-11 23:04:36 +0000
committerjanis <janis@138bc75d-0d04-0410-961f-82ee72b054a4>2001-12-11 23:04:36 +0000
commit23551094631c8b413f1b8d81e05d854b96753f87 (patch)
tree204c988a001cb54478276500f93ea95df61d9865 /gcc/defaults.h
parent8e868a1f77efc24cc9056ed034c1baa343bd88f8 (diff)
downloadgcc-23551094631c8b413f1b8d81e05d854b96753f87.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47904 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/defaults.h')
-rw-r--r--gcc/defaults.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/defaults.h b/gcc/defaults.h
index f23b0ab8a43..ecfcedaaae2 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 */