emit arm symconsts as .LC%u instead of .L%u to avoid clashed with block numbers
[libfirm] / ir / be / TEMPLATE / bearch_TEMPLATE.c
index e4ba0d2..de73a38 100644 (file)
@@ -115,7 +115,8 @@ static void TEMPLATE_prepare_graph(void *self)
 {
        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);
 }
 
 
@@ -125,10 +126,7 @@ static void TEMPLATE_prepare_graph(void *self)
  */
 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;
 }
 
 
@@ -155,13 +153,13 @@ static void TEMPLATE_emit_and_done(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,
@@ -178,16 +176,15 @@ static const arch_code_generator_if_t TEMPLATE_code_gen_if = {
 /**
  * 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;
 }
@@ -384,12 +381,12 @@ static void TEMPLATE_get_call_abi(const void *self, ir_type *method_type,
        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 */
@@ -399,7 +396,7 @@ static void TEMPLATE_get_call_abi(const void *self, ir_type *method_type,
                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);
        }
 }