-
- /* handle support for Psi nodes */
- if (mode == mode_b || get_irn_op(node) == op_Psi) {
- for (i = get_irn_arity(node) - 1; i >= 0; --i) {
- ir_node *proj = get_irn_n(node, i);
-
- if (is_Proj(proj)) {
- ir_node *cmp = get_Proj_pred(proj);
-
- if (is_Cmp(cmp)) {
- ir_node *l = get_Cmp_left(cmp);
- mode = get_irn_mode(l);
-
- if (mode == lenv->params->high_signed ||
- mode == lenv->params->high_unsigned) {
- /* ok, found a node that will be lowered */
- ir_node *nproj;
- int rem = get_optimize();
-
- set_optimize(0);
- nproj = new_rd_Proj(
- get_irn_dbg_info(proj),
- current_ir_graph,
- get_nodes_block(proj),
- cmp,
- get_irn_mode(proj),
- get_Proj_proj(proj));
- set_optimize(rem);
-
- set_irn_n(node, i, nproj);
- lenv->flags |= MUST_BE_LOWERED;
- } /* if */
- } /* if */
- } /* if */
- } /* for */
- } /* if */