mirror of git://gcc.gnu.org/git/gcc.git
m32c-protos.h (m32c_function_arg): Delete.
* config/m32c/m32c-protos.h (m32c_function_arg): Delete. (m32c_function_arg_advance): Delete. * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete. * config/m32c/m32c.c (m32c_function_arg): Make static. Adjust comments. Take a const_tree and a bool. Declare. (m32c_function_arg_advance): Likewise. (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define. From-SVN: r163742
This commit is contained in:
parent
cecab05b77
commit
cd34bbe8b9
|
|
@ -1,3 +1,13 @@
|
|||
2010-09-01 Nathan Froyd <froydnj@codesourcery.com>
|
||||
|
||||
* config/m32c/m32c-protos.h (m32c_function_arg): Delete.
|
||||
(m32c_function_arg_advance): Delete.
|
||||
* config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
|
||||
* config/m32c/m32c.c (m32c_function_arg): Make static. Adjust
|
||||
comments. Take a const_tree and a bool. Declare.
|
||||
(m32c_function_arg_advance): Likewise.
|
||||
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
|
||||
|
||||
2010-09-01 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/45476
|
||||
|
|
|
|||
|
|
@ -46,12 +46,6 @@ int m32c_regno_ok_for_base_p (int);
|
|||
int m32c_trampoline_alignment (void);
|
||||
int m32c_trampoline_size (void);
|
||||
|
||||
#if defined(RTX_CODE) && defined(TREE_CODE)
|
||||
|
||||
rtx m32c_function_arg (CUMULATIVE_ARGS *, MM, tree, int);
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef RTX_CODE
|
||||
|
||||
int m32c_cannot_change_mode_class (MM, MM, int);
|
||||
|
|
@ -96,7 +90,6 @@ int m32c_split_psi_p (rtx *);
|
|||
|
||||
#ifdef TREE_CODE
|
||||
|
||||
void m32c_function_arg_advance (CUMULATIVE_ARGS *, MM, tree, int);
|
||||
tree m32c_gimplify_va_arg_expr (tree, tree, gimple_seq *, gimple_seq *);
|
||||
void m32c_init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree, int);
|
||||
bool m32c_promote_function_return (const_tree);
|
||||
|
|
|
|||
|
|
@ -73,8 +73,12 @@ static bool m32c_fixed_condition_code_regs (unsigned int *, unsigned int *);
|
|||
static struct machine_function *m32c_init_machine_status (void);
|
||||
static void m32c_insert_attributes (tree, tree *);
|
||||
static bool m32c_legitimate_address_p (enum machine_mode, rtx, bool);
|
||||
static rtx m32_function_arg (CUMULATIVE_ARGS *, enum machine_mode
|
||||
const_tree, bool);
|
||||
static bool m32c_pass_by_reference (CUMULATIVE_ARGS *, enum machine_mode,
|
||||
const_tree, bool);
|
||||
static void m32c_function_arg_advance (CUMULATIVE_ARGS *, enum machine_mode,
|
||||
const_tree, bool);
|
||||
static bool m32c_promote_prototypes (const_tree);
|
||||
static int m32c_pushm_popm (Push_Pop_Type);
|
||||
static bool m32c_strict_argument_naming (CUMULATIVE_ARGS *);
|
||||
|
|
@ -1453,10 +1457,11 @@ m32c_push_rounding (int n)
|
|||
|
||||
/* Passing Arguments in Registers */
|
||||
|
||||
/* Implements FUNCTION_ARG. Arguments are passed partly in registers,
|
||||
partly on stack. If our function returns a struct, a pointer to a
|
||||
buffer for it is at the top of the stack (last thing pushed). The
|
||||
first few real arguments may be in registers as follows:
|
||||
/* Implements TARGET_FUNCTION_ARG. Arguments are passed partly in
|
||||
registers, partly on stack. If our function returns a struct, a
|
||||
pointer to a buffer for it is at the top of the stack (last thing
|
||||
pushed). The first few real arguments may be in registers as
|
||||
follows:
|
||||
|
||||
R8C/M16C: arg1 in r1 if it's QI or HI (else it's pushed on stack)
|
||||
arg2 in r2 if it's HI (else pushed on stack)
|
||||
|
|
@ -1469,9 +1474,11 @@ m32c_push_rounding (int n)
|
|||
|
||||
Note that when arg1 doesn't fit in r1, arg2 may still be passed in
|
||||
r2 if it fits. */
|
||||
rtx
|
||||
#undef TARGET_FUNCTION_ARG
|
||||
#define TARGET_FUNCTION_ARG m32c_function_arg
|
||||
static rtx
|
||||
m32c_function_arg (CUMULATIVE_ARGS * ca,
|
||||
enum machine_mode mode, tree type, int named)
|
||||
enum machine_mode mode, const_tree type, bool named)
|
||||
{
|
||||
/* Can return a reg, parallel, or 0 for stack */
|
||||
rtx rv = NULL_RTX;
|
||||
|
|
@ -1544,15 +1551,17 @@ m32c_init_cumulative_args (CUMULATIVE_ARGS * ca,
|
|||
ca->parm_num = 1;
|
||||
}
|
||||
|
||||
/* Implements FUNCTION_ARG_ADVANCE. force_mem is set for functions
|
||||
returning structures, so we always reset that. Otherwise, we only
|
||||
need to know the sequence number of the argument to know what to do
|
||||
with it. */
|
||||
void
|
||||
/* Implements TARGET_FUNCTION_ARG_ADVANCE. force_mem is set for
|
||||
functions returning structures, so we always reset that. Otherwise,
|
||||
we only need to know the sequence number of the argument to know what
|
||||
to do with it. */
|
||||
#undef TARGET_FUNCTION_ARG_ADVANCE
|
||||
#define TARGET_FUNCTION_ARG_ADVANCE m32c_function_arg_advance
|
||||
static void
|
||||
m32c_function_arg_advance (CUMULATIVE_ARGS * ca,
|
||||
enum machine_mode mode ATTRIBUTE_UNUSED,
|
||||
tree type ATTRIBUTE_UNUSED,
|
||||
int named ATTRIBUTE_UNUSED)
|
||||
const_tree type ATTRIBUTE_UNUSED,
|
||||
bool named ATTRIBUTE_UNUSED)
|
||||
{
|
||||
if (ca->force_mem)
|
||||
ca->force_mem = 0;
|
||||
|
|
|
|||
|
|
@ -505,9 +505,6 @@ enum reg_class
|
|||
|
||||
/* Passing Arguments in Registers */
|
||||
|
||||
#define FUNCTION_ARG(CA,MODE,TYPE,NAMED) \
|
||||
m32c_function_arg (&(CA),MODE,TYPE,NAMED)
|
||||
|
||||
typedef struct m32c_cumulative_args
|
||||
{
|
||||
/* For address of return value buffer (structures are returned by
|
||||
|
|
@ -523,8 +520,6 @@ typedef struct m32c_cumulative_args
|
|||
#define CUMULATIVE_ARGS m32c_cumulative_args
|
||||
#define INIT_CUMULATIVE_ARGS(CA,FNTYPE,LIBNAME,FNDECL,N_NAMED_ARGS) \
|
||||
m32c_init_cumulative_args (&(CA),FNTYPE,LIBNAME,FNDECL,N_NAMED_ARGS)
|
||||
#define FUNCTION_ARG_ADVANCE(CA,MODE,TYPE,NAMED) \
|
||||
m32c_function_arg_advance (&(CA),MODE,TYPE,NAMED)
|
||||
#define FUNCTION_ARG_BOUNDARY(MODE,TYPE) (TARGET_A16 ? 8 : 16)
|
||||
#define FUNCTION_ARG_REGNO_P(r) m32c_function_arg_regno_p (r)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue