+ ]
+ pinned = "yes"
+ attr_struct = "alloc_attr"
+ d_post = '''
+ firm_alloc_frag_arr(res, op_Alloc, &res->attr.alloc.exc.frag_arr);
+ '''
+
+class Anchor(Op):
+ mode = "mode_ANY"
+ arity = "variable"
+ flags = [ "dump_noblock" ]
+ pinned = "yes"
+ knownBlock = True
+ singleton = True
+
+class And(Binop):
+ flags = [ "commutative" ]
+
+class ASM(Op):
+ mode = "mode_T"
+ arity = "variable"
+ flags = [ "keep", "uses_memory" ]
+ pinned = "memory"
+ pinned_init = "op_pin_state_pinned"
+ attr_struct = "asm_attr"
+ attrs_name = "assem"
+ attrs = [
+ dict(
+ name = "input_constraints",
+ type = "ir_asm_constraint*",
+ ),
+ dict(
+ name = "n_output_constraints",
+ type = "int",
+ noprop = True,
+ ),
+ dict(
+ name = "output_constraints",
+ type = "ir_asm_constraint*",
+ ),
+ dict(
+ name = "n_clobbers",
+ type = "int",
+ noprop = True,
+ ),
+ dict(
+ name = "clobbers",
+ type = "ident**",
+ ),
+ dict(
+ name = "text",
+ type = "ident*",
+ ),
+ ]
+ java_noconstr = True
+
+class Bad(Op):
+ mode = "mode_Bad"
+ flags = [ "cfopcode", "fragile", "start_block", "dump_noblock" ]
+ pinned = "yes"
+ knownBlock = True
+ singleton = True
+ attr_struct = "irg_attr"
+ init = '''
+ res->attr.irg.irg = irg;
+ '''
+
+class Block(Op):
+ mode = "mode_BB"
+ knownBlock = True
+ block = "NULL"
+ pinned = "yes"
+ optimize = False
+ arity = "variable"
+ flags = [ "labeled" ]
+ attr_struct = "block_attr"
+ java_noconstr = True
+
+ init = '''
+ /* macroblock header */
+ res->in[0] = res;
+
+ res->attr.block.is_dead = 0;
+ res->attr.block.is_mb_head = 1;
+ res->attr.block.irg.irg = irg;
+ res->attr.block.backedge = new_backedge_arr(irg->obst, arity);
+ res->attr.block.in_cg = NULL;
+ res->attr.block.cg_backedge = NULL;
+ res->attr.block.extblk = NULL;
+ res->attr.block.mb_depth = 0;
+ res->attr.block.entity = NULL;
+
+ set_Block_matured(res, 1);
+ set_Block_block_visited(res, 0);
+
+ /* Create and initialize array for Phi-node construction. */
+ if (get_irg_phase_state(irg) == phase_building) {
+ res->attr.block.graph_arr = NEW_ARR_D(ir_node *, irg->obst, irg->n_loc);
+ memset(res->attr.block.graph_arr, 0, irg->n_loc * sizeof(ir_node*));
+ }
+ '''
+