< prev index next >

src/share/vm/opto/library_call.cpp

Print this page

        

*** 3584,3594 **** if (generate_array_guard(kls, region) != NULL) // A guard was added. If the guard is taken, it was an array. phi->add_req(makecon(TypeInstPtr::make(env()->Object_klass()->java_mirror()))); // If we fall through, it's a plain class. Get its _super. p = basic_plus_adr(kls, in_bytes(Klass::super_offset())); ! kls = _gvn.transform(LoadKlassNode::make(_gvn, NULL, immutable_memory(), p, TypeRawPtr::BOTTOM, TypeKlassPtr::OBJECT_OR_NULL)); null_ctl = top(); kls = null_check_oop(kls, &null_ctl); if (null_ctl != top()) { // If the guard is taken, Object.superClass is null (both klass and mirror). region->add_req(null_ctl); --- 3584,3594 ---- if (generate_array_guard(kls, region) != NULL) // A guard was added. If the guard is taken, it was an array. phi->add_req(makecon(TypeInstPtr::make(env()->Object_klass()->java_mirror()))); // If we fall through, it's a plain class. Get its _super. p = basic_plus_adr(kls, in_bytes(Klass::super_offset())); ! kls = _gvn.transform(LoadKlassNode::make(_gvn, NULL, immutable_memory(), p, TypeRawPtr::BOTTOM, TypeKlassPtr::BOTTOM)); null_ctl = top(); kls = null_check_oop(kls, &null_ctl); if (null_ctl != top()) { // If the guard is taken, Object.superClass is null (both klass and mirror). region->add_req(null_ctl);
*** 3726,3736 **** RegionNode* region = new RegionNode(PATH_LIMIT); Node* phi = new PhiNode(region, TypeInt::BOOL); record_for_igvn(region); const TypePtr* adr_type = TypeRawPtr::BOTTOM; // memory type of loads ! const TypeKlassPtr* kls_type = TypeKlassPtr::OBJECT_OR_NULL; int class_klass_offset = java_lang_Class::klass_offset_in_bytes(); // First null-check both mirrors and load each mirror's klass metaobject. int which_arg; for (which_arg = 0; which_arg <= 1; which_arg++) { --- 3726,3736 ---- RegionNode* region = new RegionNode(PATH_LIMIT); Node* phi = new PhiNode(region, TypeInt::BOOL); record_for_igvn(region); const TypePtr* adr_type = TypeRawPtr::BOTTOM; // memory type of loads ! const TypeKlassPtr* kls_type = TypeKlassPtr::BOTTOM; int class_klass_offset = java_lang_Class::klass_offset_in_bytes(); // First null-check both mirrors and load each mirror's klass metaobject. int which_arg; for (which_arg = 0; which_arg <= 1; which_arg++) {
< prev index next >