X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Flower%2Flower_copyb.c;h=8da195e3e2f30ed4a0d8c49758cc743edaad7525;hb=ed0e4ce9a109277e1a63f48f2aca7750f473bc6a;hp=d387014f6f345c2a8a84bd90761cf114d6c171d6;hpb=a1e9069afa4fa1e16e2d176bcd7905d6a1ed4677;p=libfirm diff --git a/ir/lower/lower_copyb.c b/ir/lower/lower_copyb.c index d387014f6..8da195e3e 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; @@ -102,14 +102,14 @@ static void lower_copyb_nodes(ir_node *irn, unsigned mode_bytes) addr_const = new_r_Const_long(irg, mode_Iu, offset); add = new_r_Add(block, addr_src, addr_const, addr_mode); - load = new_r_Load(block, mem, add, mode, 0); + load = new_r_Load(block, mem, add, mode, cons_none); load_res = new_r_Proj(load, mode, pn_Load_res); load_mem = new_r_Proj(load, mode_M, pn_Load_M); addr_const = new_r_Const_long(irg, mode_Iu, offset); add = new_r_Add(block, addr_dst, addr_const, addr_mode); - store = new_r_Store(block, load_mem, add, load_res, 0); + store = new_r_Store(block, load_mem, add, load_res, cons_none); store_mem = new_r_Proj(store, mode_M, pn_Store_M); mem = store_mem; @@ -120,8 +120,8 @@ static void lower_copyb_nodes(ir_node *irn, unsigned mode_bytes) turn_into_tuple(irn, pn_CopyB_max); 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)); } /** @@ -129,7 +129,7 @@ static void lower_copyb_nodes(ir_node *irn, unsigned mode_bytes) */ static void find_copyb_nodes(ir_node *irn, void *ctx) { - walk_env_t *env = ctx; + walk_env_t *env = (walk_env_t*)ctx; ir_type *tp; unsigned size; entry_t *entry; @@ -139,7 +139,7 @@ static void find_copyb_nodes(ir_node *irn, void *ctx) if (is_CopyB(pred) && get_Proj_proj(irn) != pn_CopyB_M) { /* found an exception Proj: remove it from the list again */ - entry = get_irn_link(pred); + entry = (entry_t*)get_irn_link(pred); list_del(&entry->list); } return; @@ -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; }