+ current_ir_graph = irg;
+ res = new_bd_Load(db, block, store, adr, mode);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_Load */
+
+ir_node *
+new_rd_Store(dbg_info *db, ir_graph *irg, ir_node *block,
+ ir_node *store, ir_node *adr, ir_node *val) {
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_Store(db, block, store, adr, val);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_Store */
+
+ir_node *
+new_rd_Alloc(dbg_info *db, ir_graph *irg, ir_node *block, ir_node *store,
+ ir_node *size, ir_type *alloc_type, ir_where_alloc where) {
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_Alloc(db, block, store, size, alloc_type, where);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_Alloc */
+
+ir_node *
+new_rd_Free(dbg_info *db, ir_graph *irg, ir_node *block, ir_node *store,
+ ir_node *ptr, ir_node *size, ir_type *free_type, ir_where_alloc where) {
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_Free(db, block, store, ptr, size, free_type, where);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_Free */
+
+ir_node *
+new_rd_simpleSel(dbg_info *db, ir_graph *irg, ir_node *block,
+ ir_node *store, ir_node *objptr, ir_entity *ent) {
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_Sel(db, block, store, objptr, 0, NULL, ent);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_simpleSel */
+
+ir_node *
+new_rd_Sel(dbg_info *db, ir_graph *irg, ir_node *block, ir_node *store, ir_node *objptr,
+ int arity, ir_node **in, ir_entity *ent) {
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_Sel(db, block, store, objptr, arity, in, ent);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_Sel */
+
+ir_node *
+new_rd_SymConst_type(dbg_info *db, ir_graph *irg, ir_node *block, ir_mode *mode,
+ symconst_symbol value, symconst_kind symkind, ir_type *tp) {
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_SymConst_type(db, block, mode, value, symkind, tp);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_SymConst_type */
+
+ir_node *
+new_rd_SymConst(dbg_info *db, ir_graph *irg, ir_node *block, ir_mode *mode,
+ symconst_symbol value, symconst_kind symkind) {
+ return new_rd_SymConst_type(db, irg, block, mode, value, symkind, firm_unknown_type);
+} /* new_rd_SymConst */
+
+ ir_node *new_rd_SymConst_addr_ent(dbg_info *db, ir_graph *irg, ir_mode *mode, ir_entity *symbol, ir_type *tp) {
+ symconst_symbol sym;
+ sym.entity_p = symbol;
+ return new_rd_SymConst_type(db, irg, get_irg_start_block(irg), mode, sym, symconst_addr_ent, tp);
+} /* new_rd_SymConst_addr_ent */
+
+ir_node *new_rd_SymConst_ofs_ent(dbg_info *db, ir_graph *irg, ir_mode *mode, ir_entity *symbol, ir_type *tp) {
+ symconst_symbol sym;
+ sym.entity_p = symbol;
+ return new_rd_SymConst_type(db, irg, get_irg_start_block(irg), mode, sym, symconst_ofs_ent, tp);
+} /* new_rd_SymConst_ofs_ent */
+
+ir_node *new_rd_SymConst_addr_name(dbg_info *db, ir_graph *irg, ir_mode *mode, ident *symbol, ir_type *tp) {
+ symconst_symbol sym;
+ sym.ident_p = symbol;
+ return new_rd_SymConst_type(db, irg, get_irg_start_block(irg), mode, sym, symconst_addr_name, tp);
+} /* new_rd_SymConst_addr_name */
+
+ir_node *new_rd_SymConst_type_tag(dbg_info *db, ir_graph *irg, ir_mode *mode, ir_type *symbol, ir_type *tp) {
+ symconst_symbol sym;
+ sym.type_p = symbol;
+ return new_rd_SymConst_type(db, irg, get_irg_start_block(irg), mode, sym, symconst_type_tag, tp);
+} /* new_rd_SymConst_type_tag */
+
+ir_node *new_rd_SymConst_size(dbg_info *db, ir_graph *irg, ir_mode *mode, ir_type *symbol, ir_type *tp) {
+ symconst_symbol sym;
+ sym.type_p = symbol;
+ return new_rd_SymConst_type(db, irg, get_irg_start_block(irg), mode, sym, symconst_type_size, tp);
+} /* new_rd_SymConst_size */
+
+ir_node *new_rd_SymConst_align(dbg_info *db, ir_graph *irg, ir_mode *mode, ir_type *symbol, ir_type *tp) {
+ symconst_symbol sym;
+ sym.type_p = symbol;
+ return new_rd_SymConst_type(db, irg, get_irg_start_block(irg), mode, sym, symconst_type_align, tp);
+} /* new_rd_SymConst_align */
+
+ir_node *
+new_rd_Sync(dbg_info *db, ir_graph *irg, ir_node *block, int arity, ir_node *in[]) {
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+ int i;
+
+ current_ir_graph = irg;
+ res = new_bd_Sync(db, block);
+ current_ir_graph = rem;
+
+ for (i = 0; i < arity; ++i)
+ add_Sync_pred(res, in[i]);
+
+ return res;
+} /* new_rd_Sync */
+
+ir_node *
+new_rd_Bad(ir_graph *irg) {
+ return get_irg_bad(irg);
+} /* new_rd_Bad */
+
+ir_node *
+new_rd_Confirm(dbg_info *db, ir_graph *irg, ir_node *block, ir_node *val, ir_node *bound, pn_Cmp cmp) {
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_Confirm(db, block, val, bound, cmp);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_Confirm */
+
+ir_node *
+new_rd_Unknown(ir_graph *irg, ir_mode *m) {
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_Unknown(m);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_Unknown */
+
+ir_node *
+new_rd_CallBegin(dbg_info *db, ir_graph *irg, ir_node *block, ir_node *call) {
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_CallBegin(db, block, call);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_CallBegin */
+
+ir_node *
+new_rd_EndReg(dbg_info *db, ir_graph *irg, ir_node *block) {
+ ir_node *res;
+
+ res = new_ir_node(db, irg, block, op_EndReg, mode_T, -1, NULL);
+ set_irg_end_reg(irg, res);
+ IRN_VRFY_IRG(res, irg);
+ return res;
+} /* new_rd_EndReg */
+
+ir_node *
+new_rd_EndExcept(dbg_info *db, ir_graph *irg, ir_node *block) {
+ ir_node *res;
+
+ res = new_ir_node(db, irg, block, op_EndExcept, mode_T, -1, NULL);
+ set_irg_end_except(irg, res);
+ IRN_VRFY_IRG (res, irg);
+ return res;
+} /* new_rd_EndExcept */
+
+ir_node *
+new_rd_Break(dbg_info *db, ir_graph *irg, ir_node *block) {
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_Break(db, block);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_Break */
+
+ir_node *
+new_rd_Filter(dbg_info *db, ir_graph *irg, ir_node *block, ir_node *arg, ir_mode *mode,
+ long proj) {
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_Filter(db, block, arg, mode, proj);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_Filter */
+
+ir_node *
+new_rd_NoMem(ir_graph *irg) {
+ return get_irg_no_mem(irg);
+} /* new_rd_NoMem */
+
+ir_node *
+new_rd_Mux(dbg_info *db, ir_graph *irg, ir_node *block,
+ ir_node *sel, ir_node *ir_false, ir_node *ir_true, ir_mode *mode) {
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_Mux(db, block, sel, ir_false, ir_true, mode);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_Mux */
+
+ir_node *
+new_rd_Psi(dbg_info *db, ir_graph *irg, ir_node *block,
+ int arity, ir_node *cond[], ir_node *vals[], ir_mode *mode) {
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;