As a reminiscence to the famous MAC/65 assembler changed modifier + into > and -...
[libfirm] / ir / be / ia32 / ia32_intrinsics.c
index 572fd0c..21db02f 100644 (file)
@@ -130,7 +130,7 @@ static void resolve_call(ir_node *call, ir_node *l_res, ir_node *h_res, ir_graph
                                /* should not happen here */
                                edges_reroute(proj, bad, irg);
                                break;
-                       case pn_Call_M_except:
+                       case pn_Call_M:
                                /* should not happen here */
                                edges_reroute(proj, nomem, irg);
                                break;
@@ -154,7 +154,6 @@ static void resolve_call(ir_node *call, ir_node *l_res, ir_node *h_res, ir_graph
                }
 
                turn_into_tuple(call, pn_Call_max);
-               set_Tuple_pred(call, pn_Call_M_regular,        nomem);
                /*
                 * Beware:
                 * We do not check here if this call really has exception and regular Proj's.
@@ -167,10 +166,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_except,         nomem);
                set_Tuple_pred(call, pn_Call_P_value_res_base, bad);
        }
 }
@@ -674,6 +673,7 @@ static int map_Div(ir_node *call, void *ctx) {
        ir_mode   *h_mode    = get_type_mode(get_method_res_type(method, 1));
        ir_node   *ptr;
        ir_entity *ent;
+       ir_graph  *irg = get_irn_irg(call);
        symconst_symbol sym;
 
        if (mode_is_signed(h_mode)) {
@@ -695,9 +695,12 @@ static int map_Div(ir_node *call, void *ctx) {
                        set_entity_ld_ident(ent, ID("__udivdi3"));
                }
        }
-       sym.entity_p = ent;
+
        ptr = get_Call_ptr(call);
-       set_SymConst_symbol(ptr, sym);
+       sym.entity_p = ent;
+       ptr = new_r_SymConst(irg, get_irn_mode(ptr), sym, symconst_addr_ent);
+       set_Call_ptr(call, ptr);
+
        return 1;
 }
 
@@ -710,6 +713,7 @@ static int map_Mod(ir_node *call, void *ctx) {
        ir_mode   *h_mode    = get_type_mode(get_method_res_type(method, 1));
        ir_node   *ptr;
        ir_entity *ent;
+       ir_graph  *irg = get_irn_irg(call);
        symconst_symbol sym;
 
        if (mode_is_signed(h_mode)) {
@@ -731,9 +735,12 @@ static int map_Mod(ir_node *call, void *ctx) {
                        set_entity_ld_ident(ent, ID("__umoddi3"));
                }
        }
-       sym.entity_p = ent;
+
        ptr = get_Call_ptr(call);
-       set_SymConst_symbol(ptr, sym);
+       sym.entity_p = ent;
+       ptr = new_r_SymConst(irg, get_irn_mode(ptr), sym, symconst_addr_ent);
+       set_Call_ptr(call, ptr);
+
        return 1;
 }