< prev index next >

src/hotspot/share/opto/macro.cpp

Print this page

        

@@ -1718,17 +1718,17 @@
     // Encode array storage properties into klass pointer
     assert(EnableValhalla, "array storage properties not supported");
     if (UseCompressedClassPointers) {
       // Compress the klass pointer before inserting the storage properties value
       metadata = transform_later(new EncodePKlassNode(metadata, metadata->bottom_type()->make_narrowklass()));
-    }
+      metadata = transform_later(new CastN2INode(metadata));
+      metadata = transform_later(new OrINode(metadata, transform_later(new ConvL2INode(properties))));
+      bt = T_INT;
+    } else {
     metadata = transform_later(new CastP2XNode(NULL, metadata));
     metadata = transform_later(new OrXNode(metadata, properties));
     bt = T_LONG;
-    if (UseCompressedClassPointers) {
-      bt = T_INT;
-      metadata = transform_later(new ConvL2INode(metadata));
     }
   }
   rawmem = make_store(control, rawmem, object, oopDesc::klass_offset_in_bytes(), metadata, bt);
 
   int header_size = alloc->minimum_header_size();  // conservatively small
< prev index next >