--- old/src/share/vm/opto/coalesce.cpp 2016-07-11 22:46:19.149473193 +0900 +++ new/src/share/vm/opto/coalesce.cpp 2016-07-11 22:46:19.012473672 +0900 @@ -292,7 +292,7 @@ // Copy any flags as well _phc.clone_projs(pred, pred->end_idx(), m, copy, _phc._lrg_map); } else { - const RegMask *rm = C->matcher()->idealreg2spillmask[m->ideal_reg()]; + const RegMask *rm = C->matcher()->idealreg2spillmask[static_cast(m->ideal_reg())]; copy = new MachSpillCopyNode(MachSpillCopyNode::PhiInput, m, *rm, *rm); // Find a good place to insert. Kinda tricky, use a subroutine insert_copy_with_overlap(pred,copy,phi_name,src_name); @@ -326,7 +326,7 @@ b->insert_node(copy, l++); l += _phc.clone_projs(b, l, m, copy, _phc._lrg_map); } else { - const RegMask *rm = C->matcher()->idealreg2spillmask[m->ideal_reg()]; + const RegMask *rm = C->matcher()->idealreg2spillmask[static_cast(m->ideal_reg())]; copy = new MachSpillCopyNode(MachSpillCopyNode::TwoAddress, m, *rm, *rm); // Insert the copy in the basic block, just before us b->insert_node(copy, l++); @@ -373,7 +373,7 @@ if( k < b->_num_succs ) continue; // Live out; do not pre-split // Split the lrg at this use - const RegMask *rm = C->matcher()->idealreg2spillmask[inp->ideal_reg()]; + const RegMask *rm = C->matcher()->idealreg2spillmask[static_cast(inp->ideal_reg())]; Node* copy = new MachSpillCopyNode(MachSpillCopyNode::DebugUse, inp, *rm, *rm); // Insert the copy in the use-def chain n->set_req(inpidx, copy );