calls.c (expand_call): Remove current_call_is_indirect nonsense.
authorJeff Law <law@gcc.gnu.org>
Fri, 29 Mar 1996 14:37:11 +0000 (07:37 -0700)
committerJeff Law <law@gcc.gnu.org>
Fri, 29 Mar 1996 14:37:11 +0000 (07:37 -0700)
* calls.c (expand_call): Remove current_call_is_indirect nonsense.
Add additional argument to INIT_CUMULATIVE_ARGS.
(emit_library_call): Likewise.
(emit_library_call_value): Likewise.
* expr.c (expand_builtin): Likewise.
* function.c (assign_parms): Likewise.
* cp/method.c (emit_thunk): Likewise.
* config/pa/pa.h (hppa_args): New field "indirect".
(INIT_CUMULATIVE_ARGS): Initialize "indirect" field.
(FUNCTION_ARG): Check "indirect" field, rather than
"current_call_is_indirect".
* All other backends updated with new argument to
INIT_CUMULATIVE_ARGS

From-SVN: r11641

34 files changed:
gcc/config/1750a/1750a.h
gcc/config/a29k/a29k.h
gcc/config/alpha/alpha.h
gcc/config/arm/arm.h
gcc/config/clipper/clipper.h
gcc/config/convex/convex.h
gcc/config/dsp16xx/dsp16xx.h
gcc/config/elxsi/elxsi.h
gcc/config/fx80/fx80.h
gcc/config/gmicro/gmicro.h
gcc/config/h8300/h8300.h
gcc/config/i370/i370.h
gcc/config/i386/i386.h
gcc/config/i860/i860.h
gcc/config/i960/i960.h
gcc/config/m68k/m68k.h
gcc/config/m68k/mot3300.h
gcc/config/m88k/m88k.h
gcc/config/mips/mips.h
gcc/config/ns32k/ns32k.h
gcc/config/pa/pa.h
gcc/config/pdp11/pdp11.h
gcc/config/pyr/pyr.h
gcc/config/romp/romp.h
gcc/config/rs6000/rs6000.h
gcc/config/sh/sh.h
gcc/config/sparc/sparc.h
gcc/config/spur/spur.h
gcc/config/tahoe/tahoe.h
gcc/config/vax/vax.h
gcc/config/we32k/we32k.h
gcc/cp/method.c
gcc/expr.c
gcc/function.c

index 15d167e99fa36e4d827863189c7dd541d335a3bd..364da8eb7ca1eb90b160dc9e8eb69a568f41983d 100644 (file)
@@ -517,7 +517,7 @@ enum reg_class { NO_REGS, R2, R0_1, INDEX_REGS, BASE_REGS, ALL_REGS, LIM_REG_CLA
 
    For 1750A, the offset starts at 0.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME)   ((CUM) = 0)
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)   ((CUM) = 0)
 
 /* Update the data in CUM to advance over an argument
    of mode MODE and data type TYPE.
index ce9fcff14d9241a38b92edb1f5c61722352d9a8c..b70e13de3299db0f76effa120b479e318ecf6bd1 100644 (file)
@@ -780,7 +780,7 @@ extern struct rtx_def *a29k_get_reloaded_address ();
    for a call to a function whose data type is FNTYPE.
    For a library call, FNTYPE is 0.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME)  (CUM) = 0
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)  (CUM) = 0
 
 /* Same, but called for incoming args.
 
index 3fd2fb7de37cdb21508599d73bda3a2313a546c5..7084661467fda81510398e1a511e22c5ff1f06fa 100644 (file)
@@ -872,7 +872,7 @@ enum reg_class { NO_REGS, GENERAL_REGS, FLOAT_REGS, ALL_REGS,
    for a call to a function whose data type is FNTYPE.
    For a library call, FNTYPE is 0.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME)  (CUM) = 0
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)  (CUM) = 0
 
 /* Define intermediate macro to compute the size (in registers) of an argument
    for the Alpha.  */
index 575f5f0ff7933a4907d64361f75a86b2ace617b0..e8da95735476668f3edb9fb6640110ef2c7668ad 100644 (file)
@@ -808,7 +808,7 @@ enum reg_class
    for a call to a function whose data type is FNTYPE.
    For a library call, FNTYPE is 0.
    On the ARM, the offset starts at 0.  */
-#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME)  \
+#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT)  \
   ((CUM) = (((FNTYPE) && aggregate_value_p (TREE_TYPE ((FNTYPE)))) ? 4 : 0))
 
 /* Update the data in CUM to advance over an argument
index 372c33c499751d52db4f6e88f03e77e8bf81ef44..9600df3417769d62b8aea3caea2aed20bbf02172 100644 (file)
@@ -461,7 +461,7 @@ struct _clipper_cum_args { int num; int size; };
 
    clipper passes the address of a struct in r0, set num = 1 in this case */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME) \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT) \
   ((CUM).num = ((FNTYPE) != 0 && aggregate_value_p (TREE_TYPE (FNTYPE))), \
    (CUM).size = 0)
 
index 0548f0f17644841bcecb9e0c51a103a098eb05ff..9e4f8d9b082b99053672188840370bd1634d0fec 100644 (file)
@@ -791,7 +791,7 @@ enum reg_class {
    for a call to a function whose data type is FNTYPE.
    For a library call, FNTYPE is 0. */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME) \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT) \
   ((CUM) = 0)
 
 /* Update the data in CUM to advance over an argument
index 25215c8bf0c8189c5859b34699883f9853e8c466..6590823e8199315e130c0cd62e44508c5496a486 100644 (file)
@@ -1192,7 +1192,7 @@ extern struct dsp16xx_frame_info current_frame_info;
 /* Initialize a variable CUM of type CUMULATIVE_ARGS
    for a call to a function whose data type is FNTYPE.
    For a library call, FNTYPE is 0. */
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME)  ((CUM) = 0)
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)  ((CUM) = 0)
 
 /* Update the data in CUM to advance over an argument
    of mode MODE and data type TYPE.
index a6955c137040a24128f336b7c3c250af28c937c0..30cab54b0e9217a1e11e00f74c42701b0ec9a891 100644 (file)
@@ -360,7 +360,7 @@ enum reg_class { NO_REGS, GENERAL_REGS, ALL_REGS, LIM_REG_CLASSES };
 
    On the vax, the offset starts at 0.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,x    \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,x,INDIRECT)    \
  ((CUM) = 0)
 
 /* Update the data in CUM to advance over an argument
index 82797fbb402f53ae11e23fe246a75ef829b8375c..59a31084dd634ed8af47a6898801ae7df29fad88 100644 (file)
@@ -503,7 +503,7 @@ extern enum reg_class regno_reg_class[];
 
    On the Alliant, the offset starts at 0.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME      \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
  ((CUM) = 0)
 
 /* Update the data in CUM to advance over an argument
index 7ee92571bba69a1999541eb6db45b5de181beef7..8b18bb09547cfee431c1e1bc5978e81d579e24f2 100644 (file)
@@ -516,7 +516,7 @@ extern enum reg_class regno_reg_class[];
 
    On the Gmicro, the offset starts at 0.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME      \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
  ((CUM) = 0)
 
 /* Update the data in CUM to advance over an argument
index 0babf4ac74a28f50226d5998cf8342bdcfb119aa..b1a44a7928070581b3ecc4e1b686136c2a5f6cf6 100644 (file)
@@ -579,7 +579,7 @@ struct cum_arg { int nbytes; struct rtx_def * libcall; };
 
    On the H8/300, the offset starts at 0.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME      \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
  ((CUM).nbytes = 0, (CUM).libcall = LIBNAME)
 
 /* Update the data in CUM to advance over an argument
index 3a660a7557579baa8b0a425556a2ea20e5c5a230..e728de124c16b58cb7df4e8b6afda0519d2781d1 100644 (file)
@@ -431,7 +431,7 @@ enum reg_class
    a function whose data type is FNTYPE.
    For a library call, FNTYPE is 0.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME)  ((CUM) = 0)
+#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT)  ((CUM) = 0)
 
 /* Update the data in CUM to advance over an argument of mode MODE and
    data type TYPE.  (TYPE is null for libcalls where that information
index 507671a86bd9ed97a17eeb7bd877d72a0afbd19d..3a419f782aac693f61af8ea0c93cec291acbb9e0 100644 (file)
@@ -903,7 +903,7 @@ typedef struct i386_args {
    for a call to a function whose data type is FNTYPE.
    For a library call, FNTYPE is 0.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME      \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
   (init_cumulative_args (&CUM, FNTYPE, LIBNAME))
 
 /* Update the data in CUM to advance over an argument
index d182b860da1b9df0511d4dfa9184dd3c63a355ed..eb8baf5b61f233cdc42c5ae094c3f66305c22e4a 100644 (file)
@@ -472,7 +472,7 @@ struct cumulative_args { int ints, floats; };
    when the function gets a structure-value-address as an
    invisible first argument.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME      \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
  ((CUM).ints = ((FNTYPE) != 0 && aggregate_value_p (TREE_TYPE ((FNTYPE))) \
                ? 4 : 0),                       \
   (CUM).floats = 0)
index 655a188cb37c4a2dece5c8f9f2c66d6e517d56f9..98657ba3ccc10f0a36eacade3bd9b08abe9fddc6 100644 (file)
@@ -803,7 +803,7 @@ struct cum_args { int ca_nregparms; int ca_nstackparms; };
 
    On 80960, the offset always starts at 0; the first parm reg is g0.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME      \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
   ((CUM).ca_nregparms = 0, (CUM).ca_nstackparms = 0)
 
 /* Update the data in CUM to advance over an argument
index a093b9f61fbe98b97e0b572129ce4f0a7c0f0a52..2c113303270f174782de02cf5f83b42db70cd256 100644 (file)
@@ -843,7 +843,7 @@ extern enum reg_class regno_reg_class[];
 
    On the m68k, the offset starts at 0.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME      \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
  ((CUM) = 0)
 
 /* Update the data in CUM to advance over an argument
index 8637c6d57628087bb82ff4b96b9665868c91270e..126d8eab1188c6948011a0505d8a46b19efa2d16 100644 (file)
@@ -762,7 +762,7 @@ struct sysV68_cumulative_args
 #define CUMULATIVE_ARGS struct sysV68_cumulative_args
 
 #undef INIT_CUMULATIVE_ARGS
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME      \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
 do {(CUM).offset = 0;\
 (CUM).libcall = (LIBNAME) && (*XSTR((LIBNAME), 0) == '*');} while(0)
 
index 1fb20dbb9c4eb13aa783742d229bf8703d2c16f8..a6d5525f2d5d76ef12d4468df78b85f112e820a6 100644 (file)
@@ -199,13 +199,13 @@ extern char * reg_names[];
    Redefined in sysv4.h, and luna.h.  */
 #define VERSION_INFO1  "88open OCS/BCS, "
 #ifndef VERSION_INFO2
