if (!insn->insndata->is_fragment)
{
- struct vreg* vreg = NULL;
+ insn->hop = current_hop = new_hop(current_bb, insn->ir);
+ emit(insn);
- switch (node->label)
+ if (!current_hop->output)
{
- case ir_to_esn(IR_REG, 1):
- case ir_to_esn(IR_REG, 2):
- case ir_to_esn(IR_REG, 4):
- case ir_to_esn(IR_REG, 8):
- vreg = node->ir->result;
- break;
-
- case ir_to_esn(IR_NOP, 0):
- vreg = node->left->ir->result;
- break;
+ switch (node->label)
+ {
+ case ir_to_esn(IR_REG, 1):
+ case ir_to_esn(IR_REG, 2):
+ case ir_to_esn(IR_REG, 4):
+ case ir_to_esn(IR_REG, 8):
+ current_hop->output = node->ir->result;
+ break;
+
+ case ir_to_esn(IR_NOP, 0):
+ current_hop->output = node->left->ir->result;
+ break;
+ }
}
- insn->hop = current_hop = new_hop(current_bb, insn->ir);
- current_hop->output = vreg;
- emit(insn);
-
hop_print('I', current_hop);
array_append(¤t_bb->hops, current_hop);