diff -r 3a86a8dcf27c -r 424f9bfe6b96 src/share/vm/opto/locknode.cpp --- a/src/share/vm/opto/locknode.cpp Tue Nov 25 13:14:07 2008 -0800 +++ b/src/share/vm/opto/locknode.cpp Wed Dec 03 13:41:37 2008 -0800 @@ -44,10 +44,15 @@ _inmask.Insert(reg); } +//-----------------------------hash-------------------------------------------- +uint BoxLockNode::hash() const { + return Node::hash() + _slot + (_is_eliminated ? Compile::current()->fixed_slots() : 0); +} + //------------------------------cmp-------------------------------------------- uint BoxLockNode::cmp( const Node &n ) const { const BoxLockNode &bn = (const BoxLockNode &)n; - return bn._slot == _slot; + return bn._slot == _slot && bn._is_eliminated == _is_eliminated; } OptoReg::Name BoxLockNode::stack_slot(Node* box_node) {