- if (get_irn_mode(node) == mode_T) {
- const ir_edge_t *edge;
-
- foreach_out_edge(node, edge) {
- const arch_register_t *reg;
- ir_node *proj = get_edge_src_irn(edge);
-
- if (!mode_is_data(get_irn_mode(proj)))
- continue;
-
- reg = arch_get_irn_register(proj);
- if (reg == env->reg) {
- current_state = proj;
- DBG((dbg, LEVEL_3, "\t... current_state <- %+F\n", current_state));
- }
- }
- } else {
- if (mode_is_data(get_irn_mode(node))) {
- const arch_register_t *reg = arch_get_irn_register(node);
- if (reg == env->reg) {
- current_state = node;
- DBG((dbg, LEVEL_3, "\t... current_state <- %+F\n", current_state));
- }
- }
- }
+ be_foreach_value(node, value,
+ if (!mode_is_data(get_irn_mode(value)))
+ continue;
+ arch_register_t const *const reg = arch_get_irn_register(value);
+ if (reg != env->reg)
+ continue;
+ current_state = value;
+ DBG((dbg, LEVEL_3, "\t... current_state <- %+F\n", current_state));
+ );