Hello,

another patch in preparation for the new ABI.

USE_FP_FOR_ARG_P and USE_ALTIVEC_FOR_ARG_P take a TYPE argument
which they never use.  Since passing a correct TYPE for the
homogeneous struct case would be a bit problematic, it seems
cleaner to just remove the unused argument.

No change in generated code intented.

Tested on powerpc64-linux and powerpc64le-linux.

OK for mainline?

Bye,
Ulrich


ChangeLog:

2013-11-11  Ulrich Weigand  <ulrich.weig...@de.ibm.com>

        * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Remove TYPE argument.
        (USE_ALTIVEC_FOR_ARG_P): Likewise.
        (rs6000_darwin64_record_arg_advance_recurse): Update uses.
        (rs6000_function_arg_advance_1):Likewise.
        (rs6000_darwin64_record_arg_recurse): Likewise.
        (rs6000_function_arg): Likewise.
        (rs6000_arg_partial_bytes): Likewise.

Index: gcc/gcc/config/rs6000/rs6000.c
===================================================================
--- gcc.orig/gcc/config/rs6000/rs6000.c
+++ gcc/gcc/config/rs6000/rs6000.c
@@ -8434,13 +8434,13 @@ rs6000_member_type_forces_blk (const_tre
 }
 
 /* Nonzero if we can use a floating-point register to pass this arg.  */
-#define USE_FP_FOR_ARG_P(CUM,MODE,TYPE)                \
+#define USE_FP_FOR_ARG_P(CUM,MODE)             \
   (SCALAR_FLOAT_MODE_P (MODE)                  \
    && (CUM)->fregno <= FP_ARG_MAX_REG          \
    && TARGET_HARD_FLOAT && TARGET_FPRS)
 
 /* Nonzero if we can use an AltiVec register to pass this arg.  */
-#define USE_ALTIVEC_FOR_ARG_P(CUM,MODE,TYPE,NAMED)             \
+#define USE_ALTIVEC_FOR_ARG_P(CUM,MODE,NAMED)                  \
   (ALTIVEC_OR_VSX_VECTOR_MODE (MODE)                           \
    && (CUM)->vregno <= ALTIVEC_ARG_MAX_REG                     \
    && TARGET_ALTIVEC_ABI                                       \
@@ -8889,7 +8889,7 @@ rs6000_darwin64_record_arg_advance_recur
 
        if (TREE_CODE (ftype) == RECORD_TYPE)
          rs6000_darwin64_record_arg_advance_recurse (cum, ftype, bitpos);
-       else if (USE_FP_FOR_ARG_P (cum, mode, ftype))
+       else if (USE_FP_FOR_ARG_P (cum, mode))
          {
            unsigned n_fpregs = (GET_MODE_SIZE (mode) + 7) >> 3;
            rs6000_darwin64_record_arg_advance_flush (cum, bitpos, 0);
@@ -8930,7 +8930,7 @@ rs6000_darwin64_record_arg_advance_recur
            else
              cum->words += n_fpregs;
          }
-       else if (USE_ALTIVEC_FOR_ARG_P (cum, mode, type, 1))
+       else if (USE_ALTIVEC_FOR_ARG_P (cum, mode, 1))
          {
            rs6000_darwin64_record_arg_advance_flush (cum, bitpos, 0);
            cum->vregno++;
@@ -8993,7 +8993,7 @@ rs6000_function_arg_advance_1 (CUMULATIV
     {
       bool stack = false;
 
-      if (USE_ALTIVEC_FOR_ARG_P (cum, mode, type, named))
+      if (USE_ALTIVEC_FOR_ARG_P (cum, mode, named))
        {
          cum->vregno++;
          if (!TARGET_ALTIVEC)
@@ -9366,7 +9366,7 @@ rs6000_darwin64_record_arg_recurse (CUMU
 
        if (TREE_CODE (ftype) == RECORD_TYPE)
          rs6000_darwin64_record_arg_recurse (cum, ftype, bitpos, rvec, k);
-       else if (cum->named && USE_FP_FOR_ARG_P (cum, mode, ftype))
+       else if (cum->named && USE_FP_FOR_ARG_P (cum, mode))
          {
            unsigned n_fpreg = (GET_MODE_SIZE (mode) + 7) >> 3;
 #if 0
@@ -9394,7 +9394,7 @@ rs6000_darwin64_record_arg_recurse (CUMU
            if (mode == TFmode || mode == TDmode)
              cum->fregno++;
          }
-       else if (cum->named && USE_ALTIVEC_FOR_ARG_P (cum, mode, ftype, 1))
+       else if (cum->named && USE_ALTIVEC_FOR_ARG_P (cum, mode, 1))
          {
            rs6000_darwin64_record_arg_flush (cum, bitpos, rvec, k);
            rvec[(*k)++]
@@ -9579,7 +9579,7 @@ rs6000_function_arg (cumulative_args_t c
       /* Else fall through to usual handling.  */
     }
 
-  if (USE_ALTIVEC_FOR_ARG_P (cum, mode, type, named))
+  if (USE_ALTIVEC_FOR_ARG_P (cum, mode, named))
     if (TARGET_64BIT && ! cum->prototype)
       {
        /* Vector parameters get passed in vector register
@@ -9707,7 +9707,7 @@ rs6000_function_arg (cumulative_args_t c
       if (mode == TDmode && (cum->fregno % 2) == 1)
        cum->fregno++;
 
-      if (USE_FP_FOR_ARG_P (cum, mode, type))
+      if (USE_FP_FOR_ARG_P (cum, mode))
        {
          rtx rvec[GP_ARG_NUM_REG + 1];
          rtx r;
@@ -9823,7 +9823,7 @@ rs6000_arg_partial_bytes (cumulative_arg
   if (DEFAULT_ABI == ABI_V4)
     return 0;
 
-  if (USE_ALTIVEC_FOR_ARG_P (cum, mode, type, named)
+  if (USE_ALTIVEC_FOR_ARG_P (cum, mode, named)
       && cum->nargs_prototype >= 0)
     return 0;
 
@@ -9833,7 +9833,7 @@ rs6000_arg_partial_bytes (cumulative_arg
 
   align_words = rs6000_parm_start (mode, type, cum->words);
 
-  if (USE_FP_FOR_ARG_P (cum, mode, type))
+  if (USE_FP_FOR_ARG_P (cum, mode))
     {
       /* If we are passing this arg in the fixed parameter save area
         (gprs or memory) as well as fprs, then this function should
-- 
  Dr. Ulrich Weigand
  GNU/Linux compilers and toolchain
  ulrich.weig...@de.ibm.com

Reply via email to