BugFix: mode_b lowering might create new control flow (if ir_create_cond_set() is...
[libfirm] / ir / be / arm / arm_transform.c
index 8918ee2..91bb8f1 100644 (file)
@@ -1165,7 +1165,7 @@ static ir_node *ints_to_double(dbg_info *dbgi, ir_node *block, ir_node *node0,
         * registers... */
        ir_graph *irg   = current_ir_graph;
        ir_node  *stack = get_irg_frame(irg);
-       ir_node  *nomem = new_r_NoMem(irg);
+       ir_node  *nomem = get_irg_no_mem(irg);
        ir_node  *str0  = new_bd_arm_Str(dbgi, block, stack, node0, nomem, mode_gp,
                                         NULL, 0, 0, true);
        ir_node  *str1  = new_bd_arm_Str(dbgi, block, stack, node1, nomem, mode_gp,
@@ -1186,7 +1186,7 @@ static ir_node *int_to_float(dbg_info *dbgi, ir_node *block, ir_node *node)
 {
        ir_graph *irg   = current_ir_graph;
        ir_node  *stack = get_irg_frame(irg);
-       ir_node  *nomem = new_r_NoMem(irg);
+       ir_node  *nomem = get_irg_no_mem(irg);
        ir_node  *str   = new_bd_arm_Str(dbgi, block, stack, node, nomem, mode_gp,
                                         NULL, 0, 0, true);
        ir_node  *ldf;
@@ -1202,7 +1202,7 @@ static ir_node *float_to_int(dbg_info *dbgi, ir_node *block, ir_node *node)
 {
        ir_graph *irg   = current_ir_graph;
        ir_node  *stack = get_irg_frame(irg);
-       ir_node  *nomem = new_r_NoMem(irg);
+       ir_node  *nomem = get_irg_no_mem(irg);
        ir_node  *stf   = new_bd_arm_Stf(dbgi, block, stack, node, nomem, mode_F,
                                         NULL, 0, 0, true);
        ir_node  *ldr;
@@ -1219,7 +1219,7 @@ static void double_to_ints(dbg_info *dbgi, ir_node *block, ir_node *node,
 {
        ir_graph *irg   = current_ir_graph;
        ir_node  *stack = get_irg_frame(irg);
-       ir_node  *nomem = new_r_NoMem(irg);
+       ir_node  *nomem = get_irg_no_mem(irg);
        ir_node  *stf   = new_bd_arm_Stf(dbgi, block, stack, node, nomem, mode_D,
                                         NULL, 0, 0, true);
        ir_node  *ldr0, *ldr1;
@@ -1727,8 +1727,6 @@ static ir_node *gen_Start(ir_node *node)
        ir_node   *new_block     = be_transform_node(block);
        dbg_info  *dbgi          = get_irn_dbg_info(node);
        ir_node   *start;
-       ir_node   *incsp;
-       ir_node   *sp;
        size_t     i;
 
        /* stackpointer is important at function prolog */
@@ -1748,10 +1746,6 @@ static ir_node *gen_Start(ir_node *node)
        }
 
        start = be_prolog_create_start(abihelper, dbgi, new_block);
-       sp    = be_prolog_get_reg_value(abihelper, sp_reg);
-       incsp = be_new_IncSP(sp_reg, new_block, sp, BE_STACK_FRAME_SIZE_EXPAND, 0);
-       be_prolog_set_reg_value(abihelper, sp_reg, incsp);
-
        return start;
 }
 
@@ -1792,7 +1786,6 @@ static ir_node *gen_Return(ir_node *node)
        ir_node   *sp_proj        = get_stack_pointer_for(node);
        int        n_res          = get_Return_n_ress(node);
        ir_node   *bereturn;
-       ir_node   *incsp;
        int        i;
 
        be_epilog_begin(abihelper);
@@ -1821,13 +1814,7 @@ static ir_node *gen_Return(ir_node *node)
        }
 
        /* epilog code: an incsp */
-       sp_proj = be_epilog_get_reg_value(abihelper, sp_reg);
-       incsp   = be_new_IncSP(sp_reg, new_block, sp_proj,
-                              BE_STACK_FRAME_SIZE_SHRINK, 0);
-       be_epilog_set_reg_value(abihelper, sp_reg, incsp);
-
        bereturn = be_epilog_create_return(abihelper, dbgi, new_block);
-
        return bereturn;
 }