-#define VERSION_INFO2   "$Revision: 1.66 $"
+#define VERSION_INFO2   "$Revision: 1.67 $"
 #endif
 
 #ifndef VERSION_STRING
 #define VERSION_STRING  version_string
 #ifdef __STDC__
-#define TM_RCS_ID      "@(#)" __FILE__ " $Revision: 1.66 $ " __DATE__
+#define TM_RCS_ID      "@(#)" __FILE__ " $Revision: 1.67 $ " __DATE__
 #else
 #define TM_RCS_ID      "$What: <@(#) m88k.h,v  1.1.1.2.2.2> $"
 #endif  /* __STDC__ */
@@ -1046,7 +1046,7 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS,
 
 /* Initialize a variable CUM of type CUMULATIVE_ARGS for a call to a
    function whose data type is FNTYPE.  For a library call, FNTYPE is 0. */
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME) ((CUM) = 0)
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT) ((CUM) = 0)
 
 /* A C statement (sans semicolon) to update the summarizer variable
    CUM to advance past an argument in the argument list.  The values
index 21693bab533032cefa370cac334bc0cd979509f8..7fa95c6a5a3f7d898c2a3589a4f6b260dc945929 100644 (file)
@@ -2002,7 +2002,7 @@ typedef struct mips_args {
 
 */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME)                       \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)              \
   init_cumulative_args (&CUM, FNTYPE, LIBNAME)                         \
 
 /* Update the data in CUM to advance over an argument
index 18a01c3573d2f617bf43b70b1311e706164a7c48..2f5109c9c8bcde0a80b638e6647388ad1724855a 100644 (file)
@@ -467,7 +467,7 @@ enum reg_class { NO_REGS, GENERAL_REGS, FLOAT_REGS, GEN_AND_FP_REGS,
 
    On the ns32k, the offset starts at 0.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME      \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
  ((CUM) = 0)
 
 /* Update the data in CUM to advance over an argument
index d63bf642b3e43a30bdfba674375082adca915efb..221f965d32d5a4de615c09e61b39876f19fe7dd8 100644 (file)
@@ -863,7 +863,7 @@ enum reg_class { NO_REGS, R1_REGS, GENERAL_REGS, FP_REGS, GENERAL_OR_FP_REGS,
    if any, which holds the structure-value-address).
    Thus 4 or more means all following args should go on the stack.  */
 
