X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fppc32%2Fppc32_transform_conv.c;h=8c820be3f6975065c7f5dce1441670861c57444f;hb=b460e057a0751e29f22c5e4407d9a48299b8096c;hp=bd90ccd4c5b1b0c9781ace9d745e6c26b3dd117f;hpb=f44b4b1268e91fedfa29f670189b8ca84866bb9a;p=libfirm diff --git a/ir/be/ppc32/ppc32_transform_conv.c b/ir/be/ppc32/ppc32_transform_conv.c index bd90ccd4c..8c820be3f 100644 --- a/ir/be/ppc32/ppc32_transform_conv.c +++ b/ir/be/ppc32/ppc32_transform_conv.c @@ -37,12 +37,13 @@ #include "debug.h" #include "error.h" -#include "../benode_t.h" +#include "../benode.h" #include "bearch_ppc32_t.h" #include "ppc32_nodes_attr.h" //#include "../arch/archop.h" /* we need this for Min and Max nodes */ #include "ppc32_transform_conv.h" +#include "ppc32_transform.h" #include "ppc32_new_nodes.h" #include "ppc32_map_regs.h" @@ -87,11 +88,11 @@ static ir_node *own_gen_convert_call(ppc32_transform_env_t *env, ir_node *op, co method_ent = new_entity(get_glob_type(), new_id_from_str(funcname), method_type); callee = new_rd_SymConst_addr_ent(env->dbg, env->irg, mode_P_code, method_ent, method_type); - call = new_rd_Call(env->dbg, env->irg, env->block, memory, callee, 1, in, method_type); - call_results = new_rd_Proj(env->dbg, env->irg, env->block, call, mode_T, pn_Call_T_result); - memory = new_rd_Proj(env->dbg, env->irg, env->block, call, mode_M, pn_Call_M_regular); + call = new_rd_Call(env->dbg, env->block, memory, callee, 1, in, method_type); + call_results = new_rd_Proj(env->dbg, env->block, call, mode_T, pn_Call_T_result); + memory = new_rd_Proj(env->dbg, env->block, call, mode_M, pn_Call_M); - return new_rd_Proj(env->dbg, env->irg, env->block, call_results, to_mode, 0); + return new_rd_Proj(env->dbg, env->block, call_results, to_mode, 0); } /** @@ -107,12 +108,12 @@ static ir_node *own_gen_convert_call(ppc32_transform_env_t *env, ir_node *op, co static ir_node *gen_Conv(ppc32_transform_env_t *env, ir_node *op) { ir_mode *from_mode = get_irn_mode(get_irn_n(env->irn,0)); ir_mode *to_mode = env->mode; - ir_modecode from_modecode=get_mode_modecode(from_mode); - ir_modecode to_modecode=get_mode_modecode(to_mode); + ppc32_modecode from_modecode=get_nice_modecode(from_mode); + ppc32_modecode to_modecode=get_nice_modecode(to_mode); switch(from_modecode){ case irm_F: - op = new_rd_Conv(env->dbg, env->irg, env->block, op, mode_D, 0); + op = new_rd_Conv(env->dbg, env->block, op, mode_D); // fall through case irm_D: { @@ -122,15 +123,15 @@ static ir_node *gen_Conv(ppc32_transform_env_t *env, ir_node *op) { ir_node *fctiw = new_bd_ppc32_fCtiw(env->dbg, env->block, op, from_mode); ir_node *stfd = new_bd_ppc32_Stfd(env->dbg, env->block, get_irg_frame(env->irg), fctiw, memory); - ir_node *storememproj = new_rd_Proj(env->dbg, env->irg, env->block, stfd, mode_M, pn_Store_M); + ir_node *storememproj = new_rd_Proj(env->dbg, env->block, stfd, mode_M, pn_Store_M); ir_node *lwz = new_bd_ppc32_Lwz(env->dbg, env->block, get_irg_frame(env->irg), storememproj); set_ppc32_frame_entity(stfd, memslot); set_ppc32_offset_mode(stfd, ppc32_ao_Lo16); // TODO: only allows a 16-bit offset on stack set_ppc32_frame_entity(lwz, memslot); set_ppc32_offset_mode(stfd, ppc32_ao_Lo16); // TODO: only allows a 16-bit offset on stack - memory = new_rd_Proj(env->dbg, env->irg, env->block, lwz, mode_M, pn_Store_M); - res = new_rd_Proj(env->dbg, env->irg, env->block, lwz, to_mode, pn_Load_res); + memory = new_rd_Proj(env->dbg, env->block, lwz, mode_M, pn_Store_M); + res = new_rd_Proj(env->dbg, env->block, lwz, to_mode, pn_Load_res); } else @@ -144,7 +145,7 @@ static ir_node *gen_Conv(ppc32_transform_env_t *env, ir_node *op) { case irm_Hs: case irm_Bu: case irm_Hu: - return new_rd_Conv(env->dbg, env->irg, env->block, res, to_mode, 0); + return new_rd_Conv(env->dbg, env->block, res, to_mode); case irm_Is: case irm_Iu: return res; @@ -155,14 +156,14 @@ static ir_node *gen_Conv(ppc32_transform_env_t *env, ir_node *op) { } case irm_Hs: case irm_Bs: - op = new_rd_Conv(env->dbg, env->irg, env->block, op, mode_Is, 0); + op = new_rd_Conv(env->dbg, env->block, op, mode_Is); case irm_Is: return own_gen_convert_call(env, op, (to_mode == mode_D) ? "conv_int_to_double" : "conv_int_to_single", mode_Is, to_mode); case irm_Hu: case irm_Bu: - op = new_rd_Conv(env->dbg, env->irg, env->block, op, mode_Iu, 0); + op = new_rd_Conv(env->dbg, env->block, op, mode_Iu); case irm_Iu: return own_gen_convert_call(env, op, (to_mode == mode_D) ? "conv_unsigned_int_to_double": "conv_unsigned_int_to_single", mode_Iu, to_mode); @@ -382,8 +383,8 @@ void ppc32_conv_walk(ir_node *node, void *env) { if (code == iro_Conv) { - ir_modecode from_mode=get_mode_modecode(get_irn_mode(get_irn_n(node,0))); - ir_modecode to_mode=get_mode_modecode(get_irn_mode(node)); + ppc32_modecode from_mode=get_nice_modecode(get_irn_mode(get_irn_n(node,0))); + ppc32_modecode to_mode=get_nice_modecode(get_irn_mode(node)); cw_block_attr *attr; if(from_mode == to_mode) return;