diff options
author | Joern Rennecke <amylaar@spamcop.net> | 2010-11-11 19:11:44 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 2010-11-11 19:11:44 +0000 |
commit | 77b0efff1d56d9579cb964b5f34a5eaddf146715 (patch) | |
tree | d3c5a27fdbc823c3b12b224f3ce343a40c01d045 /gcc | |
parent | d6f62adad78d4dcb1af8cbc8515b86a9a3e46076 (diff) | |
download | gcc-77b0efff1d56d9579cb964b5f34a5eaddf146715.zip gcc-77b0efff1d56d9579cb964b5f34a5eaddf146715.tar.gz gcc-77b0efff1d56d9579cb964b5f34a5eaddf146715.tar.bz2 |
re PR target/44749 (mep-elf fails to build)
PR target/44749
* config/mep/mep-protos.h (mep_legitimize_reload_address): Always
declare. Change type of argument four to type int.
(mep_secondary_input_reload_class): Returns enum reg_class.
(mep_secondary_output_reload_class): Likewise.
(mep_function_value): Change types of arguments to cont_tree.
* config/mep/mep.c (mep_legitimize_reload_address): Change type of
argument four to type int.
(mep_secondary_input_reload_class): Returns enum reg_class.
(mep_secondary_output_reload_class): Likewise.
(mep_function_value): Change types of arguments to cont_tree.
* config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
mep_regno_reg_class to enum reg_class.
From-SVN: r166614
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 16 | ||||
-rw-r--r-- | gcc/config/mep/mep-protos.h | 10 | ||||
-rw-r--r-- | gcc/config/mep/mep.c | 14 | ||||
-rw-r--r-- | gcc/config/mep/mep.h | 2 |
4 files changed, 29 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2cdcaf2..df496e3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,19 @@ +2010-11-11 Joern Rennecke <amylaar@spamcop.net> + + PR target/44749 + * config/mep/mep-protos.h (mep_legitimize_reload_address): Always + declare. Change type of argument four to type int. + (mep_secondary_input_reload_class): Returns enum reg_class. + (mep_secondary_output_reload_class): Likewise. + (mep_function_value): Change types of arguments to cont_tree. + * config/mep/mep.c (mep_legitimize_reload_address): Change type of + argument four to type int. + (mep_secondary_input_reload_class): Returns enum reg_class. + (mep_secondary_output_reload_class): Likewise. + (mep_function_value): Change types of arguments to cont_tree. + * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of + mep_regno_reg_class to enum reg_class. + 2010-11-11 Richard Henderson <rth@redhat.com> * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify diff --git a/gcc/config/mep/mep-protos.h b/gcc/config/mep/mep-protos.h index c8a0b9b..857e6f2 100644 --- a/gcc/config/mep/mep-protos.h +++ b/gcc/config/mep/mep-protos.h @@ -35,9 +35,7 @@ extern bool mep_vliw_jmp_match (rtx); extern bool mep_multi_slot (rtx); extern bool mep_legitimate_address (enum machine_mode, rtx, int); extern int mep_legitimize_address (rtx *, rtx, enum machine_mode); -#ifdef MAX_RELOADS -extern int mep_legitimize_reload_address (rtx *, enum machine_mode, int, enum reload_type, int); -#endif +extern int mep_legitimize_reload_address (rtx *, enum machine_mode, int, /*enum reload_type*/ int, int); extern int mep_core_address_length (rtx, int); extern int mep_cop_address_length (rtx, int); extern bool mep_expand_mov (rtx *, enum machine_mode); @@ -51,8 +49,8 @@ extern bool mep_legitimate_constant_p (rtx); extern const char *mep_emit_cbranch (rtx *, int); extern void mep_expand_call (rtx *, int); extern rtx mep_find_base_term (rtx); -extern int mep_secondary_input_reload_class (enum reg_class, enum machine_mode, rtx); -extern int mep_secondary_output_reload_class (enum reg_class, enum machine_mode, rtx); +extern enum reg_class mep_secondary_input_reload_class (enum reg_class, enum machine_mode, rtx); +extern enum reg_class mep_secondary_output_reload_class (enum reg_class, enum machine_mode, rtx); extern bool mep_secondary_memory_needed (enum reg_class, enum reg_class, enum machine_mode); extern void mep_expand_reload (rtx *, enum machine_mode); @@ -76,7 +74,7 @@ extern void mep_print_operand (FILE *, rtx, int); extern void mep_final_prescan_insn (rtx, rtx *, int); extern void mep_init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree); extern bool mep_return_in_memory (const_tree, const_tree); -extern rtx mep_function_value (tree, tree); +extern rtx mep_function_value (const_tree, const_tree); extern rtx mep_libcall_value (enum machine_mode); extern void mep_asm_output_opcode (FILE *, const char *); extern void mep_note_pragma_disinterrupt (const char *); diff --git a/gcc/config/mep/mep.c b/gcc/config/mep/mep.c index 62877d4..49954db 100644 --- a/gcc/config/mep/mep.c +++ b/gcc/config/mep/mep.c @@ -1270,9 +1270,11 @@ mep_legitimate_address (enum machine_mode mode, rtx x, int strict) int mep_legitimize_reload_address (rtx *x, enum machine_mode mode, int opnum, - enum reload_type type, + int type_i, int ind_levels ATTRIBUTE_UNUSED) { + enum reload_type type = (enum reload_type) type_i; + if (GET_CODE (*x) == PLUS && GET_CODE (XEXP (*x, 0)) == MEM && GET_CODE (XEXP (*x, 1)) == REG) @@ -2097,7 +2099,7 @@ mep_secondary_copro_reload_class (enum reg_class rclass, rtx x) /* Copying X to register in RCLASS. */ -int +enum reg_class mep_secondary_input_reload_class (enum reg_class rclass, enum machine_mode mode ATTRIBUTE_UNUSED, rtx x) @@ -2118,12 +2120,12 @@ mep_secondary_input_reload_class (enum reg_class rclass, #if DEBUG_RELOAD fprintf (stderr, " - requires %s\n", reg_class_names[rv]); #endif - return rv; + return (enum reg_class) rv; } /* Copying register in RCLASS to X. */ -int +enum reg_class mep_secondary_output_reload_class (enum reg_class rclass, enum machine_mode mode ATTRIBUTE_UNUSED, rtx x) @@ -2145,7 +2147,7 @@ mep_secondary_output_reload_class (enum reg_class rclass, fprintf (stderr, " - requires %s\n", reg_class_names[rv]); #endif - return rv; + return (enum reg_class) rv; } /* Implement SECONDARY_MEMORY_NEEDED. */ @@ -3804,7 +3806,7 @@ mep_narrow_volatile_bitfield (void) /* Implement FUNCTION_VALUE. All values are returned in $0. */ rtx -mep_function_value (tree type, tree func ATTRIBUTE_UNUSED) +mep_function_value (const_tree type, const_tree func ATTRIBUTE_UNUSED) { if (TARGET_IVC2 && VECTOR_TYPE_P (type)) return gen_rtx_REG (TYPE_MODE (type), 48); diff --git a/gcc/config/mep/mep.h b/gcc/config/mep/mep.h index 49b7f38..48d05b6 100644 --- a/gcc/config/mep/mep.h +++ b/gcc/config/mep/mep.h @@ -396,7 +396,7 @@ enum reg_class { 0xffffffff, 0xffffffff, 0xffffffff, 0x0001ffff }, /* ALL_REGS */ \ } -#define REGNO_REG_CLASS(REGNO) mep_regno_reg_class (REGNO) +#define REGNO_REG_CLASS(REGNO) (enum reg_class) mep_regno_reg_class (REGNO) #define IRA_COVER_CLASSES { GENERAL_REGS, CONTROL_REGS, CR_REGS, CCR_REGS, LIM_REG_CLASSES } |