{
TEMPLATE_code_gen_t *cg = self;
- irg_walk_blkwise_graph(cg->irg, NULL, TEMPLATE_transform_node, cg);
+ /* transform nodes into assembler instructions */
+ TEMPLATE_transform_graph(cg);
}
*/
static void TEMPLATE_finish_irg(void *self)
{
- TEMPLATE_code_gen_t *cg = self;
- ir_graph *irg = cg->irg;
-
- dump_ir_block_graph_sched(irg, "-TEMPLATE-finished");
+ (void) self;
}
TEMPLATE_code_gen_t *cg = self;
ir_graph *irg = cg->irg;
- TEMPLATE_gen_routine(cg, irg);
+ TEMPLATE_emit_routine(irg);
/* de-allocate code generator */
free(cg);
}
-static void *TEMPLATE_cg_init(be_irg_t *birg);
+static void *TEMPLATE_cg_init(ir_graph *irg);
static const arch_code_generator_if_t TEMPLATE_code_gen_if = {
TEMPLATE_cg_init,
/**
* Initializes the code generator.
*/
-static void *TEMPLATE_cg_init(be_irg_t *birg)
+static void *TEMPLATE_cg_init(ir_graph *irg)
{
- const arch_env_t *arch_env = be_get_birg_arch_env(birg);
+ const arch_env_t *arch_env = be_get_irg_arch_env(irg);
TEMPLATE_isa_t *isa = (TEMPLATE_isa_t *) arch_env;
TEMPLATE_code_gen_t *cg = XMALLOC(TEMPLATE_code_gen_t);
- cg->impl = &TEMPLATE_code_gen_if;
- cg->irg = be_get_birg_irg(birg);
- cg->isa = isa;
- cg->birg = birg;
+ cg->impl = &TEMPLATE_code_gen_if;
+ cg->irg = irg;
+ cg->isa = isa;
return (arch_code_generator_t *)cg;
}
for (i = 0; i < n; i++) {
/* TODO: implement register parameter: */
/* reg = get reg for param i; */
- /* be_abi_call_param_reg(abi, i, reg); */
+ /* be_abi_call_param_reg(abi, i, reg, ABI_CONTEXT_BOTH); */
/* default: all parameters on stack */
tp = get_method_param_type(method_type, i);
mode = get_type_mode(tp);
- be_abi_call_param_stack(abi, i, mode, 4, 0, 0);
+ be_abi_call_param_stack(abi, i, mode, 4, 0, 0, ABI_CONTEXT_BOTH);
}
/* TODO: set correct return register */
mode = get_type_mode(tp);
be_abi_call_res_reg(abi, 0,
- mode_is_float(mode) ? &TEMPLATE_fp_regs[REG_F0] : &TEMPLATE_gp_regs[REG_R0]);
+ mode_is_float(mode) ? &TEMPLATE_fp_regs[REG_F0] : &TEMPLATE_gp_regs[REG_R0], ABI_CONTEXT_BOTH);
}
}
{
(void) irn;
/* TODO */
- assert(0);
return NULL;
}
{
(void) self;
/* TODO */
- assert(0);
return NULL;
}