mirror of
https://gcc.gnu.org/git/gcc.git
synced 2025-01-17 01:04:11 +08:00
v850.c (TARGET_PROMOTE_PROTOTYPES): New.
* config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New. (TARGET_STRUCT_VALUE_RTX): Likewise. (TARGET_RETURN_IN_MEMORY): Likewise. (TARGET_SETUP_INCOMING_VARARGS): Likewise. (v850_return_in_memory): Likewise. (v850_setup_incoming_varargs): Likewise. * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove. (SETUP_INCOMING_VARARGS): Likewise. (RETURN_IN_MEMORY): Likewise. (STRUCT_VALUE): Likewise. From-SVN: r76831
This commit is contained in:
parent
0fd818e75b
commit
fb7bc7fb8a
@ -1,3 +1,16 @@
|
||||
2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
|
||||
(TARGET_STRUCT_VALUE_RTX): Likewise.
|
||||
(TARGET_RETURN_IN_MEMORY): Likewise.
|
||||
(TARGET_SETUP_INCOMING_VARARGS): Likewise.
|
||||
(v850_return_in_memory): Likewise.
|
||||
(v850_setup_incoming_varargs): Likewise.
|
||||
* config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
|
||||
(SETUP_INCOMING_VARARGS): Likewise.
|
||||
(RETURN_IN_MEMORY): Likewise.
|
||||
(STRUCT_VALUE): Likewise.
|
||||
|
||||
2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Subroutines for insn-output.c for NEC V850 series
|
||||
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Jeff Law (law@cygnus.com).
|
||||
|
||||
@ -64,6 +64,9 @@ static void v850_insert_attributes (tree, tree *);
|
||||
static void v850_select_section (tree, int, unsigned HOST_WIDE_INT);
|
||||
static void v850_encode_data_area (tree, rtx);
|
||||
static void v850_encode_section_info (tree, rtx, int);
|
||||
static bool v850_return_in_memory (tree, tree);
|
||||
static void v850_setup_incoming_varargs (CUMULATIVE_ARGS *, enum machine_mode,
|
||||
tree, int *, int);
|
||||
|
||||
/* Information about the various small memory areas. */
|
||||
struct small_memory_info small_memory[ (int)SMALL_MEMORY_max ] =
|
||||
@ -116,6 +119,17 @@ static int v850_interrupt_p = FALSE;
|
||||
#undef TARGET_MACHINE_DEPENDENT_REORG
|
||||
#define TARGET_MACHINE_DEPENDENT_REORG v850_reorg
|
||||
|
||||
#undef TARGET_PROMOTE_PROTOTYPES
|
||||
#define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_true
|
||||
|
||||
#undef TARGET_STRUCT_VALUE_RTX
|
||||
#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
|
||||
#undef TARGET_RETURN_IN_MEMORY
|
||||
#define TARGET_RETURN_IN_MEMORY v850_return_in_memory
|
||||
|
||||
#undef TARGET_SETUP_INCOMING_VARARGS
|
||||
#define TARGET_SETUP_INCOMING_VARARGS v850_setup_incoming_varargs
|
||||
|
||||
struct gcc_target targetm = TARGET_INITIALIZER;
|
||||
|
||||
/* Sometimes certain combinations of command options do not make
|
||||
@ -3397,3 +3411,24 @@ v850_select_section (tree exp,
|
||||
else
|
||||
readonly_data_section ();
|
||||
}
|
||||
|
||||
/* Worker function for TARGET_RETURN_IN_MEMORY. */
|
||||
|
||||
static bool
|
||||
v850_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED)
|
||||
{
|
||||
/* Return values > 8 bytes in length in memory. */
|
||||
return int_size_in_bytes (type) > 8 || TYPE_MODE (type) == BLKmode;
|
||||
}
|
||||
|
||||
/* Worker function for TARGET_SETUP_INCOMING_VARARGS. */
|
||||
|
||||
static void
|
||||
v850_setup_incoming_varargs (CUMULATIVE_ARGS *ca,
|
||||
enum machine_mode mode ATTRIBUTE_UNUSED,
|
||||
tree type ATTRIBUTE_UNUSED,
|
||||
int *pretend_arg_size ATTRIBUTE_UNUSED,
|
||||
int second_time ATTRIBUTE_UNUSED)
|
||||
{
|
||||
ca->anonymous_args = (!TARGET_GHS ? 1 : 0);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Definitions of target machine for GNU compiler. NEC V850 series
|
||||
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Jeff Law (law@cygnus.com).
|
||||
|
||||
@ -124,7 +124,7 @@ extern int target_flags;
|
||||
as GHS. We don't have enough documentation on their conventions
|
||||
to be compatible.
|
||||
|
||||
* Tests of SETUP_INCOMING_VARARGS need to be made runtime checks
|
||||
* Tests of TARGET_SETUP_INCOMING_VARARGS need to be made runtime checks
|
||||
since it depends on TARGET_GHS. */
|
||||
#define TARGET_GHS (target_flags & MASK_GHS)
|
||||
|
||||
@ -707,9 +707,6 @@ enum reg_class
|
||||
abort (); \
|
||||
}
|
||||
|
||||
/* A guess for the V850. */
|
||||
#define PROMOTE_PROTOTYPES 1
|
||||
|
||||
/* Keep the stack pointer constant throughout the function. */
|
||||
#define ACCUMULATE_OUTGOING_ARGS 1
|
||||
|
||||
@ -776,10 +773,6 @@ struct cum_arg { int nbytes; int anonymous_args; };
|
||||
space allocated by the caller. */
|
||||
#define OUTGOING_REG_PARM_STACK_SPACE
|
||||
|
||||
/* Do any setup necessary for varargs/stdargs functions. */
|
||||
#define SETUP_INCOMING_VARARGS(CUM, MODE, TYPE, PAS, SECOND) \
|
||||
(CUM).anonymous_args = (!TARGET_GHS ? 1 : 0);
|
||||
|
||||
/* Implement `va_arg'. */
|
||||
#define EXPAND_BUILTIN_VA_ARG(valist, type) \
|
||||
v850_va_arg (valist, type)
|
||||
@ -812,16 +805,7 @@ struct cum_arg { int nbytes; int anonymous_args; };
|
||||
|
||||
#define FUNCTION_VALUE_REGNO_P(N) ((N) == 10)
|
||||
|
||||
/* Return values > 8 bytes in length in memory. */
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 0
|
||||
#define RETURN_IN_MEMORY(TYPE) \
|
||||
(int_size_in_bytes (TYPE) > 8 || TYPE_MODE (TYPE) == BLKmode)
|
||||
|
||||
/* Register in which address to store a structure value
|
||||
is passed to a function. On the V850 it's passed as
|
||||
the first parameter. */
|
||||
|
||||
#define STRUCT_VALUE 0
|
||||
|
||||
/* EXIT_IGNORE_STACK should be nonzero if, when returning from a function,
|
||||
the stack pointer does not matter. The value is tested only in
|
||||
|
Loading…
Reference in New Issue
Block a user