X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fia32%2Fia32_finish.c;h=03c97572b58469af9417e92cbad80c98926e37e2;hb=66767b28a2e892aea789fdd8f97d8a5d8d51af21;hp=6bbbc64e26b4777e4a5f8533e1ddf96f2a2a981f;hpb=bb9f2e36362333c6635b89f5258171b06c786608;p=libfirm diff --git a/ir/be/ia32/ia32_finish.c b/ir/be/ia32/ia32_finish.c index 6bbbc64e2..03c97572b 100644 --- a/ir/be/ia32/ia32_finish.c +++ b/ir/be/ia32/ia32_finish.c @@ -68,12 +68,12 @@ static void ia32_transform_sub_to_neg_add(ir_node *irn, ia32_code_gen_t *cg) noreg = ia32_new_NoReg_gp(cg); noreg_fp = ia32_new_NoReg_xmm(cg); - nomem = new_rd_NoMem(cg->irg); + nomem = new_NoMem(); in1 = get_irn_n(irn, n_ia32_binary_left); in2 = get_irn_n(irn, n_ia32_binary_right); in1_reg = arch_get_irn_register(in1); in2_reg = arch_get_irn_register(in2); - out_reg = get_ia32_out_reg(irn, 0); + out_reg = arch_irn_get_register(irn, 0); irg = cg->irg; block = get_nodes_block(irn); @@ -92,7 +92,7 @@ static void ia32_transform_sub_to_neg_add(ir_node *irn, ia32_code_gen_t *cg) assert(get_irn_mode(irn) != mode_T); - res = new_rd_ia32_xXor(dbg, irg, block, noreg, noreg, nomem, in2, noreg_fp); + res = new_bd_ia32_xXor(dbg, block, noreg, noreg, nomem, in2, noreg_fp); size = get_mode_size_bits(op_mode); entity = ia32_gen_fp_known_const(size == 32 ? ia32_SSIGN : ia32_DSIGN); set_ia32_am_sc(res, entity); @@ -105,7 +105,7 @@ static void ia32_transform_sub_to_neg_add(ir_node *irn, ia32_code_gen_t *cg) sched_add_before(irn, res); /* generate the add */ - res = new_rd_ia32_xAdd(dbg, irg, block, noreg, noreg, nomem, res, in1); + res = new_bd_ia32_xAdd(dbg, block, noreg, noreg, nomem, res, in1); set_ia32_ls_mode(res, get_ia32_ls_mode(irn)); /* exchange the add and the sub */ @@ -135,14 +135,14 @@ static void ia32_transform_sub_to_neg_add(ir_node *irn, ia32_code_gen_t *cg) } if (flags_proj == NULL) { - res = new_rd_ia32_Neg(dbg, irg, block, in2); + res = new_bd_ia32_Neg(dbg, block, in2); arch_set_irn_register(res, in2_reg); /* add to schedule */ sched_add_before(irn, res); /* generate the add */ - res = new_rd_ia32_Add(dbg, irg, block, noreg, noreg, nomem, res, in1); + res = new_bd_ia32_Add(dbg, block, noreg, noreg, nomem, res, in1); arch_set_irn_register(res, out_reg); set_ia32_commutative(res); @@ -164,16 +164,15 @@ static void ia32_transform_sub_to_neg_add(ir_node *irn, ia32_code_gen_t *cg) * * a + -b = a + (~b + 1) would set the carry flag IF a == b ... */ - not = new_rd_ia32_Not(dbg, irg, block, in2); + not = new_bd_ia32_Not(dbg, block, in2); arch_set_irn_register(not, in2_reg); sched_add_before(irn, not); - stc = new_rd_ia32_Stc(dbg, irg, block); + stc = new_bd_ia32_Stc(dbg, block); arch_set_irn_register(stc, &ia32_flags_regs[REG_EFLAGS]); sched_add_before(irn, stc); - adc = new_rd_ia32_Adc(dbg, irg, block, noreg, noreg, nomem, not, - in1, stc); + adc = new_bd_ia32_Adc(dbg, block, noreg, noreg, nomem, not, in1, stc); arch_set_irn_register(adc, out_reg); sched_add_before(irn, adc); @@ -181,7 +180,7 @@ static void ia32_transform_sub_to_neg_add(ir_node *irn, ia32_code_gen_t *cg) adc_flags = new_r_Proj(irg, block, adc, mode_Iu, pn_ia32_Adc_flags); arch_set_irn_register(adc_flags, &ia32_flags_regs[REG_EFLAGS]); - cmc = new_rd_ia32_Cmc(dbg, irg, block, adc_flags); + cmc = new_bd_ia32_Cmc(dbg, block, adc_flags); arch_set_irn_register(cmc, &ia32_flags_regs[REG_EFLAGS]); sched_add_before(irn, cmc); @@ -197,7 +196,7 @@ static void ia32_transform_sub_to_neg_add(ir_node *irn, ia32_code_gen_t *cg) set_irn_mode(res, get_irn_mode(irn)); - SET_IA32_ORIG_NODE(res, ia32_get_old_node_name(cg, irn)); + SET_IA32_ORIG_NODE(res, irn); /* remove the old sub */ sched_remove(irn); @@ -258,7 +257,7 @@ static void assure_should_be_same_requirements(ia32_code_gen_t *cg, ir_node *in_node, *block; reqs = get_ia32_out_req_all(node); - n_res = get_ia32_n_res(node); + n_res = arch_irn_get_n_outs(node); block = get_nodes_block(node); /* check all OUT requirements, if there is a should_be_same */ @@ -280,7 +279,7 @@ static void assure_should_be_same_requirements(ia32_code_gen_t *cg, same_pos = get_first_same(req); /* get in and out register */ - out_reg = get_ia32_out_reg(node, i); + out_reg = arch_irn_get_register(node, i); in_node = get_irn_n(node, same_pos); in_reg = arch_get_irn_register(in_node); @@ -406,7 +405,7 @@ static void fix_am_source(ir_node *irn) return; reqs = get_ia32_out_req_all(irn); - n_res = get_ia32_n_res(irn); + n_res = arch_irn_get_n_outs(irn); for (i = 0; i < n_res; i++) { const arch_register_t *out_reg; @@ -419,7 +418,7 @@ static void fix_am_source(ir_node *irn) continue; /* get in and out register */ - out_reg = get_ia32_out_reg(irn, i); + out_reg = arch_irn_get_register(irn, i); same_pos = get_first_same(reqs[i]); same_node = get_irn_n(irn, same_pos); same_reg = arch_get_irn_register(same_node);