src/share/vm/opto/memnode.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/memnode.cpp	Tue Apr 22 13:56:31 2008
--- new/src/share/vm/opto/memnode.cpp	Tue Apr 22 13:56:31 2008

*** 752,768 **** --- 752,767 ---- #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); ! 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 **** --- 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); 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);

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