-struct hppa_args {int words, nargs_prototype; };
+struct hppa_args {int words, nargs_prototype, indirect; };
 
 #define CUMULATIVE_ARGS struct hppa_args
 
@@ -871,8 +871,9 @@ struct hppa_args {int words, nargs_prototype; };
    for a call to a function whose data type is FNTYPE.
    For a library call, FNTYPE is 0.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME) \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT) \
   (CUM).words = 0,                                                     \
+  (CUM).indirect = INDIRECT,                                           \
   (CUM).nargs_prototype = (FNTYPE && TYPE_ARG_TYPES (FNTYPE)           \
                           ? (list_length (TYPE_ARG_TYPES (FNTYPE)) - 1 \
                              + (TYPE_MODE (TREE_TYPE (FNTYPE)) == BLKmode \
@@ -963,13 +964,13 @@ struct hppa_args {int words, nargs_prototype; };
       || (CUM).nargs_prototype > 0)                                    \
       ? gen_rtx (REG, (MODE),                                          \
                 (FUNCTION_ARG_SIZE ((MODE), (TYPE)) > 1                \
-                 ? (((!current_call_is_indirect                        \
+                 ? (((!(CUM).indirect                                  \
                       || TARGET_PORTABLE_RUNTIME)                      \
                      && (MODE) == DFmode                               \
                      && ! TARGET_SOFT_FLOAT)                           \
                     ? ((CUM).words ? 38 : 34)                          \
                     : ((CUM).words ? 23 : 25))                         \
-                 : (((!current_call_is_indirect                        \
+                 : (((!(CUM).indirect                                  \
                       || TARGET_PORTABLE_RUNTIME)                      \
                      && (MODE) == SFmode                               \
                      && ! TARGET_SOFT_FLOAT)                           \
index a9d785f173a9b72d59a64f4d15e5dd90249721c7..f38a9a85b5540a0cd2fdfbfabcc39214af84c3f8 100644 (file)
@@ -598,7 +598,7 @@ maybe ac0 ? - as option someday! */
    when the function gets a structure-value-address as an
    invisible first argument.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME      \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
  ((CUM) = 0)
 
 /* Update the data in CUM to advance over an argument
index e59bd0acd1beca14bc6733070e18fe50daf58bd9..881956d2beb3674cf3598c19704b555bdea0ec10 100644 (file)
@@ -629,7 +629,7 @@ extern int inner_param_safe_helper();
    for a call to a function whose data type is FNTYPE.
    For a library call, FNTYPE is 0.   */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME      \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
   ((CUM) = (FNTYPE && !flag_pcc_struct_return          \
            && aggregate_value_p (TREE_TYPE (FNTYPE))))
 
index ce6664164d5fe2bb5160d16726de502f65053ff9..9fc6a4bfd024e5e8003d5b99c1f691d68ec296e0 100644 (file)
@@ -591,7 +591,7 @@ struct rt_cargs {int gregs, fregs; };
    when the function gets a structure-value-address as an
    invisible first argument.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME      \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
   (CUM).gregs = 0,                             \
   (CUM).fregs = 0
 
index 469a56208d50267a30973f638ac21efb3d0858ec..669dacbf885f454d5862803dacc14779872409c7 100644 (file)
@@ -1310,7 +1310,7 @@ typedef struct rs6000_args
    for a call to a function whose data type is FNTYPE.
    For a library call, FNTYPE is 0.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME) \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT) \
   init_cumulative_args (&CUM, FNTYPE, LIBNAME, FALSE)
 
 /* Similar, but when scanning the definition of a procedure.  We always
index cd10d842b42aeaa9a39cceea8a0f915989af4d7c..c2e81b44cc254d451726bb3986b0c9ffa9db9c19 100644 (file)
@@ -708,7 +708,7 @@ struct sh_args {
    On SH, the offset always starts at 0: the first parm reg is always
    the same reg.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME) \
+#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT) \
   do {                                                         \
     (CUM).arg_count[(int) SH_ARG_INT] = 0;                     \
     (CUM).arg_count[(int) SH_ARG_FLOAT] = 0;                   \
index 9e789c548e59547c925d717b3ac796c17bb1f5a3..e811359d4bd63c8afdf41cb05c84876e2420c0cd 100644 (file)
@@ -1460,7 +1460,7 @@ struct sparc_args {
 
 #if SPARC_ARCH64
 extern int sparc_arg_count,sparc_n_named_args;
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME)               \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
   do {                                                         \
     (CUM).arg_count[(int) SPARC_ARG_INT] = 0;                  \
     (CUM).arg_count[(int) SPARC_ARG_FLOAT] = 0;                        \
@@ -1476,7 +1476,7 @@ extern int sparc_arg_count,sparc_n_named_args;
        : 10000);                                               \
   } while (0)
 #else
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME) ((CUM) = 0)
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT) ((CUM) = 0)
 #endif
 
 /* Update the data in CUM to advance over an argument
index 54bcd1918c6de822dfabb6dda391379113f3cb56..75ddd4b631077948088559c62a3af58393d32d60 100644 (file)
@@ -415,7 +415,7 @@ enum reg_class { NO_REGS, GENERAL_REGS, FP_REGS, ALL_REGS, LIM_REG_CLASSES };
    when the function gets a structure-value-address as an
    invisible first argument.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME      \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
  ((CUM) = ((FNTYPE) != 0 && aggregate_value_p (TREE_TYPE ((FNTYPE)))))
 
 /* Update the data in CUM to advance over an argument
index 7eced776b3b3bda14390d116d1b8ce234e763bee..cd2b641a7f67e83362d69ab353ea88956a1840b8 100644 (file)
@@ -356,7 +356,7 @@ enum reg_class {NO_REGS,GENERAL_REGS,FPP_REG,ALL_REGS,LIM_REG_CLASSES};
 /* we just set CUM to 0 before the FUNCTION_ARG call. No matter what */
 /* we make it, FUNCTION_ARG will return 0 anyway                    */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME      \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
  ((CUM) = 0)
 
 /* all modes push their size rounded to the nearest word boundary */
index 10ba85509c661efa1d5e5e0cad6c1a944d2f351a..fd00fa75e7af9754b6a66e9415a5e11442b38179 100644 (file)
@@ -411,7 +411,7 @@ gen_rtx (PLUS, Pmode, frame, gen_rtx (CONST_INT, VOIDmode, 12))
 
    On the vax, the offset starts at 0.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME      \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
  ((CUM) = 0)
 
 /* Update the data in CUM to advance over an argument
index 90d4d5c1d1666fe0aac8899bc06ee992ebd17703..bf1364a697c93c31c56cd073e7b1c3e1cfa8c95a 100644 (file)
@@ -360,7 +360,7 @@ enum reg_class { NO_REGS, GENERAL_REGS,
 
    On the we32k, the offset starts at 0.  */
 
-#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME      \
+#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT)      \
  ((CUM) = 0)
 
 /* Update the data in CUM to advance over an argument
index c8732072d0a1eac71905790251326d75dfbc4ecf..a417e1c0d6131a3dff387518747d15d8c0d8a56b 100644 (file)
@@ -1880,7 +1880,6 @@ emit_thunk (thunk_fndecl)
   int delta = THUNK_DELTA (thunk_fndecl);
   int tem;
   int failure = 0;
-  int current_call_is_indirect = 0;    /* needed for HPPA FUNCTION_ARG */
 
   /* Used to remember which regs we need to emit a USE rtx for. */
   rtx need_use[FIRST_PSEUDO_REGISTER];
@@ -1913,7 +1912,7 @@ emit_thunk (thunk_fndecl)
   expand_start_bindings (1);
 
   /* Start updating where the next arg would go.  */
-  INIT_CUMULATIVE_ARGS (args_so_far, TREE_TYPE (function), NULL_RTX);
+  INIT_CUMULATIVE_ARGS (args_so_far, TREE_TYPE (function), NULL_RTX, 0);
   stack_args_size.constant = 0;
   stack_args_size.var = 0;
   /* SETUP for possible structure return address FIXME */
index 47735dabe70a4c124e0ac9aef7995692c10d9ce9..c3328a1677984f2d4242349418b55c80970f7ba1 100644 (file)
@@ -8631,7 +8631,7 @@ expand_builtin (exp, target, subtarget, mode, ignore)
        op0 = memory_address (FUNCTION_MODE, op0);
 
        INIT_CUMULATIVE_ARGS (args_so_far, NULL_TREE,
-                             gen_rtx (SYMBOL_REF, Pmode, "__dummy"));
+                             gen_rtx (SYMBOL_REF, Pmode, "__dummy"), 1);
        next_arg_reg = FUNCTION_ARG (args_so_far, VOIDmode, void_type_node, 1);
 
 #ifndef ACCUMULATE_OUTGOING_ARGS
index f6ffe09ce7a329d750106f1bff6b9dce2c5a5d21..150aa8e4936e8b3936140b1777fab67779a7917d 100644 (file)
@@ -3235,9 +3235,6 @@ assign_parms (fndecl, second_time)
   int nparmregs = list_length (fnargs) + LAST_VIRTUAL_REGISTER + 1;
   int varargs_setup = 0;
   rtx conversion_insns = 0;
-  /* FUNCTION_ARG may look at this variable.  Since this is not
-     expanding a call it will always be zero in this function.  */
-  int current_call_is_indirect = 0;
 
   /* Nonzero if the last arg is named `__builtin_va_alist',
      which is used on some machines for old-fashioned non-ANSI varargs.h;
@@ -3299,7 +3296,7 @@ assign_parms (fndecl, second_time)
 #ifdef INIT_CUMULATIVE_INCOMING_ARGS
   INIT_CUMULATIVE_INCOMING_ARGS (args_so_far, fntype, NULL_RTX);
 #else
-  INIT_CUMULATIVE_ARGS (args_so_far, fntype, NULL_RTX);
+  INIT_CUMULATIVE_ARGS (args_so_far, fntype, NULL_RTX, 0);
 #endif
 
   /* We haven't yet found an argument that we must push and pretend the