* expr.h (DEFAULT_FUNCTION_ARG_PADDING): New.
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Sep 2003 20:23:43 +0000 (20:23 +0000)
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Sep 2003 20:23:43 +0000 (20:23 +0000)
(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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71406 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/ia64/ia64.c
gcc/config/m68hc11/m68hc11.c
gcc/config/rs6000/rs6000.c
gcc/config/sparc/sparc.c
gcc/expr.h

index f649792..c7a5ed6 100644 (file)
@@ -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
index 56f2bb5..9ca874d 100644 (file)
@@ -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.
index 2787ce1..c97ea89 100644 (file)
@@ -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);
 }
 \f
 
index 0532f4f..ae702fc 100644 (file)
@@ -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,
index 4c4ea63..8441783 100644 (file)
@@ -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.
index 2037119..e3138a1 100644 (file)
@@ -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