diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2bd82c19dfac3312d1895ccc23f9a9b67fb68f4f..fb424bdad8f46cf2a2ab08ef44a6cbdd23b5a71a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2010-09-25 Anatoly Sokolov <aesok@post.ru> + + * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove. + * config/avr/avr-protos.h (class_likely_spilled_p): Remove. + * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define. + (class_likely_spilled_p): Rename to... + (avr_class_likely_spilled_p): ...this. Make static. Change argument + type to reg_class_t. + 2010-09-24 Jan Hubicka <jh@suse.cz> * lto-symtab.c (lto_symtab_entry_def): Add guessed field. diff --git a/gcc/config/avr/avr-protos.h b/gcc/config/avr/avr-protos.h index aa0c6614c5089e3d28f9a102ffb9fe2d5b9ec39a..83de685e76c7414538f138770f3219ebbfe4852c 100644 --- a/gcc/config/avr/avr-protos.h +++ b/gcc/config/avr/avr-protos.h @@ -24,7 +24,6 @@ extern int function_arg_regno_p (int r); extern void avr_cpu_cpp_builtins (struct cpp_reader * pfile); extern int avr_ret_register (void); -extern bool class_likely_spilled_p (int c); extern enum reg_class avr_regno_reg_class (int r); extern void asm_globalize_label (FILE *file, const char *name); extern void avr_asm_declare_function_name (FILE *, const char *, tree); diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index cabf678d8f9f91981318364ba3285c5baa449c6f..2c7a8ad020400833e077b5ae348ff01d1b25ee0a 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -92,6 +92,7 @@ static bool avr_hard_regno_scratch_ok (unsigned int); static unsigned int avr_case_values_threshold (void); static bool avr_frame_pointer_required_p (void); static bool avr_can_eliminate (const int, const int); +static bool avr_class_likely_spilled_p (reg_class_t c); /* Allocate registers from r25 to r8 for parameters for function calls. */ #define FIRST_CUM_REG 26 @@ -193,6 +194,9 @@ static const struct attribute_spec avr_attribute_table[] = #undef TARGET_CAN_ELIMINATE #define TARGET_CAN_ELIMINATE avr_can_eliminate +#undef TARGET_CLASS_LIKELY_SPILLED_P +#define TARGET_CLASS_LIKELY_SPILLED_P avr_class_likely_spilled_p + #undef TARGET_OPTION_OVERRIDE #define TARGET_OPTION_OVERRIDE avr_option_override @@ -4762,8 +4766,8 @@ gas_output_ascii(FILE *file, const char *str, size_t length) assigned to registers of class CLASS would likely be spilled because registers of CLASS are needed for spill registers. */ -bool -class_likely_spilled_p (int c) +static bool +avr_class_likely_spilled_p (reg_class_t c) { return (c != ALL_REGS && c != ADDW_REGS); } diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h index 92c197a6ab9b65777ab2d471b8e52231854fe382..60a589935170372d261ed93f6cb7291d6b7db6bf 100644 --- a/gcc/config/avr/avr.h +++ b/gcc/config/avr/avr.h @@ -333,8 +333,6 @@ enum reg_class { #define TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P hook_bool_mode_true -#define CLASS_LIKELY_SPILLED_P(c) class_likely_spilled_p(c) - #define CLASS_MAX_NREGS(CLASS, MODE) class_max_nregs (CLASS, MODE) #define STACK_PUSH_CODE POST_DEC