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
This commit is contained in:
parent
9c8860c370
commit
d3704c4668
6 changed files with 24 additions and 34 deletions
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue