+ ir_node **r_in;
+ ir_node *res;
+ int r_arity;
+
+ r_arity = arity+1;
+ NEW_ARR_A (ir_node *, r_in, r_arity);
+ r_in[0] = callee;
+ memcpy (&r_in[1], in, sizeof (ir_node *) * arity);
+
+ res = new_ir_node (db, irg, block, op_FuncCall, mode_T, r_arity, r_in);
+
+ assert(is_method_type(tp));
+ set_FuncCall_type(res, tp);
+ res->attr.call.callee_arr = NULL;
+ res = optimize_node (res);
+ irn_vrfy_irg (res, irg);
+ return res;
+}
+
+
+INLINE ir_node *new_r_Block (ir_graph *irg, int arity, ir_node **in) {
+ return new_rd_Block(NULL, irg, arity, in);
+}
+INLINE ir_node *new_r_Start (ir_graph *irg, ir_node *block) {
+ return new_rd_Start(NULL, irg, block);
+}
+INLINE ir_node *new_r_End (ir_graph *irg, ir_node *block) {
+ return new_rd_End(NULL, irg, block);
+}
+INLINE ir_node *new_r_Jmp (ir_graph *irg, ir_node *block) {
+ return new_rd_Jmp(NULL, irg, block);
+}
+INLINE ir_node *new_r_Cond (ir_graph *irg, ir_node *block, ir_node *c) {
+ return new_rd_Cond(NULL, irg, block, c);
+}
+INLINE ir_node *new_r_Return (ir_graph *irg, ir_node *block,
+ ir_node *store, int arity, ir_node **in) {
+ return new_rd_Return(NULL, irg, block, store, arity, in);
+}
+INLINE ir_node *new_r_Raise (ir_graph *irg, ir_node *block,
+ ir_node *store, ir_node *obj) {
+ return new_rd_Raise(NULL, irg, block, store, obj);
+}
+INLINE ir_node *new_r_Const (ir_graph *irg, ir_node *block,
+ ir_mode *mode, tarval *con) {
+ return new_rd_Const(NULL, irg, block, mode, con);
+}
+INLINE ir_node *new_r_SymConst (ir_graph *irg, ir_node *block,
+ type_or_id_p value, symconst_kind symkind) {
+ return new_rd_SymConst(NULL, irg, block, value, symkind);
+}
+INLINE ir_node *new_r_Sel (ir_graph *irg, ir_node *block, ir_node *store,
+ ir_node *objptr, int n_index, ir_node **index,
+ entity *ent) {
+ return new_rd_Sel(NULL, irg, block, store, objptr, n_index, index, ent);
+}
+INLINE ir_node *new_r_InstOf (ir_graph *irg, ir_node *block, ir_node *store, ir_node *objptr,
+ type *ent) {
+ return (new_rd_InstOf (NULL, irg, block, store, objptr, ent));
+}
+INLINE ir_node *new_r_Call (ir_graph *irg, ir_node *block, ir_node *store,
+ ir_node *callee, int arity, ir_node **in,
+ type *tp) {
+ return new_rd_Call(NULL, irg, block, store, callee, arity, in, tp);
+}
+INLINE ir_node *new_r_Add (ir_graph *irg, ir_node *block,
+ ir_node *op1, ir_node *op2, ir_mode *mode) {
+ return new_rd_Add(NULL, irg, block, op1, op2, mode);
+}
+INLINE ir_node *new_r_Sub (ir_graph *irg, ir_node *block,
+ ir_node *op1, ir_node *op2, ir_mode *mode) {
+ return new_rd_Sub(NULL, irg, block, op1, op2, mode);
+}
+INLINE ir_node *new_r_Minus (ir_graph *irg, ir_node *block,
+ ir_node *op, ir_mode *mode) {
+ return new_rd_Minus(NULL, irg, block, op, mode);
+}
+INLINE ir_node *new_r_Mul (ir_graph *irg, ir_node *block,
+ ir_node *op1, ir_node *op2, ir_mode *mode) {
+ return new_rd_Mul(NULL, irg, block, op1, op2, mode);
+}
+INLINE ir_node *new_r_Quot (ir_graph *irg, ir_node *block,
+ ir_node *memop, ir_node *op1, ir_node *op2) {
+ return new_rd_Quot(NULL, irg, block, memop, op1, op2);
+}
+INLINE ir_node *new_r_DivMod (ir_graph *irg, ir_node *block,
+ ir_node *memop, ir_node *op1, ir_node *op2) {
+ return new_rd_DivMod(NULL, irg, block, memop, op1, op2);
+}
+INLINE ir_node *new_r_Div (ir_graph *irg, ir_node *block,
+ ir_node *memop, ir_node *op1, ir_node *op2) {
+ return new_rd_Div(NULL, irg, block, memop, op1, op2);
+}
+INLINE ir_node *new_r_Mod (ir_graph *irg, ir_node *block,
+ ir_node *memop, ir_node *op1, ir_node *op2) {
+ return new_rd_Mod(NULL, irg, block, memop, op1, op2);
+}
+INLINE ir_node *new_r_Abs (ir_graph *irg, ir_node *block,
+ ir_node *op, ir_mode *mode) {
+ return new_rd_Abs(NULL, irg, block, op, mode);
+}
+INLINE ir_node *new_r_And (ir_graph *irg, ir_node *block,
+ ir_node *op1, ir_node *op2, ir_mode *mode) {
+ return new_rd_And(NULL, irg, block, op1, op2, mode);
+}
+INLINE ir_node *new_r_Or (ir_graph *irg, ir_node *block,
+ ir_node *op1, ir_node *op2, ir_mode *mode) {
+ return new_rd_Or(NULL, irg, block, op1, op2, mode);
+}
+INLINE ir_node *new_r_Eor (ir_graph *irg, ir_node *block,
+ ir_node *op1, ir_node *op2, ir_mode *mode) {
+ return new_rd_Eor(NULL, irg, block, op1, op2, mode);
+}
+INLINE ir_node *new_r_Not (ir_graph *irg, ir_node *block,
+ ir_node *op, ir_mode *mode) {
+ return new_rd_Not(NULL, irg, block, op, mode);
+}
+INLINE ir_node *new_r_Cmp (ir_graph *irg, ir_node *block,
+ ir_node *op1, ir_node *op2) {
+ return new_rd_Cmp(NULL, irg, block, op1, op2);
+}
+INLINE ir_node *new_r_Shl (ir_graph *irg, ir_node *block,
+ ir_node *op, ir_node *k, ir_mode *mode) {
+ return new_rd_Shl(NULL, irg, block, op, k, mode);
+}
+INLINE ir_node *new_r_Shr (ir_graph *irg, ir_node *block,
+ ir_node *op, ir_node *k, ir_mode *mode) {
+ return new_rd_Shr(NULL, irg, block, op, k, mode);
+}
+INLINE ir_node *new_r_Shrs (ir_graph *irg, ir_node *block,
+ ir_node *op, ir_node *k, ir_mode *mode) {
+ return new_rd_Shrs(NULL, irg, block, op, k, mode);