comparison 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
comparison
equal deleted inserted replaced
220:30369db7f5d2 221:1e026f8da827
2192 // reference stores need a store barrier. 2192 // reference stores need a store barrier.
2193 // (They don't if CAS fails, but it isn't worth checking.) 2193 // (They don't if CAS fails, but it isn't worth checking.)
2194 pre_barrier(control(), base, adr, alias_idx, newval, value_type, T_OBJECT); 2194 pre_barrier(control(), base, adr, alias_idx, newval, value_type, T_OBJECT);
2195 #ifdef _LP64 2195 #ifdef _LP64
2196 if (adr->bottom_type()->is_ptr_to_narrowoop()) { 2196 if (adr->bottom_type()->is_ptr_to_narrowoop()) {
2197 Node *newval_enc = _gvn.transform(new (C, 2) EncodePNode(newval, newval->bottom_type()->make_narrowoop()));
2198 Node *oldval_enc = _gvn.transform(new (C, 2) EncodePNode(oldval, oldval->bottom_type()->make_narrowoop()));
2197 cas = _gvn.transform(new (C, 5) CompareAndSwapNNode(control(), mem, adr, 2199 cas = _gvn.transform(new (C, 5) CompareAndSwapNNode(control(), mem, adr,
2198 EncodePNode::encode(&_gvn, newval), 2200 newval_enc, oldval_enc));
2199 EncodePNode::encode(&_gvn, oldval)));
2200 } else 2201 } else
2201 #endif 2202 #endif
2202 { 2203 {
2203 cas = _gvn.transform(new (C, 5) CompareAndSwapPNode(control(), mem, adr, newval, oldval)); 2204 cas = _gvn.transform(new (C, 5) CompareAndSwapPNode(control(), mem, adr, newval, oldval));
2204 } 2205 }
2205 post_barrier(control(), cas, base, adr, alias_idx, newval, T_OBJECT, true); 2206 post_barrier(control(), cas, base, adr, alias_idx, newval, T_OBJECT, true);
2206 break; 2207 break;
2207 default: 2208 default:
2208 ShouldNotReachHere(); 2209 ShouldNotReachHere();
2209 break; 2210 break;