< prev index next >

src/hotspot/share/opto/memnode.cpp

Print this page

        

*** 2189,2211 **** } //============================================================================= //----------------------------LoadKlassNode::make------------------------------ // Polymorphic factory method: ! Node* LoadKlassNode::make(PhaseGVN& gvn, Node* ctl, Node* mem, Node* adr, const TypePtr* at, const TypeKlassPtr* tk) { // sanity check the alias category against the created node type const TypePtr *adr_type = adr->bottom_type()->isa_ptr(); assert(adr_type != NULL, "expecting TypeKlassPtr"); #ifdef _LP64 if (adr_type->is_ptr_to_narrowklass()) { assert(UseCompressedClassPointers, "no compressed klasses"); ! Node* load_klass = gvn.transform(new LoadNKlassNode(ctl, mem, adr, at, tk->make_narrowklass(), MemNode::unordered)); return new DecodeNKlassNode(load_klass, load_klass->bottom_type()->make_ptr()); } #endif assert(!adr_type->is_ptr_to_narrowklass() && !adr_type->is_ptr_to_narrowoop(), "should have got back a narrow oop"); ! return new LoadKlassNode(ctl, mem, adr, at, tk, MemNode::unordered); } //------------------------------Value------------------------------------------ const Type* LoadKlassNode::Value(PhaseGVN* phase) const { return klass_value_common(phase); --- 2189,2212 ---- } //============================================================================= //----------------------------LoadKlassNode::make------------------------------ // Polymorphic factory method: ! Node* LoadKlassNode::make(PhaseGVN& gvn, Node* ctl, Node* mem, Node* adr, const TypePtr* at, ! const TypeKlassPtr* tk, bool clear_prop_bits) { // sanity check the alias category against the created node type const TypePtr *adr_type = adr->bottom_type()->isa_ptr(); assert(adr_type != NULL, "expecting TypeKlassPtr"); #ifdef _LP64 if (adr_type->is_ptr_to_narrowklass()) { assert(UseCompressedClassPointers, "no compressed klasses"); ! Node* load_klass = gvn.transform(new LoadNKlassNode(ctl, mem, adr, at, tk->make_narrowklass(), MemNode::unordered, clear_prop_bits)); return new DecodeNKlassNode(load_klass, load_klass->bottom_type()->make_ptr()); } #endif assert(!adr_type->is_ptr_to_narrowklass() && !adr_type->is_ptr_to_narrowoop(), "should have got back a narrow oop"); ! return new LoadKlassNode(ctl, mem, adr, at, tk, MemNode::unordered, clear_prop_bits); } //------------------------------Value------------------------------------------ const Type* LoadKlassNode::Value(PhaseGVN* phase) const { return klass_value_common(phase);
< prev index next >