X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fmips%2Fmips_transform.c;h=ff3ce37def3c10c857904c67921a88fbe56332c9;hb=74d50906a1f9328184ebf5007775693e0dffe92b;hp=d5dc9c629408dde3dcaaaeb73df51c09ae55aa6f;hpb=18dfdacb6faf2f93d4f6f9a6362584f8c7eb30a1;p=libfirm diff --git a/ir/be/mips/mips_transform.c b/ir/be/mips/mips_transform.c index d5dc9c629..ff3ce37de 100644 --- a/ir/be/mips/mips_transform.c +++ b/ir/be/mips/mips_transform.c @@ -53,15 +53,14 @@ return new_rd_mips_##mips_nodetype(env->dbg, env->irg, env->block, op1, op2, env->mode);\ } -MIPS_GENBINFUNC(add); -MIPS_GENBINFUNC(sub); -MIPS_GENBINFUNC(div); -MIPS_GENBINFUNC(and); -MIPS_GENBINFUNC(or); -MIPS_GENBINFUNC(xor); -MIPS_GENBINFUNC(sl); -MIPS_GENBINFUNC(sr); -MIPS_GENBINFUNC(sra); +MIPS_GENBINFUNC(add) +MIPS_GENBINFUNC(sub) +MIPS_GENBINFUNC(and) +MIPS_GENBINFUNC(or) +MIPS_GENBINFUNC(xor) +MIPS_GENBINFUNC(sl) +MIPS_GENBINFUNC(sr) +MIPS_GENBINFUNC(sra) #define MIPS_GENUNFUNC(mips_nodetype) \ static ir_node *mips_gen_##mips_nodetype(mips_transform_env_t *env, ir_node *op) { \ @@ -71,7 +70,7 @@ MIPS_GENBINFUNC(sra); return new_rd_mips_##mips_nodetype(env->dbg, env->irg, env->block, op, env->mode); \ } -MIPS_GENUNFUNC(not); +MIPS_GENUNFUNC(not) static ir_node* mips_get_reg_node(mips_transform_env_t *env, const arch_register_t *reg) { return be_abi_get_callee_save_irn(env->cg->birg->abi, reg); @@ -79,7 +78,7 @@ static ir_node* mips_get_reg_node(mips_transform_env_t *env, const arch_register static ir_node* gen_zero_node(mips_transform_env_t *env, dbg_info *ebg, ir_graph *irg, ir_node *block) { - ir_node *zero = be_abi_get_callee_save_irn(env->cg->birg->abi, &mips_general_purpose_regs[REG_ZERO]); + ir_node *zero = be_abi_get_callee_save_irn(env->cg->birg->abi, &mips_gp_regs[REG_ZERO]); // TODO make zero nodes work //ir_node *unknown = new_rd_mips_zero(dbg, irg, block, mode); @@ -128,7 +127,6 @@ static ir_node* exchange_node_for_Const(mips_transform_env_t *env, ir_node* pred ir_node *node = env->irn; dbg_info *dbg = get_irn_dbg_info(pred); ir_graph *irg = get_irn_irg(node); - ir_mode* mode = get_irn_mode(pred); ir_node *block; if(get_irn_opcode(node) == iro_Phi) { @@ -286,7 +284,6 @@ static ir_node *gen_node_for_Cond_Proj(mips_transform_env_t *env, ir_node* node, // replaced by a mips_ compare node ir_node *proj = get_Cond_selector(node); ir_node *original_cmp = get_irn_n(proj, 0); - ir_node *result = NULL; ir_node *cmp; ir_node *condjmp; ir_node *op1, *op2; @@ -419,6 +416,7 @@ static ir_node *gen_node_for_Cond(mips_transform_env_t *env) assert(get_mode_size_bits(selector_mode) == 32); + defaultproj = NULL; defaultprojn = get_Cond_defaultProj(node); // go over all projs to find min-&maxval of the switch @@ -497,7 +495,7 @@ static ir_node *gen_node_for_Cond(mips_transform_env_t *env) static ir_node *create_conv_store_load(mips_transform_env_t *env, ir_mode* srcmode, ir_mode* dstmode) { ir_node *nomem, *store, *mem_proj, *value_proj, *load; - entity *mem_entity; + ir_entity *mem_entity; ir_node *node = env->irn; ir_node *pred = get_Conv_op(node); ir_node *sp; @@ -512,7 +510,7 @@ static ir_node *create_conv_store_load(mips_transform_env_t *env, ir_mode* srcmo ptr_i32type = new_d_type_pointer(id, i32type, mode_P, env->dbg); mem_entity = new_d_entity(get_irg_frame_type(env->irg), id, ptr_i32type, env->dbg); - sp = mips_get_reg_node(env, &mips_general_purpose_regs[REG_SP]); + sp = mips_get_reg_node(env, &mips_gp_regs[REG_SP]); nomem = new_ir_node(env->dbg, env->irg, env->block, op_NoMem, mode_M, 0, NULL); store = new_rd_mips_store_r(env->dbg, env->irg, env->block, nomem, sp, pred, mode_T); @@ -853,13 +851,13 @@ static void mips_fix_CopyB_Proj(mips_transform_env_t* env) { } static void mips_transform_Spill(mips_transform_env_t* env) { - ir_node *node = env->irn; - ir_node *sched_point = NULL; - ir_node *store, *proj; - ir_node *nomem = new_rd_NoMem(env->irg); - ir_node *ptr = get_irn_n(node, 0); - ir_node *val = get_irn_n(node, 1); - entity *ent = be_get_frame_entity(node); + ir_node *node = env->irn; + ir_node *sched_point = NULL; + ir_node *store, *proj; + ir_node *nomem = new_rd_NoMem(env->irg); + ir_node *ptr = get_irn_n(node, 0); + ir_node *val = get_irn_n(node, 1); + ir_entity *ent = be_get_frame_entity(node); mips_attr_t *attr; if(sched_is_scheduled(node)) { @@ -884,14 +882,13 @@ static void mips_transform_Spill(mips_transform_env_t* env) { } static void mips_transform_Reload(mips_transform_env_t* env) { - ir_node *node = env->irn; - ir_node *sched_point = NULL; - ir_node *load, *proj; - ir_node *nomem = new_rd_NoMem(env->irg); - ir_node *ptr = get_irn_n(node, 0); - ir_node *mem = get_irn_n(node, 1); - ir_mode *mode = get_irn_mode(node); - entity *ent = be_get_frame_entity(node); + ir_node *node = env->irn; + ir_node *sched_point = NULL; + ir_node *load, *proj; + ir_node *ptr = get_irn_n(node, 0); + ir_node *mem = get_irn_n(node, 1); + ir_mode *mode = get_irn_mode(node); + ir_entity *ent = be_get_frame_entity(node); const arch_register_t* reg; mips_attr_t *attr; @@ -989,7 +986,7 @@ void mips_transform_node(ir_node *node, void *env) { tenv.dbg = get_irn_dbg_info(node); tenv.irg = current_ir_graph; tenv.irn = node; - tenv.mod = cgenv->mod; + DEBUG_ONLY(tenv.mod = cgenv->mod;) tenv.mode = get_irn_mode(node); tenv.cg = cgenv; @@ -1137,7 +1134,7 @@ void mips_pre_transform_node(ir_node *node, void *env) { tenv.dbg = get_irn_dbg_info(node); tenv.irg = current_ir_graph; tenv.irn = node; - tenv.mod = cgenv->mod; + DEBUG_ONLY(tenv.mod = cgenv->mod;) tenv.mode = get_irn_mode(node); tenv.cg = cgenv; @@ -1176,7 +1173,7 @@ void mips_after_ra_walker(ir_node *node, void *env) { tenv.dbg = get_irn_dbg_info(node); tenv.irg = current_ir_graph; tenv.irn = node; - tenv.mod = cg->mod; + DEBUG_ONLY(tenv.mod = cg->mod;) tenv.mode = get_irn_mode(node); tenv.cg = cg;