if (mode_needs_gp_reg(mode))
mode = mode_Iu;
res = new_rd_arm_Mov_i(dbg, irg, block, mode, value);
- /* ensure the const is scheduled AFTER the stack frame */
- add_irn_dep(res, get_irg_frame(irg));
+ be_dep_on_frame(res);
return res;
}
if (mode_needs_gp_reg(mode))
mode = mode_Iu;
res = new_rd_arm_Mvn_i(dbg, irg, block, mode, value);
- /* ensure the const is scheduled AFTER the stack frame */
- add_irn_dep(res, get_irg_frame(irg));
+ be_dep_on_frame(res);
return res;
}
if (be_get_Proj_for_pn(node, pn_Load_res) == NULL) {
/* add a result proj and a Keep to produce a pseudo use */
ir_node *proj = new_r_Proj(irg, block, new_load, mode_Iu, pn_arm_Load_res);
- be_new_Keep(arch_get_irn_reg_class(env_cg->arch_env, proj, -1), irg, block, 1, &proj);
+ be_new_Keep(arch_get_irn_reg_class(proj, -1), irg, block, 1, &proj);
}
return new_load;
} else {
node = new_rd_arm_fpaConst(dbg, irg, block, tv);
}
- /* ensure the const is scheduled AFTER the stack frame */
- add_irn_dep(node, get_irg_frame(irg));
+ be_dep_on_frame(node);
return node;
}
else if (USE_VFP(env_cg->isa)) {
ir_node *res;
res = new_rd_arm_SymConst(dbg, irg, block, mode, get_sc_ident(node));
- /* ensure the const is scheduled AFTER the stack frame */
- add_irn_dep(res, get_irg_frame(irg));
+ be_dep_on_frame(res);
return res;
}
default:
break;
}
- assert(0);
- return new_rd_Unknown(irg, get_irn_mode(node));
+ panic("Unsupported Proj from Load");
}
/**
ir_node *new_pred = be_transform_node(pred);
ir_graph *irg = current_ir_graph;
dbg_info *dbgi = get_irn_dbg_info(node);
- ir_mode *mode = get_irn_mode(node);
long proj = get_Proj_proj(node);
switch(proj) {
default:
break;
}
- assert(0);
- return new_rd_Unknown(irg, mode);
+ panic("Unsupported Proj from CopyB");
}
/**
default:
break;
}
- assert(0);
- return new_rd_Unknown(irg, mode);
+ panic("Unsupported Proj from Quot");
}
/**
if (proj == pn_be_AddSP_sp) {
ir_node *res = new_rd_Proj(dbgi, irg, block, new_pred, mode_Iu,
pn_arm_SubSPandCopy_stack);
- arch_set_irn_register(env_cg->arch_env, res, &arm_gp_regs[REG_SP]);
+ arch_set_irn_register(res, &arm_gp_regs[REG_SP]);
return res;
} else if(proj == pn_be_AddSP_res) {
return new_rd_Proj(dbgi, irg, block, new_pred, mode_Iu,
} else if (proj == pn_be_AddSP_M) {
return new_rd_Proj(dbgi, irg, block, new_pred, mode_M, pn_arm_SubSPandCopy_M);
}
-
- assert(0);
- return new_rd_Unknown(irg, get_irn_mode(node));
+ panic("Unsupported Proj from AddSP");
}
/**
if (proj == pn_be_SubSP_sp) {
ir_node *res = new_rd_Proj(dbgi, irg, block, new_pred, mode_Iu,
pn_arm_AddSP_stack);
- arch_set_irn_register(env_cg->arch_env, res, &arm_gp_regs[REG_SP]);
+ arch_set_irn_register(res, &arm_gp_regs[REG_SP]);
return res;
} else if (proj == pn_be_SubSP_M) {
return new_rd_Proj(dbgi, irg, block, new_pred, mode_M, pn_arm_AddSP_M);
}
-
- assert(0);
- return new_rd_Unknown(irg, get_irn_mode(node));
+ panic("Unsupported Proj from SubSP");
}
/**
if (proj == pn_Store_M) {
return be_transform_node(pred);
} else {
- assert(0);
- return new_r_Bad(irg);
+ panic("Unsupported Proj from Store");
}
} else if (is_Load(pred)) {
return gen_Proj_Load(node);
block = get_irg_start_block(env_cg->irg);
res = func(NULL, env_cg->irg, block);
- arch_set_irn_register(env_cg->arch_env, res, reg);
+ arch_set_irn_register(res, reg);
*place = res;
add_irn_dep(get_irg_end(env_cg->irg), res);
copy_node_attr(node, phi);
be_duplicate_deps(node, phi);
- be_set_transformed_node(node, phi);
be_enqueue_preds(node);
return phi;
/**
* Pre-transform all unknown nodes.
*/
-static void arm_pretransform_node(void *arch_cg) {
- arm_code_gen_t *cg = arch_cg;
+static void arm_pretransform_node(void)
+{
+ arm_code_gen_t *cg = env_cg;
cg->unknown_gp = be_pre_transform_node(cg->unknown_gp);
cg->unknown_fpa = be_pre_transform_node(cg->unknown_fpa);
}
arm_register_transformers();
env_cg = cg;
- be_transform_graph(cg->birg, arm_pretransform_node, cg);
+ be_transform_graph(cg->birg, arm_pretransform_node);
}
void arm_init_transform(void) {