aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/config/ia64/ia64.c10
-rw-r--r--gcc/config/m68hc11/m68hc11.c10
-rw-r--r--gcc/config/rs6000/rs6000.c10
-rw-r--r--gcc/config/sparc/sparc.c10
-rw-r--r--gcc/expr.h7
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.
diff --git a/gcc/expr.h b/gcc/expr.h
index 2037119..e3138a1 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -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