X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Flower%2Flower_copyb.c;h=d18afa73af5d368527ae00b31f1748fe25157d44;hb=ee2ce90606e3b629b45482964a70a71a46aa6966;hp=b8591cae574ace18dd8407f74684ab8811f721d8;hpb=1a3b7d363474ab544c13093a2f0b578718d37c7a;p=libfirm diff --git a/ir/lower/lower_copyb.c b/ir/lower/lower_copyb.c index b8591cae5..d18afa73a 100644 --- a/ir/lower/lower_copyb.c +++ b/ir/lower/lower_copyb.c @@ -66,7 +66,7 @@ static ir_mode *get_ir_mode(unsigned bytes) */ static void lower_copyb_nodes(ir_node *irn, unsigned mode_bytes) { - ir_graph *irg = current_ir_graph; + ir_graph *irg = get_irn_irg(irn); unsigned size; unsigned offset; ir_mode *mode; @@ -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)); } /** @@ -167,10 +167,7 @@ static void find_copyb_nodes(ir_node *irn, void *ctx) void lower_CopyB(ir_graph *irg, unsigned max_size, unsigned native_mode_bytes) { walk_env_t env; - entry_t *entry; - ir_graph *rem = current_ir_graph; - - current_ir_graph = irg; + entry_t *entry; obstack_init(&env.obst); env.max_size = max_size; @@ -182,5 +179,4 @@ void lower_CopyB(ir_graph *irg, unsigned max_size, unsigned native_mode_bytes) } obstack_free(&env.obst, NULL); - current_ir_graph = rem; }