X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fia32%2Fia32_intrinsics.c;h=192a20241435b795f791f30178e84870b61eb47a;hb=248af0e1d8280f21f356bb148ecdf11f2e7a6093;hp=c8e9cbf583945d889e2166be72d515be9c166588;hpb=b7a0d752833eb7fb294ce90a27cbe01d06bbbc50;p=libfirm diff --git a/ir/be/ia32/ia32_intrinsics.c b/ir/be/ia32/ia32_intrinsics.c index c8e9cbf58..192a20241 100644 --- a/ir/be/ia32/ia32_intrinsics.c +++ b/ir/be/ia32/ia32_intrinsics.c @@ -70,9 +70,8 @@ void ia32_handle_intrinsics(void) * @param proj the pn_Call_T_result Proj * @param l_res the lower 32 bit result * @param h_res the upper 32 bit result or NULL - * @param irg the graph to replace on */ -static void reroute_result(ir_node *proj, ir_node *l_res, ir_node *h_res, ir_graph *irg) +static void reroute_result(ir_node *proj, ir_node *l_res, ir_node *h_res) { const ir_edge_t *edge, *next; @@ -81,9 +80,9 @@ static void reroute_result(ir_node *proj, ir_node *l_res, ir_node *h_res, ir_gra long pn = get_Proj_proj(proj); if (pn == 0) { - edges_reroute(proj, l_res, irg); + edges_reroute(proj, l_res); } else if (pn == 1 && h_res != NULL) { - edges_reroute(proj, h_res, irg); + edges_reroute(proj, h_res); } else { panic("Unsupported Result-Proj from Call found"); } @@ -102,7 +101,6 @@ static void reroute_result(ir_node *proj, ir_node *l_res, ir_node *h_res, ir_gra static void resolve_call(ir_node *call, ir_node *l_res, ir_node *h_res, ir_graph *irg, ir_node *block) { ir_node *jmp, *res, *in[2]; - ir_node *bad = get_irg_bad(irg); ir_node *nomem = get_irg_no_mem(irg); int old_cse; @@ -126,19 +124,19 @@ static void resolve_call(ir_node *call, ir_node *l_res, ir_node *h_res, ir_graph set_opt_cse(0); jmp = new_r_Jmp(block); set_opt_cse(old_cse); - edges_reroute(proj, jmp, irg); + edges_reroute(proj, jmp); break; case pn_Call_X_except: /* should not happen here */ - edges_reroute(proj, bad, irg); + edges_reroute(proj, new_r_Bad(irg, mode_X)); break; case pn_Call_M: /* should not happen here */ - edges_reroute(proj, nomem, irg); + edges_reroute(proj, nomem); break; case pn_Call_T_result: - reroute_result(proj, l_res, h_res, irg); + reroute_result(proj, l_res, h_res); break; default: panic("Wrong Proj from Call"); @@ -169,10 +167,10 @@ static void resolve_call(ir_node *call, ir_node *l_res, ir_node *h_res, ir_graph jmp = new_r_Jmp(block); set_opt_cse(old_cse); - set_Tuple_pred(call, pn_Call_M, nomem); - set_Tuple_pred(call, pn_Call_X_regular, jmp); - set_Tuple_pred(call, pn_Call_X_except, bad); - set_Tuple_pred(call, pn_Call_T_result, res); + set_Tuple_pred(call, pn_Call_M, nomem); + set_Tuple_pred(call, pn_Call_X_regular, jmp); + set_Tuple_pred(call, pn_Call_X_except, new_r_Bad(irg, mode_X)); + set_Tuple_pred(call, pn_Call_T_result, res); } }