X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fmips%2Fbearch_mips.c;h=cf90a8048e24c67a1618c0188558a125a331b9db;hb=208809bd4713035389ccb0575b2592f52db6816b;hp=a2ce576ca851bdf222845c70614ee1d656eb08ce;hpb=2fc71e6885ece38578a6369ede997b804b092745;p=libfirm diff --git a/ir/be/mips/bearch_mips.c b/ir/be/mips/bearch_mips.c index a2ce576ca..cf90a8048 100644 --- a/ir/be/mips/bearch_mips.c +++ b/ir/be/mips/bearch_mips.c @@ -228,7 +228,7 @@ static arch_irn_flags_t mips_get_flags(const void *self, const ir_node *irn) { return 0; } -static entity *mips_get_frame_entity(const void *self, const ir_node *irn) { +static ir_entity *mips_get_frame_entity(const void *self, const ir_node *irn) { if(is_mips_load_r(irn) || is_mips_store_r(irn)) { mips_attr_t *attr = get_mips_attr(irn); @@ -238,7 +238,7 @@ static entity *mips_get_frame_entity(const void *self, const ir_node *irn) { return NULL; } -static void mips_set_frame_entity(const void *self, ir_node *irn, entity *ent) { +static void mips_set_frame_entity(const void *self, ir_node *irn, ir_entity *ent) { mips_attr_t *attr = get_mips_attr(irn); assert(is_mips_load_r(irn) || is_mips_store_r(irn)); attr->stack_entity = ent; @@ -517,12 +517,13 @@ static void mips_emit_and_done(void *self) { free(cg); } -static void *mips_cg_init(const be_irg_t *birg); +static void *mips_cg_init(be_irg_t *birg); static const arch_code_generator_if_t mips_code_gen_if = { mips_cg_init, NULL, /* before abi introduce */ mips_prepare_graph, + NULL, /* spill */ mips_before_sched, /* before scheduling hook */ mips_before_ra, /* before register allocation hook */ mips_after_ra, @@ -533,7 +534,7 @@ static const arch_code_generator_if_t mips_code_gen_if = { /** * Initializes the code generator. */ -static void *mips_cg_init(const be_irg_t *birg) { +static void *mips_cg_init(be_irg_t *birg) { mips_isa_t *isa = (mips_isa_t *)birg->main_env->arch_env->isa; mips_code_gen_t *cg = xmalloc(sizeof(*cg)); @@ -797,11 +798,11 @@ static ir_type *mips_abi_get_between_type(void *self) { static ir_type *debug_between_type = NULL; static ir_type *opt_between_type = NULL; - static entity *old_fp_ent = NULL; + static ir_entity *old_fp_ent = NULL; if(env->debug && debug_between_type == NULL) { - entity *a0_ent, *a1_ent, *a2_ent, *a3_ent; - entity *ret_addr_ent; + ir_entity *a0_ent, *a1_ent, *a2_ent, *a3_ent; + ir_entity *ret_addr_ent; ir_type *ret_addr_type = new_type_primitive(new_id_from_str("return_addr"), mode_P); ir_type *old_fp_type = new_type_primitive(new_id_from_str("fp"), mode_P); ir_type *old_param_type = new_type_primitive(new_id_from_str("param"), mode_Iu); @@ -814,21 +815,21 @@ static ir_type *mips_abi_get_between_type(void *self) { old_fp_ent = new_entity(debug_between_type, new_id_from_str("old_fp"), old_fp_type); ret_addr_ent = new_entity(debug_between_type, new_id_from_str("ret_addr"), ret_addr_type); - set_entity_offset_bytes(a0_ent, 0); - set_entity_offset_bytes(a1_ent, 4); - set_entity_offset_bytes(a2_ent, 8); - set_entity_offset_bytes(a3_ent, 12); - set_entity_offset_bytes(old_fp_ent, 16); - set_entity_offset_bytes(ret_addr_ent, 20); + set_entity_offset(a0_ent, 0); + set_entity_offset(a1_ent, 4); + set_entity_offset(a2_ent, 8); + set_entity_offset(a3_ent, 12); + set_entity_offset(old_fp_ent, 16); + set_entity_offset(ret_addr_ent, 20); set_type_size_bytes(debug_between_type, 24); } else if(!env->debug && opt_between_type == NULL) { ir_type *old_fp_type = new_type_primitive(new_id_from_str("fp"), mode_P); - entity *old_fp_ent; + ir_entity *old_fp_ent; opt_between_type = new_type_class(new_id_from_str("mips_between_type")); old_fp_ent = new_entity(opt_between_type, new_id_from_str("old_fp"), old_fp_type); - set_entity_offset_bytes(old_fp_ent, 0); + set_entity_offset(old_fp_ent, 0); set_type_size_bytes(opt_between_type, 4); } @@ -983,6 +984,7 @@ const arch_isa_if_t mips_isa_if = { mips_get_irn_handler, mips_get_code_generator_if, mips_get_list_sched_selector, + mips_get_ilp_sched_selector, mips_get_reg_class_alignment, mips_get_libfirm_params, mips_get_allowed_execution_units,