Infer it from block.
throws_exception = ir_throws_exception(irn);
if (env->call->flags.call_has_imm && is_SymConst(call_ptr)) {
/* direct call */
- low_call = be_new_Call(dbgi, irg, bl, curr_mem, sp->single_req, curr_sp,
+ low_call = be_new_Call(dbgi, bl, curr_mem, sp->single_req, curr_sp,
sp->single_req, curr_sp,
n_reg_results + pn_be_Call_first_res + ARR_LEN(destroyed_regs),
n_ins, in, get_Call_type(irn));
be_Call_set_entity(low_call, get_SymConst_entity(call_ptr));
} else {
/* indirect call */
- low_call = be_new_Call(dbgi, irg, bl, curr_mem, sp->single_req, curr_sp,
+ low_call = be_new_Call(dbgi, bl, curr_mem, sp->single_req, curr_sp,
sp->reg_class->class_req, call_ptr,
n_reg_results + pn_be_Call_first_res + ARR_LEN(destroyed_regs),
n_ins, in, get_Call_type(irn));
add_register_req_in(keep, cls->class_req);
}
-ir_node *be_new_Call(dbg_info *dbg, ir_graph *irg, ir_node *bl, ir_node *mem,
+ir_node *be_new_Call(dbg_info *dbg, ir_node *bl, ir_node *mem,
const arch_register_req_t *sp_req, ir_node *sp,
const arch_register_req_t *ptr_req, ir_node *ptr,
int n_outs, int n, ir_node *in[], ir_type *call_tp)
{
be_call_attr_t *a;
int real_n = n_be_Call_first_arg + n;
- ir_node *irn;
ir_node **real_in;
NEW_ARR_A(ir_node *, real_in, real_n);
real_in[n_be_Call_ptr] = ptr;
memcpy(&real_in[n_be_Call_first_arg], in, n * sizeof(in[0]));
- irn = new_ir_node(dbg, irg, bl, op_be_Call, mode_T, real_n, real_in);
+ ir_graph *const irg = get_Block_irg(bl);
+ ir_node *const irn = new_ir_node(dbg, irg, bl, op_be_Call, mode_T, real_n, real_in);
init_node_attr(irn, real_n, n_outs);
a = (be_call_attr_t*)get_irn_generic_attr(irn);
a->ent = NULL;
* Construct a new be_Call.
*
* @param dbg debug info
- * @param irg the graph where the call is placed
* @param block the block where the call is placed
* @param mem the memory input of the call
* @param sp the stack pointer input of the call
* @param in the (register) inputs of this call
* @param call_tp the call type of this call
*/
-ir_node *be_new_Call(dbg_info *dbg, ir_graph *irg, ir_node *block, ir_node *mem,
+ir_node *be_new_Call(dbg_info *dbg, ir_node *block, ir_node *mem,
const arch_register_req_t *sp_req, ir_node *sp,
const arch_register_req_t *ptr_req, ir_node *ptr,
int n_outs, int n, ir_node *in[], ir_type *call_tp);