return res;
} /* new_bd_Pin */
+static ir_node *
+new_bd_ASM(dbg_info *db, ir_node *block, ir_node *store, int arity, ir_node *inputs[], ident *asm_text) {
+ ir_node *res, **in;
+ ir_graph *irg = current_ir_graph;
+ int i;
+
+ NEW_ARR_A(ir_node *, in, arity + 1);
+
+ in[0] = store;
+ for (i = 0; i < arity; ++i)
+ in[i + 1] = inputs[i];
+
+ res = new_ir_node(db, irg, block, op_ASM, mode_T, arity + 1, in);
+ res->attr.assem.asm_text = asm_text;
+
+ res = optimize_node(res);
+ IRN_VRFY_IRG(res, irg);
+ return res;
+} /* new_bd_ASM */
+
/* --------------------------------------------- */
/* private interfaces, for professional use only */
/* --------------------------------------------- */
return res;
} /* new_rd_Pin */
+ir_node *new_rd_ASM(dbg_info *db, ir_graph *irg, ir_node *block, ir_node *store,
+ int arity, ir_node *inputs[], ident *asm_text) {
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_ASM(db, block, store, arity, inputs, asm_text);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_ASM */
+
+
ir_node *new_r_Block(ir_graph *irg, int arity, ir_node **in) {
return new_rd_Block(NULL, irg, arity, in);
}
ir_node *new_r_Pin(ir_graph *irg, ir_node *block, ir_node *node) {
return new_rd_Pin(NULL, irg, block, node);
}
+ir_node *new_r_ASM(ir_graph *irg, ir_node *block, ir_node *store,
+ int arity, ir_node *inputs[], ident *asm_text) {
+ return new_rd_ASM(NULL, irg, block, store, arity, inputs, asm_text);
+}
/** ********************/
/** public interfaces */
return new_bd_Pin(db, current_ir_graph->current_block, node);
} /* new_d_Pin */
+ir_node *
+new_d_ASM(dbg_info *db, ir_node *store, int arity, ir_node *inputs[], ident *asm_text) {
+ return new_bd_ASM(db, current_ir_graph->current_block, store, arity, inputs, asm_text);
+} /* new_d_ASM */
+
/* ********************************************************************* */
/* Comfortable interface with automatic Phi node construction. */
/* (Uses also constructors of ?? interface, except new_Block. */
ir_node *new_Pin(ir_node *node) {
return new_d_Pin(NULL, node);
}
+ir_node *new_ASM(ir_node *store, int arity, ir_node *inputs[], ident *asm_text) {
+ return new_d_ASM(NULL, store, arity, inputs, asm_text);
+}