diff options
Diffstat (limited to 'gcc/config/picochip/picochip.c')
-rw-r--r-- | gcc/config/picochip/picochip.c | 38 |
1 files changed, 12 insertions, 26 deletions
diff --git a/gcc/config/picochip/picochip.c b/gcc/config/picochip/picochip.c index f755020b2f6..c3a7046763a 100644 --- a/gcc/config/picochip/picochip.c +++ b/gcc/config/picochip/picochip.c @@ -1,5 +1,5 @@ /* Subroutines used for code generation on picoChip processors. - Copyright (C) 2001, 2008, 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 2001, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. Contributed by Picochip Ltd. (http://www.picochip.com) Maintained by Daniel Towner (daniel.towner@picochip.com) and Hariharan Sandanagobalane (hariharan@picochip.com) @@ -77,16 +77,16 @@ void picochip_asm_file_end (void); void picochip_init_libfuncs (void); void picochip_reorg (void); -int picochip_arg_partial_bytes (CUMULATIVE_ARGS * p_cum, +int picochip_arg_partial_bytes (cumulative_args_t p_cum, enum machine_mode mode, tree type, bool named); -rtx picochip_function_arg (CUMULATIVE_ARGS * p_cum, +rtx picochip_function_arg (cumulative_args_t p_cum, enum machine_mode mode, const_tree type, bool named); -rtx picochip_incoming_function_arg (CUMULATIVE_ARGS * p_cum, +rtx picochip_incoming_function_arg (cumulative_args_t p_cum, enum machine_mode mode, const_tree type, bool named); -void picochip_arg_advance (CUMULATIVE_ARGS * p_cum, enum machine_mode mode, +void picochip_arg_advance (cumulative_args_t p_cum, enum machine_mode mode, const_tree type, bool named); unsigned int picochip_function_arg_boundary (enum machine_mode mode, const_tree type); @@ -192,13 +192,6 @@ static struct recog_data picochip_saved_recog_data; /* Determine which ALU to use for the instruction in picochip_current_prescan_insn. */ static char picochip_get_vliw_alu_id (void); - -/* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ -static const struct default_options picochip_option_optimization_table[] = - { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; /* Initialize the GCC target structure. */ @@ -250,9 +243,6 @@ static const struct default_options picochip_option_optimization_table[] = #undef TARGET_ASM_NAMED_SECTION #define TARGET_ASM_NAMED_SECTION picochip_asm_named_section -#undef TARGET_HAVE_NAMED_SECTIONS -#define TARGET_HAVE_NAMED_SECTIONS 1 - #undef TARGET_HAVE_SWITCHABLE_BSS_SECTIONS #define TARGET_HAVE_SWITCHABLE_BSS_SECTIONS 1 @@ -330,12 +320,6 @@ static const struct default_options picochip_option_optimization_table[] = #undef TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE #define TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE picochip_option_override -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE picochip_option_optimization_table - -#undef TARGET_EXCEPT_UNWIND_INFO -#define TARGET_EXCEPT_UNWIND_INFO sjlj_except_unwind_info - /* The 2nd scheduling pass option is switched off, and a machine dependent reorganisation ensures that it is run later on, after the second jump optimisation. */ @@ -837,9 +821,10 @@ picochip_compute_arg_size (const_tree type, enum machine_mode mode) /* Determine where the next outgoing arg should be placed. */ rtx -picochip_function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, +picochip_function_arg (cumulative_args_t cum_v, enum machine_mode mode, const_tree type, bool named ATTRIBUTE_UNUSED) { + CUMULATIVE_ARGS *cum = get_cumulative_args (cum_v); int reg = 0; int type_align_in_units = 0; int type_size_in_units; @@ -935,7 +920,7 @@ picochip_function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, passed in registers, which are then pushed onto the stack by the function prologue). */ rtx -picochip_incoming_function_arg (CUMULATIVE_ARGS *cum, +picochip_incoming_function_arg (cumulative_args_t cum, enum machine_mode mode, const_tree type, bool named) { @@ -969,7 +954,7 @@ picochip_function_arg_boundary (enum machine_mode mode, /* Compute partial registers. */ int -picochip_arg_partial_bytes (CUMULATIVE_ARGS * p_cum, enum machine_mode mode, +picochip_arg_partial_bytes (cumulative_args_t p_cum, enum machine_mode mode, tree type, bool named ATTRIBUTE_UNUSED) { int type_align_in_units = 0; @@ -977,7 +962,7 @@ picochip_arg_partial_bytes (CUMULATIVE_ARGS * p_cum, enum machine_mode mode, int new_offset = 0; int offset_overflow = 0; - unsigned cum = *((unsigned *) p_cum); + unsigned cum = *get_cumulative_args (p_cum); /* VOIDmode is passed when computing the second argument to a `call' pattern. This can be ignored. */ @@ -1025,9 +1010,10 @@ picochip_arg_partial_bytes (CUMULATIVE_ARGS * p_cum, enum machine_mode mode, /* Advance the cumulative args counter CUM. */ void -picochip_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode, +picochip_arg_advance (cumulative_args_t cum_v, enum machine_mode mode, const_tree type, bool named ATTRIBUTE_UNUSED) { + CUMULATIVE_ARGS *cum = get_cumulative_args (cum_v); int type_align_in_units = 0; int type_size_in_units; int new_offset = 0; |