improved example
[libfirm] / ir / be / beabi.c
index 8e73d0c..9509ad6 100644 (file)
@@ -1485,8 +1485,8 @@ static void lower_frame_sels_walker(ir_node *irn, void *data) {
 
                        /* check, if it's a param sel and if have not seen this entity before */
                        if (ptr == param_base &&
-                                       ent != ctx->value_param_tail &&
-                                       get_entity_link(ent) == NULL) {
+                           ent != ctx->value_param_tail &&
+                           get_entity_link(ent) == NULL) {
                                set_entity_link(ent, ctx->value_param_list);
                                ctx->value_param_list = ent;
                                if (ctx->value_param_tail == NULL) ctx->value_param_tail = ent;
@@ -1682,6 +1682,7 @@ static void modify_irg(be_abi_irg_t *env)
         * memory, which leads to loops in the DAG. */
        old_mem = get_irg_initial_mem(irg);
 
+       irp_reserve_resources(irp, IR_RESOURCE_ENTITY_LINK);
        /* set the links of all frame entities to NULL, we use it
           to detect if an entity is already linked in the value_param_list */
        tp = get_method_value_param_type(method_type);
@@ -1719,6 +1720,7 @@ static void modify_irg(be_abi_irg_t *env)
         * a backing store into the first block.
         */
        fix_address_of_parameter_access(env, ctx.value_param_list);
+       irp_free_resources(irp, IR_RESOURCE_ENTITY_LINK);
 
        /* Fill the argument vector */
        arg_tuple = get_irg_args(irg);