Commit 0fd818e7 by Kazu Hirata Committed by Kazu Hirata

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
parent ba4aecd9
2004-01-28 Kazu Hirata <kazu@cs.umass.edu> 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 * config/frv/frv-protos.h: Remove the prototype for
frv_expand_builtin_saveregs. frv_expand_builtin_saveregs.
* config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise. * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
......
/* FR30 specific functions. /* 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. Contributed by Cygnus Solutions.
This file is part of GCC. This file is part of GCC.
...@@ -148,6 +149,9 @@ static rtx fr30_pass_by_value (tree, tree); ...@@ -148,6 +149,9 @@ static rtx fr30_pass_by_value (tree, tree);
#undef TARGET_ASM_ALIGNED_SI_OP #undef TARGET_ASM_ALIGNED_SI_OP
#define TARGET_ASM_ALIGNED_SI_OP "\t.word\t" #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; struct gcc_target targetm = TARGET_INITIALIZER;
/* Returns the number of bytes offset between FROM_REG and TO_REG /* 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, ...@@ -417,11 +421,12 @@ fr30_setup_incoming_varargs (CUMULATIVE_ARGS arg_regs_used_so_far,
if (mode == BLKmode) if (mode == BLKmode)
abort (); abort ();
#if STRICT_ARGUMENT_NAMING /* ??? This run-time test as well as the code inside the if
/* If STRICT_ARGUMENT_NAMING is true then the last named statement is probably unnecessary. */
arg must not be treated as an anonymous arg. */ if (targetm.calls.strict_argument_naming (&arg_regs_used_so_far))
arg_regs_used_so_far += fr30_num_arg_regs (int_mode, type); /* If TARGET_STRICT_ARGUMENT_NAMING returns true, then the last named
#endif 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; size = FR30_NUM_ARG_REGS - arg_regs_used_so_far;
......
/*{{{ Comment. */ /*{{{ Comment. */
/* Definitions of FR30 target. /* 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. Contributed by Cygnus Solutions.
This file is part of GCC. This file is part of GCC.
...@@ -602,12 +603,6 @@ enum reg_class ...@@ -602,12 +603,6 @@ enum reg_class
/*}}}*/ /*}}}*/
/*{{{ Passing Function Arguments on the Stack. */ /*{{{ 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 /* If defined, the maximum amount of space required for outgoing arguments will
be computed and placed into the variable be computed and placed into the variable
`current_function_outgoing_args_size'. No space will be pushed onto the `current_function_outgoing_args_size'. No space will be pushed onto the
...@@ -903,17 +898,6 @@ enum reg_class ...@@ -903,17 +898,6 @@ enum reg_class
if (! SECOND_TIME) \ if (! SECOND_TIME) \
fr30_setup_incoming_varargs (ARGS_SO_FAR, MODE, TYPE, & PRETEND_ARGS_SIZE) 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. */ /*{{{ Trampolines for Nested Functions. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment