< prev index next >

hotspot/src/share/vm/c1/c1_LIRGenerator.cpp

Print this page
rev 10443 : imported patch c1_LIRGenerator

*** 148,169 **** PhiResolver::~PhiResolver() { int i; // resolve any cycles in moves from and to virtual registers for (i = virtual_operands().length() - 1; i >= 0; i --) { ! ResolveNode* node = virtual_operands()[i]; if (!node->visited()) { _loop = NULL; move(NULL, node); node->set_start_node(); assert(_temp->is_illegal(), "move_temp_to() call missing"); } } // generate move for move from non virtual register to abitrary destination for (i = other_operands().length() - 1; i >= 0; i --) { ! ResolveNode* node = other_operands()[i]; for (int j = node->no_of_destinations() - 1; j >= 0; j --) { emit_move(node->operand(), node->destination_at(j)->operand()); } } } --- 148,169 ---- PhiResolver::~PhiResolver() { int i; // resolve any cycles in moves from and to virtual registers for (i = virtual_operands().length() - 1; i >= 0; i --) { ! ResolveNode* node = virtual_operands().at(i); if (!node->visited()) { _loop = NULL; move(NULL, node); node->set_start_node(); assert(_temp->is_illegal(), "move_temp_to() call missing"); } } // generate move for move from non virtual register to abitrary destination for (i = other_operands().length() - 1; i >= 0; i --) { ! ResolveNode* node = other_operands().at(i); for (int j = node->no_of_destinations() - 1; j >= 0; j --) { emit_move(node->operand(), node->destination_at(j)->operand()); } } }
*** 175,185 **** int vreg_num = opr->vreg_number(); node = vreg_table().at_grow(vreg_num, NULL); assert(node == NULL || node->operand() == opr, ""); if (node == NULL) { node = new ResolveNode(opr); ! vreg_table()[vreg_num] = node; } // Make sure that all virtual operands show up in the list when // they are used as the source of a move. if (source && !virtual_operands().contains(node)) { virtual_operands().append(node); --- 175,185 ---- int vreg_num = opr->vreg_number(); node = vreg_table().at_grow(vreg_num, NULL); assert(node == NULL || node->operand() == opr, ""); if (node == NULL) { node = new ResolveNode(opr); ! vreg_table().at_put(vreg_num, node); } // Make sure that all virtual operands show up in the list when // they are used as the source of a move. if (source && !virtual_operands().contains(node)) { virtual_operands().append(node);
< prev index next >