diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2003-09-15 20:23:43 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2003-09-15 20:23:43 +0000 |
commit | d3704c4668db2c8582f25f48b7b5e83aa50dc76f (patch) | |
tree | 2ca165b1d3df35c033fa152393bd0cd71a2bfef0 | |
parent | 9c8860c3701461d8f2ee6f875ea63d9b5c76baaa (diff) | |
download | gcc-d3704c4668db2c8582f25f48b7b5e83aa50dc76f.zip gcc-d3704c4668db2c8582f25f48b7b5e83aa50dc76f.tar.gz gcc-d3704c4668db2c8582f25f48b7b5e83aa50dc76f.tar.bz2 |
expr.h (DEFAULT_FUNCTION_ARG_PADDING): New.
* expr.h (DEFAULT_FUNCTION_ARG_PADDING): New.
(FUNCTION_ARG_PADDING): Use DEFAULT_FUNCTION_ARG_PADDING.
* config/ia64/ia64.c (ia64_hpux_function_arg_padding):
Likewise.
* config/m68hc11/m68hc11.c (m68hc11_function_arg_padding):
Likewise.
* config/rs6000/rs6000.c (function_arg_padding): Likewise.
* config/sparc/sparc.c (function_arg_padding): Likewise.
From-SVN: r71406
-rw-r--r-- | gcc/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.c | 10 | ||||
-rw-r--r-- | gcc/config/m68hc11/m68hc11.c | 10 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 10 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.c | 10 | ||||
-rw-r--r-- | gcc/expr.h | 7 |
6 files changed, 24 insertions, 34 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f649792..c7a5ed6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2003-09-15 Kazu Hirata <kazu@cs.umass.edu> + + * expr.h (DEFAULT_FUNCTION_ARG_PADDING): New. + (FUNCTION_ARG_PADDING): Use DEFAULT_FUNCTION_ARG_PADDING. + * config/ia64/ia64.c (ia64_hpux_function_arg_padding): + Likewise. + * config/m68hc11/m68hc11.c (m68hc11_function_arg_padding): + Likewise. + * config/rs6000/rs6000.c (function_arg_padding): Likewise. + * config/sparc/sparc.c (function_arg_padding): Likewise. + 2003-09-15 Vladimir Makarov <vmakarov@redhat.com> * haifa-sched.c (schedule_block): Use ready_remove_first instead diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index 56f2bb5..9ca874d 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -8248,14 +8248,8 @@ ia64_hpux_function_arg_padding (enum machine_mode mode, tree type) && int_size_in_bytes (type) < UNITS_PER_WORD) return upward; - /* This is the standard FUNCTION_ARG_PADDING with !BYTES_BIG_ENDIAN - hardwired to be true. */ - - return((mode == BLKmode - ? (type && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST - && int_size_in_bytes (type) < (PARM_BOUNDARY / BITS_PER_UNIT)) - : GET_MODE_BITSIZE (mode) < PARM_BOUNDARY) - ? downward : upward); + /* Fall back to the default. */ + return DEFAULT_FUNCTION_ARG_PADDING (mode, type); } /* Linked list of all external functions that are to be emitted by GCC. diff --git a/gcc/config/m68hc11/m68hc11.c b/gcc/config/m68hc11/m68hc11.c index 2787ce1..c97ea89 100644 --- a/gcc/config/m68hc11/m68hc11.c +++ b/gcc/config/m68hc11/m68hc11.c @@ -1582,14 +1582,8 @@ m68hc11_function_arg_padding (mode, type) if (type != 0 && AGGREGATE_TYPE_P (type)) return upward; - /* This is the default definition. */ - return (!BYTES_BIG_ENDIAN - ? upward - : ((mode == BLKmode - ? (type && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST - && int_size_in_bytes (type) < - (PARM_BOUNDARY / BITS_PER_UNIT)) : GET_MODE_BITSIZE (mode) < - PARM_BOUNDARY) ? downward : upward)); + /* Fall back to the default. */ + return DEFAULT_FUNCTION_ARG_PADDING (mode, type); } diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 0532f4f..ae702fc 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -3624,14 +3624,8 @@ function_arg_padding (enum machine_mode mode, tree type) return upward; } - /* This is the default definition. */ - return (! BYTES_BIG_ENDIAN - ? upward - : ((mode == BLKmode - ? (type && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST - && int_size_in_bytes (type) < (PARM_BOUNDARY / BITS_PER_UNIT)) - : GET_MODE_BITSIZE (mode) < PARM_BOUNDARY) - ? downward : upward)); + /* Fall back to the default. */ + return DEFAULT_FUNCTION_ARG_PADDING (mode, type); } /* If defined, a C expression that gives the alignment boundary, in bits, diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 4c4ea63..8441783 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -5541,14 +5541,8 @@ function_arg_padding (enum machine_mode mode, tree type) if (TARGET_ARCH64 && type != 0 && AGGREGATE_TYPE_P (type)) return upward; - /* This is the default definition. */ - return (! BYTES_BIG_ENDIAN - ? upward - : ((mode == BLKmode - ? (type && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST - && int_size_in_bytes (type) < (PARM_BOUNDARY / BITS_PER_UNIT)) - : GET_MODE_BITSIZE (mode) < PARM_BOUNDARY) - ? downward : upward)); + /* Fall back to the default. */ + return DEFAULT_FUNCTION_ARG_PADDING (mode, type); } /* Handle FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE, and LIBCALL_VALUE macros. @@ -142,8 +142,7 @@ do { \ usually pad upward, but pad short args downward on big-endian machines. */ -#ifndef FUNCTION_ARG_PADDING -#define FUNCTION_ARG_PADDING(MODE, TYPE) \ +#define DEFAULT_FUNCTION_ARG_PADDING(MODE, TYPE) \ (! BYTES_BIG_ENDIAN \ ? upward \ : (((MODE) == BLKmode \ @@ -151,6 +150,10 @@ do { \ && int_size_in_bytes (TYPE) < (PARM_BOUNDARY / BITS_PER_UNIT)) \ : GET_MODE_BITSIZE (MODE) < PARM_BOUNDARY) \ ? downward : upward)) + +#ifndef FUNCTION_ARG_PADDING +#define FUNCTION_ARG_PADDING(MODE, TYPE) \ + DEFAULT_FUNCTION_ARG_PADDING ((MODE), (TYPE)) #endif /* Supply a default definition for FUNCTION_ARG_BOUNDARY. Normally, we let |