Correct inaccurate comment: The only corner case of wrong CF in NEG+ADD as replacemen...
[libfirm] / ir / lower / lower_copyb.c
index fd38e3f..d18afa7 100644 (file)
@@ -118,10 +118,10 @@ static void lower_copyb_nodes(ir_node *irn, unsigned mode_bytes)
                mode_bytes /= 2;
        }
 
-       turn_into_tuple(irn, pn_CopyB_max);
+       turn_into_tuple(irn, pn_CopyB_max+1);
        set_Tuple_pred(irn, pn_CopyB_M,         mem);
-       set_Tuple_pred(irn, pn_CopyB_X_regular, get_irg_bad(irg));
-       set_Tuple_pred(irn, pn_CopyB_X_except,  get_irg_bad(irg));
+       set_Tuple_pred(irn, pn_CopyB_X_regular, new_r_Bad(irg, mode_X));
+       set_Tuple_pred(irn, pn_CopyB_X_except,  new_r_Bad(irg, mode_X));
 }
 
 /**
@@ -168,7 +168,6 @@ void lower_CopyB(ir_graph *irg, unsigned max_size, unsigned native_mode_bytes)
 {
        walk_env_t env;
        entry_t   *entry;
-       bool       changed = false;
 
        obstack_init(&env.obst);
        env.max_size = max_size;
@@ -177,12 +176,6 @@ void lower_CopyB(ir_graph *irg, unsigned max_size, unsigned native_mode_bytes)
 
        list_for_each_entry(entry_t, entry, &env.list, list) {
                lower_copyb_nodes(entry->copyb, native_mode_bytes);
-               changed = true;
-       }
-
-       if (changed) {
-               set_irg_outs_inconsistent(irg);
-               set_irg_loopinfo_inconsistent(irg);
        }
 
        obstack_free(&env.obst, NULL);