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