12 op_flags = "cfopcode",
31 op_flags = "cfopcode",
38 op_flags = "cfopcode",
64 /* macroblock header */
67 res->attr.block.is_dead = 0;
68 res->attr.block.is_mb_head = 1;
69 res->attr.block.has_label = 0;
70 res->attr.block.irg = irg;
71 res->attr.block.backedge = new_backedge_arr(irg->obst, arity);
72 res->attr.block.in_cg = NULL;
73 res->attr.block.cg_backedge = NULL;
74 res->attr.block.extblk = NULL;
75 res->attr.block.mb_depth = 0;
76 res->attr.block.label = 0;
78 set_Block_matured(res, 1);
79 set_Block_block_visited(res, 0);
88 /* Create and initialize array for Phi-node construction. */
89 if (get_irg_phase_state(current_ir_graph) == phase_building) {
90 res->attr.block.graph_arr = NEW_ARR_D(ir_node *, current_ir_graph->obst,
91 current_ir_graph->n_loc);
92 memset(res->attr.block.graph_arr, 0, sizeof(ir_node *)*current_ir_graph->n_loc);
95 for (i = arity - 1; i >= 0; i--)
96 if (is_Unknown(in[i])) {
101 if (!has_unknown) res = optimize_node(res);
103 current_ir_graph->current_block = res;
105 IRN_VRFY_IRG(res, current_ir_graph);
109 public void addPred(Node node) {
110 binding_cons.add_immBlock_pred(ptr, node.ptr);
113 public void mature() {
114 binding_cons.mature_immBlock(ptr);
118 public Block getBlock() {
122 public boolean blockVisited() {
123 return 0 != binding.Block_block_visited(ptr);
126 public void markBlockVisited() {
127 binding.mark_Block_block_visited(ptr);
146 ins = [ "mem", "ptr" ],
148 outs = [ "M_regular", "X_regular", "X_except", "T_result", "M_except", "P_value_res_base" ],
160 outs = [ "M_regular", "X_regular", "X_except", "T_result", "M_except", "P_value_res_base" ],
163 type = "ir_builtin_kind",
175 ins = [ "left", "right" ]
239 ins = [ "mem", "dividend", "divisor" ],
240 outs = [ "M", "X_regular", "X_except", "res" ],
248 type = "op_pin_state"
254 ins = [ "mem", "dividend", "divisor" ],
255 outs = [ "M", "X_regular", "X_except", "res" ],
263 type = "op_pin_state"
266 name = "no_remainder",
278 ins = [ "mem", "dividend", "divisor" ],
279 outs = [ "M", "X_regular", "X_except", "res_div", "res_mod" ],
287 type = "op_pin_state"
293 ins = [ "mem", "dividend", "divisor" ],
294 outs = [ "M", "X_regular", "X_except", "res" ],
302 type = "op_pin_state"
308 ins = [ "mem", "ptr" ],
309 outs = [ "M", "X_regular", "X_except", "res" ],
314 java_name = "load_mode"
319 type = "ir_cons_flags",
324 #if PRECISE_EXC_CONTEXT
325 firm_alloc_frag_arr(res, op_Load, &res->attr.load.exc.frag_arr);
331 ins = [ "mem", "ptr", "value" ],
332 outs = [ "M", "X_regular", "X_except" ],
335 type = "ir_cons_flags",
340 #if PRECISE_EXC_CONTEXT
341 firm_alloc_frag_arr(res, op_Store, &res->attr.store.exc.frag_arr);
348 ins = [ "end_block", "start_block", "end", "start",
349 "end_reg", "end_except", "initial_exec",
350 "frame", "tls", "initial_mem", "args",
368 mode = "get_irn_mode(irn_op)"
383 ins = [ "mem", "ptr" ],
385 mode = "is_Method_type(get_entity_type(entity)) ? mode_P_code : mode_P_data",
407 block = "get_irg_start_block(irg)",
412 ins = [ "value", "bound" ],
413 mode = "get_irn_mode(irn_value)",
438 ins = [ "sel", "false", "true" ]
442 ins = [ "selector" ],
443 outs = [ "false", "true" ],
451 name = "default_proj",
457 type = "cond_jmp_predicate",
458 init = "COND_JMP_PRED_NONE"
465 outs = [ "False", "Eq", "Lt", "Le", "Gt", "Ge", "Lg", "Leg", "Uo", "Ue", "Ul", "Ule", "Ug", "Uge", "Ne", "True" ],
484 ins = [ "mem", "size" ],
485 outs = [ "M", "X_regular", "X_except", "res" ],
493 type = "ir_where_alloc"
499 ins = [ "mem", "ptr", "size" ],
508 type = "ir_where_alloc"
514 ins = [ "mem", "dst", "src" ],
515 outs = [ "M", "X_regular", "X_except" ],