#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"
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_regular);
- 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);
}
/**
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);
+ op = new_rd_Conv(env->dbg, env->block, op, mode_D);
// fall through
case irm_D:
{
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
case irm_Hs:
case irm_Bu:
case irm_Hu:
- return new_rd_Conv(env->dbg, env->irg, env->block, res, to_mode);
+ return new_rd_Conv(env->dbg, env->block, res, to_mode);
case irm_Is:
case irm_Iu:
return res;
}
case irm_Hs:
case irm_Bs:
- op = new_rd_Conv(env->dbg, env->irg, env->block, op, mode_Is);
+ 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);
+ 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);
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;