diff options
author | Nathan Froyd <froydnj@codesourcery.com> | 2010-10-28 19:55:43 +0000 |
---|---|---|
committer | Nathan Froyd <froydnj@gcc.gnu.org> | 2010-10-28 19:55:43 +0000 |
commit | ce236858e339040a4814a70f62282ad5da7d9c34 (patch) | |
tree | 0286be11b6b6942b1dff408d44d6d1e2ff131a25 /gcc | |
parent | 24ef86d7ad359cbe86946ce7cbebe151169909c1 (diff) | |
download | gcc-ce236858e339040a4814a70f62282ad5da7d9c34.zip gcc-ce236858e339040a4814a70f62282ad5da7d9c34.tar.gz gcc-ce236858e339040a4814a70f62282ad5da7d9c34.tar.bz2 |
mn10300-protos.h (function_arg): Delete.
* config/mn10300/mn10300-protos.h (function_arg): Delete.
* config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
(FUNCTION_ARG_ADVANCE): Delete.
* config/mn10300/mn10300.c (function_arg): Rename to...
(mn10300_function_arg): ...this. Make static. Take a const_tree
and a bool.
(mn10300_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
From-SVN: r166036
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/config/mn10300/mn10300-protos.h | 4 | ||||
-rw-r--r-- | gcc/config/mn10300/mn10300.c | 21 | ||||
-rw-r--r-- | gcc/config/mn10300/mn10300.h | 25 |
4 files changed, 30 insertions, 31 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index daae755..709b364 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,16 @@ 2010-10-28 Nathan Froyd <froydnj@codesourcery.com> + * config/mn10300/mn10300-protos.h (function_arg): Delete. + * config/mn10300/mn10300.h (FUNCTION_ARG): Delete. + (FUNCTION_ARG_ADVANCE): Delete. + * config/mn10300/mn10300.c (function_arg): Rename to... + (mn10300_function_arg): ...this. Make static. Take a const_tree + and a bool. + (mn10300_function_arg_advance): New function. + (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define. + +2010-10-28 Nathan Froyd <froydnj@codesourcery.com> + * config/iq2000/iq2000-protos.h (function_arg): Delete. (function_arg_advance): Delete. * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete. diff --git a/gcc/config/mn10300/mn10300-protos.h b/gcc/config/mn10300/mn10300-protos.h index 23d428c..ebf915e 100644 --- a/gcc/config/mn10300/mn10300-protos.h +++ b/gcc/config/mn10300/mn10300-protos.h @@ -43,10 +43,6 @@ extern int mn10300_symbolic_operand (rtx, Mmode); extern bool mn10300_wide_const_load_uses_clr (rtx operands[2]); #endif /* RTX_CODE */ -#ifdef TREE_CODE -extern struct rtx_def * mn10300_function_arg (CUMULATIVE_ARGS *, Mmode, tree, int); -#endif /* TREE_CODE */ - extern int mn10300_can_use_return_insn (void); extern void mn10300_expand_prologue (void); extern void mn10300_expand_epilogue (void); diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c index 2187463..4599a10 100644 --- a/gcc/config/mn10300/mn10300.c +++ b/gcc/config/mn10300/mn10300.c @@ -1417,9 +1417,9 @@ mn10300_pass_by_reference (CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED, /* Return an RTX to represent where a value with mode MODE will be returned from a function. If the result is NULL_RTX, the argument is pushed. */ -rtx +static rtx mn10300_function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, - tree type, int named ATTRIBUTE_UNUSED) + const_tree type, bool named ATTRIBUTE_UNUSED) { rtx result = NULL_RTX; int size, align; @@ -1464,6 +1464,19 @@ mn10300_function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, return result; } +/* 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 may not be available.) */ + +static void +mn10300_function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode, + const_tree type, bool named ATTRIBUTE_UNUSED) +{ + cum->nbytes += (mode != BLKmode + ? (GET_MODE_SIZE (mode) + 3) & ~3 + : (int_size_in_bytes (type) + 3) & ~3); +} + /* Return the number of bytes of registers to use for an argument passed partially in registers and partially in memory. */ @@ -2303,6 +2316,10 @@ mn10300_select_cc_mode (rtx x) #define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true #undef TARGET_ARG_PARTIAL_BYTES #define TARGET_ARG_PARTIAL_BYTES mn10300_arg_partial_bytes +#undef TARGET_FUNCTION_ARG +#define TARGET_FUNCTION_ARG mn10300_function_arg +#undef TARGET_FUNCTION_ARG_ADVANCE +#define TARGET_FUNCTION_ARG_ADVANCE mn10300_function_arg_advance #undef TARGET_EXPAND_BUILTIN_SAVEREGS #define TARGET_EXPAND_BUILTIN_SAVEREGS mn10300_builtin_saveregs diff --git a/gcc/config/mn10300/mn10300.h b/gcc/config/mn10300/mn10300.h index 96a07e8..58f2719 100644 --- a/gcc/config/mn10300/mn10300.h +++ b/gcc/config/mn10300/mn10300.h @@ -534,31 +534,6 @@ struct cum_arg #define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT, N_NAMED_ARGS) \ ((CUM).nbytes = 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 may not be available.) */ - -#define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \ - ((CUM).nbytes += ((MODE) != BLKmode \ - ? (GET_MODE_SIZE (MODE) + 3) & ~3 \ - : (int_size_in_bytes (TYPE) + 3) & ~3)) - -/* Define where to put the arguments to a function. - Value is zero to push the argument on the stack, - or a hard register in which to store the argument. - - MODE is the argument's machine mode. - TYPE is the data type of the argument (as a tree). - This is null for libcalls where that information may - not be available. - CUM is a variable of type CUMULATIVE_ARGS which gives info about - the preceding args and about the function being called. - NAMED is nonzero if this argument is a named parameter - (otherwise it is an extra parameter matching an ellipsis). */ - -#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \ - mn10300_function_arg (&(CUM), MODE, TYPE, NAMED) - #define FUNCTION_VALUE_REGNO_P(N) mn10300_function_value_regno_p (N) #define DEFAULT_PCC_STRUCT_RETURN 0 |