13 ins = [ "left", "right" ]
28 ins = [ "mem", "size" ],
29 outs = [ "M", "X_regular", "X_except", "res" ],
33 type = "op_pin_state",
34 initname = ".exc.pin_state",
35 init = "op_pin_state_pinned"
43 type = "ir_where_alloc"
47 #if PRECISE_EXC_CONTEXT
48 firm_alloc_frag_arr(res, op_Alloc, &res->attr.alloc.exc.frag_arr);
55 ins = [ "end_block", "start_block", "end", "start",
56 "end_reg", "end_except", "initial_exec",
57 "frame", "tls", "initial_mem", "args",
81 /* macroblock header */
84 res->attr.block.is_dead = 0;
85 res->attr.block.is_mb_head = 1;
86 res->attr.block.has_label = 0;
87 res->attr.block.irg = irg;
88 res->attr.block.backedge = new_backedge_arr(irg->obst, arity);
89 res->attr.block.in_cg = NULL;
90 res->attr.block.cg_backedge = NULL;
91 res->attr.block.extblk = NULL;
92 res->attr.block.mb_depth = 0;
93 res->attr.block.label = 0;
95 set_Block_matured(res, 1);
96 set_Block_block_visited(res, 0);
105 /* Create and initialize array for Phi-node construction. */
106 if (get_irg_phase_state(current_ir_graph) == phase_building) {
107 res->attr.block.graph_arr = NEW_ARR_D(ir_node *, current_ir_graph->obst,
108 current_ir_graph->n_loc);
109 memset(res->attr.block.graph_arr, 0, sizeof(ir_node *)*current_ir_graph->n_loc);
112 for (i = arity - 1; i >= 0; i--)
113 if (is_Unknown(in[i])) {
118 if (!has_unknown) res = optimize_node(res);
120 current_ir_graph->current_block = res;
122 IRN_VRFY_IRG(res, current_ir_graph);
126 public void addPred(Node node) {
127 binding_cons.add_immBlock_pred(ptr, node.ptr);
130 public void mature() {
131 binding_cons.mature_immBlock(ptr);
135 public Block getBlock() {
139 public boolean blockVisited() {
140 return 0 != binding.Block_block_visited(ptr);
143 public void markBlockVisited() {
144 binding.mark_Block_block_visited(ptr);
153 ins = [ "mem", "index", "lower", "upper" ],
154 outs = [ "M", "X_regular", "X_except", "res" ],
158 type = "op_pin_state",
159 initname = ".exc.pin_state",
160 init = "op_pin_state_pinned"
164 #if PRECISE_EXC_CONTEXT
165 firm_alloc_frag_arr(res, op_Bound, &res->attr.bound.exc.frag_arr);
178 outs = [ "M_regular", "X_regular", "X_except", "T_result", "M_except", "P_value_res_base" ],
182 type = "op_pin_state",
183 initname = ".exc.pin_state",
184 init = "op_pin_state_pinned"
187 type = "ir_builtin_kind",
196 assert((get_unknown_type() == type) || is_Method_type(type));
199 # TODO: No firm_alloc_frag_arr??
203 ins = [ "mem", "ptr" ],
205 outs = [ "M_regular", "X_regular", "X_except", "T_result", "M_except", "P_value_res_base" ],
209 type = "op_pin_state",
210 initname = ".exc.pin_state",
211 init = "op_pin_state_pinned"
219 assert((get_unknown_type() == type) || is_Method_type(type));
222 #if PRECISE_EXC_CONTEXT
223 firm_alloc_frag_arr(res, op_Call, &res->attr.call.exc.frag_arr);
234 mode = "get_irn_mode(irn_op)",
241 init = "assert(is_atomic_type(type));"
246 outs = [ "False", "Eq", "Lt", "Le", "Gt", "Ge", "Lg", "Leg", "Uo", "Ue", "Ul", "Ule", "Ug", "Uge", "Ne", "True" ],
250 ins = [ "selector" ],
251 outs = [ "false", "true" ],
259 name = "default_proj",
265 type = "cond_jmp_predicate",
266 init = "COND_JMP_PRED_NONE"
272 ins = [ "value", "bound" ],
273 mode = "get_irn_mode(irn_value)",
310 ins = [ "mem", "dst", "src" ],
311 outs = [ "M", "X_regular", "X_except" ],
315 type = "op_pin_state",
316 initname = ".exc.pin_state",
317 init = "op_pin_state_pinned"
325 #if PRECISE_EXC_CONTEXT
326 firm_alloc_frag_arr(res, op_CopyB, &res->attr.copyb.exc.frag_arr);
332 ins = [ "mem", "dividend", "divisor" ],
333 outs = [ "M", "X_regular", "X_except", "res" ],
334 attrs_name = "divmod",
342 type = "op_pin_state",
343 initname = ".exc.pin_state"
346 name = "no_remainder",
356 #if PRECISE_EXC_CONTEXT
357 firm_alloc_frag_arr(res, op_Div, &res->attr.except.frag_arr);
363 ins = [ "mem", "dividend", "divisor" ],
364 outs = [ "M", "X_regular", "X_except", "res_div", "res_mod" ],
365 attrs_name = "divmod",
373 type = "op_pin_state",
374 initname = ".exc.pin_state"
378 #if PRECISE_EXC_CONTEXT
379 firm_alloc_frag_arr(res, op_DivMod, &res->attr.except.frag_arr);
386 op_flags = "cfopcode",
406 # TODO: Broken asserts in original:
407 # assert(get_Proj_pred(res));
408 # assert(get_nodes_block(get_Proj_pred(res)));
412 ins = [ "mem", "ptr", "size" ],
421 type = "ir_where_alloc"
432 op_flags = "cfopcode",
438 ins = [ "store", "objptr" ],
439 outs = [ "M", "X_regular", "X_except", "res", "M_except" ],
443 type = "op_pin_state",
444 initname = ".exc.pin_state",
445 init = "op_pin_state_floats"
453 # TODO: No firm_alloc_frag_arr???
458 op_flags = "cfopcode",
464 ins = [ "mem", "ptr" ],
465 outs = [ "M", "X_regular", "X_except", "res" ],
470 java_name = "load_mode"
475 type = "ir_cons_flags",
480 #if PRECISE_EXC_CONTEXT
481 firm_alloc_frag_arr(res, op_Load, &res->attr.load.exc.frag_arr);
491 ins = [ "mem", "dividend", "divisor" ],
492 outs = [ "M", "X_regular", "X_except", "res" ],
493 attrs_name = "divmod",
501 type = "op_pin_state",
502 initname = ".exc.pin_state"
506 #if PRECISE_EXC_CONTEXT
507 firm_alloc_frag_arr(res, op_Mod, &res->attr.except.frag_arr);
521 ins = [ "sel", "false", "true" ]
545 mode = "get_irn_mode(irn_op)"
560 ins = [ "mem", "dividend", "divisor" ],
561 outs = [ "M", "X_regular", "X_except", "res" ],
562 attrs_name = "divmod",
570 type = "op_pin_state",
571 initname = ".exc.pin_state"
575 #if PRECISE_EXC_CONTEXT
576 firm_alloc_frag_arr(res, op_Quot, &res->attr.except.frag_arr);
582 ins = [ "mem", "exo_ptr" ],
597 ins = [ "mem", "ptr" ],
599 mode = "is_Method_type(get_entity_type(entity)) ? mode_P_code : mode_P_data",
622 op_flags = "cfopcode",
629 ins = [ "mem", "ptr", "value" ],
630 outs = [ "M", "X_regular", "X_except" ],
633 type = "ir_cons_flags",
638 #if PRECISE_EXC_CONTEXT
639 firm_alloc_frag_arr(res, op_Store, &res->attr.store.exc.frag_arr);
673 block = "get_irg_start_block(irg)",