unspeakable Proj_T from the Call. Therefore, all real argument
Proj numbers must be increased by pn_Call_max
*/
- proj += pn_Call_max;
+ proj += pn_Call_max;
set_Proj_proj(res, proj);
obstack_ptr_grow(obst, res);
be_Call_set_entity(low_call, get_SymConst_entity(call_ptr));
}
- else
+ else
low_call = be_new_Call(irg, bl, curr_mem, curr_sp, call_ptr, curr_res_proj + pset_count(caller_save), n_low_args, in);
+ set_irn_dbg_info(low_call, get_irn_dbg_info(irn));
+
/*
TODO:
Set the register class of the call address to the same as the stack pointer's.
static void create_barrier(be_abi_irg_t *env, ir_node *bl, ir_node **mem, pmap *regs, int in_req)
{
ir_graph *irg = env->birg->irg;
- int i, n;
+ int n;
int n_regs = pmap_count(regs);
ir_node *irn;
ir_node **in;
rm = reg_map_to_arr(&env->obst, regs);
- for(i = 0, n = 0; i < n_regs; ++i, ++n)
- obstack_ptr_grow(&env->obst, rm[i].irn);
+ for(n = 0; n < n_regs; ++n)
+ obstack_ptr_grow(&env->obst, rm[n].irn);
if(mem) {
obstack_ptr_grow(&env->obst, *mem);
ir_node *proj;
const arch_register_t *reg = rm[n].reg;
- proj = new_r_Proj(env->birg->irg, bl, irn, get_irn_mode(rm[i].irn), n);
+ proj = new_r_Proj(env->birg->irg, bl, irn, get_irn_mode(rm[n].irn), n);
be_node_set_reg_class(irn, n, reg->reg_class);
if(in_req)
be_set_constr_single_reg(irn, n, reg);
}
}
+ del_pset(dont_save);
obstack_free(&env->obst, args);
}