reorder opcode registration to match iro_* order
[libfirm] / ir / ir / ircons.c
index 20fe968..8f98b89 100644 (file)
@@ -836,6 +836,26 @@ new_bd_Pin(dbg_info *db, ir_node *block, ir_node *node) {
        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 */
 /* --------------------------------------------- */
@@ -1418,6 +1438,19 @@ ir_node *new_rd_Pin(dbg_info *db, ir_graph *irg, ir_node *block, ir_node *node)
        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);
 }
@@ -1651,6 +1684,10 @@ ir_node *new_r_Bound(ir_graph *irg, ir_node *block,
 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  */
@@ -2885,6 +2922,11 @@ new_d_Pin(dbg_info *db, ir_node *node) {
        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.            */
@@ -3299,3 +3341,6 @@ ir_node *new_Bound(ir_node *store, ir_node *idx, ir_node *lower, ir_node *upper)
 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);
+}