X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Flower%2Flower_copyb.c;h=b8591cae574ace18dd8407f74684ab8811f721d8;hb=2a018b8111bd0596816c1d00c38a0024857753f7;hp=d2ebc56187c42c1cd8986eba15ee5c270d24594b;hpb=6a4b9102668449bea6e3c0905df74f7ffff2768b;p=libfirm diff --git a/ir/lower/lower_copyb.c b/ir/lower/lower_copyb.c index d2ebc5618..b8591cae5 100644 --- a/ir/lower/lower_copyb.c +++ b/ir/lower/lower_copyb.c @@ -51,7 +51,7 @@ typedef struct walk_env { static ir_mode *get_ir_mode(unsigned bytes) { switch (bytes) { - case 1: return mode_Bu; + case 1: return mode_Bu; case 2: return mode_Hu; case 4: return mode_Iu; case 8: return mode_Lu; @@ -64,7 +64,8 @@ static ir_mode *get_ir_mode(unsigned bytes) /** * lower a CopyB node. */ -static void lower_copyb_nodes(ir_node *irn, unsigned mode_bytes) { +static void lower_copyb_nodes(ir_node *irn, unsigned mode_bytes) +{ ir_graph *irg = current_ir_graph; unsigned size; unsigned offset; @@ -101,15 +102,15 @@ 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_res = new_r_Proj(block, load, mode, pn_Load_res); - load_mem = new_r_Proj(block, load, mode_M, pn_Load_M); + 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_mem = new_r_Proj(block, store, mode_M, pn_Store_M); + 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; } @@ -118,17 +119,17 @@ 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_regular, mem); + 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_M_except, get_irg_bad(irg)); } /** * Post-Walker: find small CopyB nodes. */ -static void find_copyb_nodes(ir_node *irn, void *ctx) { - walk_env_t *env = ctx; +static void find_copyb_nodes(ir_node *irn, void *ctx) +{ + walk_env_t *env = (walk_env_t*)ctx; ir_type *tp; unsigned size; entry_t *entry; @@ -136,9 +137,9 @@ static void find_copyb_nodes(ir_node *irn, void *ctx) { if (is_Proj(irn)) { ir_node *pred = get_Proj_pred(irn); - if (is_CopyB(pred) && get_Proj_proj(irn) != pn_CopyB_M_regular) { + 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;