13 ins = [ "left", "right" ]
28 ins = [ "mem", "size" ],
29 outs = [ "M", "X_regular", "X_except", "res" ],
37 type = "ir_where_alloc"
41 pinned_init = "pinned",
43 #if PRECISE_EXC_CONTEXT
44 firm_alloc_frag_arr(res, op_Alloc, &res->attr.alloc.exc.frag_arr);
74 /* macroblock header */
77 res->attr.block.is_dead = 0;
78 res->attr.block.is_mb_head = 1;
79 res->attr.block.has_label = 0;
80 res->attr.block.irg = irg;
81 res->attr.block.backedge = new_backedge_arr(irg->obst, arity);
82 res->attr.block.in_cg = NULL;
83 res->attr.block.cg_backedge = NULL;
84 res->attr.block.extblk = NULL;
85 res->attr.block.mb_depth = 0;
86 res->attr.block.label = 0;
88 set_Block_matured(res, 1);
89 set_Block_block_visited(res, 0);
98 /* Create and initialize array for Phi-node construction. */
99 if (get_irg_phase_state(current_ir_graph) == phase_building) {
100 res->attr.block.graph_arr = NEW_ARR_D(ir_node *, current_ir_graph->obst,
101 current_ir_graph->n_loc);
102 memset(res->attr.block.graph_arr, 0, sizeof(ir_node *)*current_ir_graph->n_loc);
105 for (i = arity - 1; i >= 0; i--)
106 if (is_Unknown(in[i])) {
111 if (!has_unknown) res = optimize_node(res);
113 current_ir_graph->current_block = res;
115 IRN_VRFY_IRG(res, current_ir_graph);
119 public void addPred(Node node) {
120 binding_cons.add_immBlock_pred(ptr, node.ptr);
123 public void mature() {
124 binding_cons.mature_immBlock(ptr);
128 public Block getBlock() {
132 public boolean blockVisited() {
133 return 0 != binding.Block_block_visited(ptr);
136 public void markBlockVisited() {
137 binding.mark_Block_block_visited(ptr);
140 public boolean isBad() {
141 return binding.is_Bad(ptr) != 0;
151 ins = [ "mem", "index", "lower", "upper" ],
152 outs = [ "M", "X_regular", "X_except", "res" ],
153 pinned = "exception",
154 pinned_init = "pinned",
156 #if PRECISE_EXC_CONTEXT
157 firm_alloc_frag_arr(res, op_Bound, &res->attr.bound.exc.frag_arr);
170 outs = [ "M_regular", "X_regular", "X_except", "T_result", "M_except", "P_value_res_base" ],
173 type = "ir_builtin_kind",
182 pinned_init = "pinned",
184 assert((get_unknown_type() == type) || is_Method_type(type));
187 # TODO: No firm_alloc_frag_arr??
191 ins = [ "mem", "ptr" ],
193 outs = [ "M_regular", "X_regular", "X_except", "T_result", "M_except", "P_value_res_base" ],
201 pinned_init = "pinned",
203 assert((get_unknown_type() == type) || is_Method_type(type));
206 #if PRECISE_EXC_CONTEXT
207 firm_alloc_frag_arr(res, op_Call, &res->attr.call.exc.frag_arr);
218 mode = "get_irn_mode(irn_op)",
225 init = "assert(is_atomic_type(type));"
230 outs = [ "False", "Eq", "Lt", "Le", "Gt", "Ge", "Lg", "Leg", "Uo", "Ue", "Ul", "Ule", "Ug", "Uge", "Ne", "True" ],
234 ins = [ "selector" ],
235 outs = [ "false", "true" ],
243 name = "default_proj",
249 type = "cond_jmp_predicate",
250 init = "COND_JMP_PRED_NONE"
256 ins = [ "value", "bound" ],
257 mode = "get_irn_mode(irn_value)",
294 ins = [ "mem", "dst", "src" ],
295 outs = [ "M", "X_regular", "X_except" ],
303 pinned_init = "pinned",
305 #if PRECISE_EXC_CONTEXT
306 firm_alloc_frag_arr(res, op_CopyB, &res->attr.copyb.exc.frag_arr);
312 ins = [ "mem", "left", "right" ],
313 outs = [ "M", "X_regular", "X_except", "res" ],
314 attrs_name = "divmod",
321 name = "no_remainder",
330 pinned = "exception",
332 #if PRECISE_EXC_CONTEXT
333 firm_alloc_frag_arr(res, op_Div, &res->attr.except.frag_arr);
339 ins = [ "mem", "left", "right" ],
340 outs = [ "M", "X_regular", "X_except", "res_div", "res_mod" ],
341 attrs_name = "divmod",
348 pinned = "exception",
350 #if PRECISE_EXC_CONTEXT
351 firm_alloc_frag_arr(res, op_DivMod, &res->attr.except.frag_arr);
358 op_flags = "cfopcode",
378 # TODO: Broken asserts in original:
379 # assert(get_Proj_pred(res));
380 # assert(get_nodes_block(get_Proj_pred(res)));
384 ins = [ "mem", "ptr", "size" ],
393 type = "ir_where_alloc"
404 op_flags = "cfopcode",
410 ins = [ "store", "obj" ],
411 outs = [ "M", "X_regular", "X_except", "res", "M_except" ],
419 pinned_init = "floats",
424 op_flags = "cfopcode",
430 ins = [ "mem", "ptr" ],
431 outs = [ "M", "X_regular", "X_except", "res" ],
436 java_name = "load_mode"
441 type = "ir_cons_flags",
446 #if PRECISE_EXC_CONTEXT
447 firm_alloc_frag_arr(res, op_Load, &res->attr.load.exc.frag_arr);
457 ins = [ "mem", "left", "right" ],
458 outs = [ "M", "X_regular", "X_except", "res" ],
459 attrs_name = "divmod",
466 pinned = "exception",
468 #if PRECISE_EXC_CONTEXT
469 firm_alloc_frag_arr(res, op_Mod, &res->attr.except.frag_arr);
483 ins = [ "sel", "false", "true" ]
507 mode = "get_irn_mode(irn_op)"
522 ins = [ "mem", "left", "right" ],
523 outs = [ "M", "X_regular", "X_except", "res" ],
524 attrs_name = "divmod",
531 pinned = "exception",
533 #if PRECISE_EXC_CONTEXT
534 firm_alloc_frag_arr(res, op_Quot, &res->attr.except.frag_arr);
540 ins = [ "mem", "exo_ptr" ],
555 ins = [ "mem", "ptr" ],
557 mode = "is_Method_type(get_entity_type(entity)) ? mode_P_code : mode_P_data",
580 op_flags = "cfopcode",
587 ins = [ "mem", "ptr", "value" ],
588 outs = [ "M", "X_regular", "X_except" ],
591 type = "ir_cons_flags",
596 #if PRECISE_EXC_CONTEXT
597 firm_alloc_frag_arr(res, op_Store, &res->attr.store.exc.frag_arr);
631 block = "get_irg_start_block(irg)",