fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
authorKazu Hirata <kazu@cs.umass.edu>
Thu, 29 Jan 2004 01:40:48 +0000 (01:40 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Thu, 29 Jan 2004 01:40:48 +0000 (01:40 +0000)
* config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
(fr30_setup_incoming_varargs): Don't use
STRICT_ARGUMENT_NAMING.
* config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
(STRICT_ARGUMENT_NAMING): Likewise.

From-SVN: r76830

gcc/ChangeLog
gcc/config/fr30/fr30.c
gcc/config/fr30/fr30.h

index aad6684c79df0660b9e84a8ab065ade7517b1f1e..dec51aae8857ea165f926cdea4bd6c2cc882dffa 100644 (file)
@@ -1,3 +1,11 @@
+2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
+       (fr30_setup_incoming_varargs): Don't use
+       STRICT_ARGUMENT_NAMING.
+       * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
+       (STRICT_ARGUMENT_NAMING): Likewise.
+
 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
 
        * config/frv/frv-protos.h: Remove the prototype for
index c702d0bbe280fd93d7ffa10d548040d0c12a99f9..a420fb19859f863643fdcf7bd2437bf2a5b4f740 100644 (file)
@@ -1,5 +1,6 @@
 /* FR30 specific functions.
-   Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004
+   Free Software Foundation, Inc.
    Contributed by Cygnus Solutions.
 
    This file is part of GCC.
@@ -148,6 +149,9 @@ static rtx fr30_pass_by_value (tree, tree);
 #undef TARGET_ASM_ALIGNED_SI_OP
 #define TARGET_ASM_ALIGNED_SI_OP "\t.word\t"
 
+#undef TARGET_PROMOTE_PROTOTYPES
+#define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_true
+
 struct gcc_target targetm = TARGET_INITIALIZER;
 \f
 /* Returns the number of bytes offset between FROM_REG and TO_REG
@@ -417,11 +421,12 @@ fr30_setup_incoming_varargs (CUMULATIVE_ARGS arg_regs_used_so_far,
   if (mode == BLKmode)
     abort ();
 
-#if STRICT_ARGUMENT_NAMING
-  /* If STRICT_ARGUMENT_NAMING is true then the last named
-     arg must not be treated as an anonymous arg. */
-  arg_regs_used_so_far += fr30_num_arg_regs (int_mode, type);
-#endif
+  /* ??? This run-time test as well as the code inside the if
+     statement is probably unnecessary.  */
+  if (targetm.calls.strict_argument_naming (&arg_regs_used_so_far))
+    /* If TARGET_STRICT_ARGUMENT_NAMING returns true, then the last named
+       arg must not be treated as an anonymous arg. */
+    arg_regs_used_so_far += fr30_num_arg_regs (int_mode, type);
   
   size = FR30_NUM_ARG_REGS - arg_regs_used_so_far;
 
index 845b4f1e111c0763e3c88fb384c749d212e24bc6..8b71e3f68e851de169572df1052bccc79f6c47a3 100644 (file)
@@ -1,7 +1,8 @@
 /*{{{  Comment.  */ 
 
 /* Definitions of FR30 target. 
-   Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004
+   Free Software Foundation, Inc.
    Contributed by Cygnus Solutions.
 
 This file is part of GCC.
@@ -602,12 +603,6 @@ enum reg_class
 /*}}}*/ \f
 /*{{{  Passing Function Arguments on the Stack.  */ 
 
-/* Define this macro if an argument declared in a prototype as an integral type
-   smaller than `int' should actually be passed as an `int'.  In addition to
-   avoiding errors in certain cases of mismatch, it also makes for better code
-   on certain machines.  */
-#define PROMOTE_PROTOTYPES 1
-
 /* If defined, the maximum amount of space required for outgoing arguments will
    be computed and placed into the variable
    `current_function_outgoing_args_size'.  No space will be pushed onto the
@@ -903,17 +898,6 @@ enum reg_class
   if (! SECOND_TIME) \
     fr30_setup_incoming_varargs (ARGS_SO_FAR, MODE, TYPE, & PRETEND_ARGS_SIZE)
 
-/* Define this macro if the location where a function argument is passed
-   depends on whether or not it is a named argument.
-
-   This macro controls how the NAMED argument to `FUNCTION_ARG' is set for
-   varargs and stdarg functions.  With this macro defined, the NAMED argument
-   is always true for named arguments, and false for unnamed arguments.  If
-   this is not defined, but `SETUP_INCOMING_VARARGS' is defined, then all
-   arguments are treated as named.  Otherwise, all named arguments except the
-   last are treated as named.  */
-#define STRICT_ARGUMENT_NAMING 0
-
 /*}}}*/ \f
 /*{{{  Trampolines for Nested Functions.  */