< prev index next >
src/hotspot/share/opto/library_call.cpp
Print this page
rev 51712 : 8210656: Object equals abstraction for BarrierSetC2
*** 2965,2974 ****
--- 2965,2975 ----
// (a) Receiving thread must be the current thread.
Node* rec_thr = argument(0);
Node* tls_ptr = NULL;
Node* cur_thr = generate_current_thread(tls_ptr);
+ access_resolve_for_obj_equals(cur_thr, rec_thr);
Node* cmp_thr = _gvn.transform(new CmpPNode(cur_thr, rec_thr));
Node* bol_thr = _gvn.transform(new BoolNode(cmp_thr, BoolTest::ne));
generate_slow_guard(bol_thr, slow_region);
*** 3399,3408 ****
--- 3400,3411 ----
Node* p = basic_plus_adr(arg, class_klass_offset);
Node* kls = LoadKlassNode::make(_gvn, NULL, immutable_memory(), p, adr_type, kls_type);
klasses[which_arg] = _gvn.transform(kls);
}
+ access_resolve_for_obj_equals(args[0], args[1]);
+
// Having loaded both klasses, test each for null.
bool never_see_null = !too_many_traps(Deoptimization::Reason_null_check);
for (which_arg = 0; which_arg <= 1; which_arg++) {
Node* kls = klasses[which_arg];
Node* null_ctl = top();
*** 6114,6123 ****
--- 6117,6127 ----
return ctrl;
}
src = must_be_not_null(src, true);
dest = must_be_not_null(dest, true);
+ access_resolve_for_obj_equals(src, dest);
ciInstanceKlass* instklass_AESCrypt = klass_AESCrypt->as_instance_klass();
Node* instof = gen_instanceof(embeddedCipherObj, makecon(TypeKlassPtr::make(instklass_AESCrypt)));
Node* cmp_instof = _gvn.transform(new CmpINode(instof, intcon(1)));
< prev index next >