[8u20, 9] RFR(S): 8011646 : SEGV in compiled code with loop predication

Roland Westrelin roland.westrelin at oracle.com
Wed May 28 20:42:34 UTC 2014


> http://cr.openjdk.java.net/~anoll/8011646/webrev.00/

That looks good to me.

Is anything changed in those lines?

4046   Node* lock_mask      = _gvn.MakeConX(markOopDesc::biased_lock_mask_in_place);
4047   Node* lmasked_header = _gvn.transform(new (C) AndXNode(header, lock_mask));
4048   Node* unlocked_val   = _gvn.MakeConX(markOopDesc::unlocked_value);
4049   Node* chk_unlocked   = _gvn.transform(new (C) CmpXNode( lmasked_header, unlocked_val));
4050   Node* test_unlocked  = _gvn.transform(new (C) BoolNode( chk_unlocked, BoolTest::ne));

4058   Node* hash_mask      = _gvn.intcon(markOopDesc::hash_mask);
4059   Node* hash_shift     = _gvn.intcon(markOopDesc::hash_shift);
4060   Node* hshifted_header= _gvn.transform(new (C) URShiftXNode(header, hash_shift));

4066   Node* hash_val       = _gvn.transform(new (C) AndINode(hshifted_header, hash_mask));

4068   Node* no_hash_val    = _gvn.intcon(markOopDesc::no_hash);
4069   Node* chk_assigned   = _gvn.transform(new (C) CmpINode( hash_val, no_hash_val));
4070   Node* test_assigned  = _gvn.transform(new (C) BoolNode( chk_assigned, BoolTest::eq));

Roland.


More information about the hotspot-compiler-dev mailing list