diff src/share/vm/opto/memnode.cpp @ 124:b130b98db9cf

6689060: Escape Analysis does not work with Compressed Oops Summary: 64-bits VM crashes with -XX:+AggresiveOpts (Escape Analysis + Compressed Oops) Reviewed-by: never, sgoldman
author kvn
date Wed, 23 Apr 2008 11:20:36 -0700
parents d1a5218d7eaf
children a76240c8b133
line wrap: on
line diff
--- a/src/share/vm/opto/memnode.cpp	Thu Apr 17 07:16:03 2008 -0700
+++ b/src/share/vm/opto/memnode.cpp	Wed Apr 23 11:20:36 2008 -0700
@@ -754,13 +754,12 @@
       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
       {
@@ -1841,15 +1840,7 @@
         (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();
-      }
+      Node* cp = EncodePNode::encode(&gvn, val);
       return new (C, 4) StoreNNode(ctl, mem, adr, adr_type, cp);
     } else
 #endif