* 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
+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
/* 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.
#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
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;
/*{{{ 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.
/*}}}*/ \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
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. */