From 0fd818e75b938916df5a3202341c7f8fe30ca28a Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Thu, 29 Jan 2004 01:40:48 +0000 Subject: [PATCH] fr30.c (TARGET_PROMOTE_PROTOTYPES): New. * 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 | 8 ++++++++ gcc/config/fr30/fr30.c | 17 +++++++++++------ gcc/config/fr30/fr30.h | 20 ++------------------ 3 files changed, 21 insertions(+), 24 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index aad6684c79d..dec51aae885 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2004-01-28 Kazu Hirata + + * 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 * config/frv/frv-protos.h: Remove the prototype for diff --git a/gcc/config/fr30/fr30.c b/gcc/config/fr30/fr30.c index c702d0bbe28..a420fb19859 100644 --- a/gcc/config/fr30/fr30.c +++ b/gcc/config/fr30/fr30.c @@ -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; /* 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; diff --git a/gcc/config/fr30/fr30.h b/gcc/config/fr30/fr30.h index 845b4f1e111..8b71e3f68e8 100644 --- a/gcc/config/fr30/fr30.h +++ b/gcc/config/fr30/fr30.h @@ -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 /*}}}*/ /*{{{ 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 - /*}}}*/ /*{{{ Trampolines for Nested Functions. */ -- 2.30.2