static struct expression * insert_native_arg(struct expression *root, struct expression *expr) { struct expression *_expr; _expr = arg_expr(expr); _expr->bytecode_offset = expr->bytecode_offset; if (!root) return _expr; return args_list_expr(root, _expr); }
static struct expression * insert_arg(struct expression *root, struct expression *expr, struct vm_method *method, int index) { struct expression *_expr; /* Check if we should put @expr in EXPR_ARG_THIS. */ if (is_this_arg(method, index)) _expr = arg_this_expr(expr); else _expr = arg_expr(expr); _expr->bytecode_offset = expr->bytecode_offset; set_expr_arg_reg(_expr, method, index); if (!root) return _expr; return args_list_expr(root, _expr); }