src/share/vm/opto/memnode.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6689060 Cdiff src/share/vm/opto/memnode.cpp

src/share/vm/opto/memnode.cpp

Print this page

        

*** 752,768 **** #ifdef _LP64 if (adr->bottom_type()->is_narrow()) { const TypeNarrowOop* narrowtype; if (rt->isa_narrowoop()) { narrowtype = rt->is_narrowoop(); - rt = narrowtype->make_oopptr(); } else { narrowtype = rt->is_oopptr()->make_narrowoop(); } Node* load = gvn.transform(new (C, 3) LoadNNode(ctl, mem, adr, adr_type, narrowtype)); ! return new (C, 2) DecodeNNode(load, rt); } else #endif { assert(!adr->bottom_type()->is_narrow(), "should have got back a narrow oop"); return new (C, 3) LoadPNode(ctl, mem, adr, adr_type, rt->is_oopptr()); --- 752,767 ---- #ifdef _LP64 if (adr->bottom_type()->is_narrow()) { const TypeNarrowOop* narrowtype; if (rt->isa_narrowoop()) { narrowtype = rt->is_narrowoop(); } else { narrowtype = rt->is_oopptr()->make_narrowoop(); } Node* load = gvn.transform(new (C, 3) LoadNNode(ctl, mem, adr, adr_type, narrowtype)); ! return DecodeNNode::decode(&gvn, load); } else #endif { assert(!adr->bottom_type()->is_narrow(), "should have got back a narrow oop"); return new (C, 3) LoadPNode(ctl, mem, adr, adr_type, rt->is_oopptr());
*** 1839,1857 **** #ifdef _LP64 if (adr->bottom_type()->is_narrow() || (UseCompressedOops && val->bottom_type()->isa_klassptr() && adr->bottom_type()->isa_rawptr())) { const TypePtr* type = val->bottom_type()->is_ptr(); ! Node* cp; ! if (type->isa_oopptr()) { ! const TypeNarrowOop* etype = type->is_oopptr()->make_narrowoop(); ! cp = gvn.transform(new (C, 2) EncodePNode(val, etype)); ! } else if (type == TypePtr::NULL_PTR) { ! cp = gvn.transform(new (C, 1) ConNNode(TypeNarrowOop::NULL_PTR)); ! } else { ! ShouldNotReachHere(); ! } return new (C, 4) StoreNNode(ctl, mem, adr, adr_type, cp); } else #endif { return new (C, 4) StorePNode(ctl, mem, adr, adr_type, val); --- 1838,1848 ---- #ifdef _LP64 if (adr->bottom_type()->is_narrow() || (UseCompressedOops && val->bottom_type()->isa_klassptr() && adr->bottom_type()->isa_rawptr())) { const TypePtr* type = val->bottom_type()->is_ptr(); ! Node* cp = EncodePNode::encode(&gvn, val); return new (C, 4) StoreNNode(ctl, mem, adr, adr_type, cp); } else #endif { return new (C, 4) StorePNode(ctl, mem, adr, adr_type, val);
src/share/vm/opto/memnode.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File