1.1 --- a/src/share/vm/opto/memnode.cpp Thu Apr 17 07:16:03 2008 -0700 1.2 +++ b/src/share/vm/opto/memnode.cpp Wed Apr 23 11:20:36 2008 -0700 1.3 @@ -754,13 +754,12 @@ 1.4 const TypeNarrowOop* narrowtype; 1.5 if (rt->isa_narrowoop()) { 1.6 narrowtype = rt->is_narrowoop(); 1.7 - rt = narrowtype->make_oopptr(); 1.8 } else { 1.9 narrowtype = rt->is_oopptr()->make_narrowoop(); 1.10 } 1.11 Node* load = gvn.transform(new (C, 3) LoadNNode(ctl, mem, adr, adr_type, narrowtype)); 1.12 1.13 - return new (C, 2) DecodeNNode(load, rt); 1.14 + return DecodeNNode::decode(&gvn, load); 1.15 } else 1.16 #endif 1.17 { 1.18 @@ -1841,15 +1840,7 @@ 1.19 (UseCompressedOops && val->bottom_type()->isa_klassptr() && 1.20 adr->bottom_type()->isa_rawptr())) { 1.21 const TypePtr* type = val->bottom_type()->is_ptr(); 1.22 - Node* cp; 1.23 - if (type->isa_oopptr()) { 1.24 - const TypeNarrowOop* etype = type->is_oopptr()->make_narrowoop(); 1.25 - cp = gvn.transform(new (C, 2) EncodePNode(val, etype)); 1.26 - } else if (type == TypePtr::NULL_PTR) { 1.27 - cp = gvn.transform(new (C, 1) ConNNode(TypeNarrowOop::NULL_PTR)); 1.28 - } else { 1.29 - ShouldNotReachHere(); 1.30 - } 1.31 + Node* cp = EncodePNode::encode(&gvn, val); 1.32 return new (C, 4) StoreNNode(ctl, mem, adr, adr_type, cp); 1.33 } else 1.34 #endif