Mercurial > hg > truffle
diff src/share/vm/opto/library_call.cpp @ 221:1e026f8da827
6710487: More than half of JDI Regression tests hang with COOPs in -Xcomp mode
Summary: Remove DecodeNNode::decode() and EncodePNode::encode() methods.
Reviewed-by: rasbold, never
author | kvn |
---|---|
date | Tue, 24 Jun 2008 10:43:29 -0700 |
parents | 510f98a80563 |
children | 9c2ecc2ffb12 |
line wrap: on
line diff
--- a/src/share/vm/opto/library_call.cpp Mon Jun 23 18:21:18 2008 -0700 +++ b/src/share/vm/opto/library_call.cpp Tue Jun 24 10:43:29 2008 -0700 @@ -2194,14 +2194,15 @@ pre_barrier(control(), base, adr, alias_idx, newval, value_type, T_OBJECT); #ifdef _LP64 if (adr->bottom_type()->is_ptr_to_narrowoop()) { + Node *newval_enc = _gvn.transform(new (C, 2) EncodePNode(newval, newval->bottom_type()->make_narrowoop())); + Node *oldval_enc = _gvn.transform(new (C, 2) EncodePNode(oldval, oldval->bottom_type()->make_narrowoop())); cas = _gvn.transform(new (C, 5) CompareAndSwapNNode(control(), mem, adr, - EncodePNode::encode(&_gvn, newval), - EncodePNode::encode(&_gvn, oldval))); + newval_enc, oldval_enc)); } else #endif - { - cas = _gvn.transform(new (C, 5) CompareAndSwapPNode(control(), mem, adr, newval, oldval)); - } + { + cas = _gvn.transform(new (C, 5) CompareAndSwapPNode(control(), mem, adr, newval, oldval)); + } post_barrier(control(), cas, base, adr, alias_idx, newval, T_OBJECT, true); break; default: