test/hotspot/jtreg/compiler/unsafe/UnsafeGetConstantField.java
changeset 52220 9c260a6b6471
parent 52015 821bfc24d750
equal deleted inserted replaced
52219:151b990e3764 52220:9c260a6b6471
   219             if (this == JavaType.L) {
   219             if (this == JavaType.L) {
   220                 return "Ljava/lang/Object;";
   220                 return "Ljava/lang/Object;";
   221             } else {
   221             } else {
   222                 return name();
   222                 return name();
   223             }
   223             }
       
   224         }
       
   225         String unsafeTypeName() {
       
   226             return typeName.equals("Object") ? "Reference" : typeName;
   224         }
   227         }
   225     }
   228     }
   226 
   229 
   227     static String internalName(Class cls) {
   230     static String internalName(Class cls) {
   228         return cls.getName().replace('.', '/');
   231         return cls.getName().replace('.', '/');
   350                 if (type.defaultValue != null) {
   353                 if (type.defaultValue != null) {
   351                     mv.visitLdcInsn(type.defaultValue);
   354                     mv.visitLdcInsn(type.defaultValue);
   352                 } else {
   355                 } else {
   353                     mv.visitInsn(ACONST_NULL);
   356                     mv.visitInsn(ACONST_NULL);
   354                 }
   357                 }
   355                 String name = "put" + type.typeName + nameSuffix;
   358                 String name = "put" + type.unsafeTypeName() + nameSuffix;
   356                 mv.visitMethodInsn(INVOKEVIRTUAL, UNSAFE_NAME, name, "(Ljava/lang/Object;J" + type.desc()+ ")V", false);
   359                 mv.visitMethodInsn(INVOKEVIRTUAL, UNSAFE_NAME, name, "(Ljava/lang/Object;J" + type.desc()+ ")V", false);
   357                 mv.visitInsn(RETURN);
   360                 mv.visitInsn(RETURN);
   358 
   361 
   359                 mv.visitMaxs(0, 0);
   362                 mv.visitMaxs(0, 0);
   360                 mv.visitEnd();
   363                 mv.visitEnd();
   436                 mv.visitFieldInsn(GETSTATIC, className, "STATIC_BASE", "Ljava/lang/Object;");
   439                 mv.visitFieldInsn(GETSTATIC, className, "STATIC_BASE", "Ljava/lang/Object;");
   437             } else {
   440             } else {
   438                 mv.visitFieldInsn(GETSTATIC, className, "t", classDesc);
   441                 mv.visitFieldInsn(GETSTATIC, className, "t", classDesc);
   439             }
   442             }
   440             mv.visitFieldInsn(GETSTATIC, className, "FIELD_OFFSET", "J");
   443             mv.visitFieldInsn(GETSTATIC, className, "FIELD_OFFSET", "J");
   441             String name = "get" + type.typeName + nameSuffix;
   444             String name = "get" + type.unsafeTypeName() + nameSuffix;
   442             mv.visitMethodInsn(INVOKEVIRTUAL, UNSAFE_NAME, name, "(Ljava/lang/Object;J)" + type.desc(), false);
   445             mv.visitMethodInsn(INVOKEVIRTUAL, UNSAFE_NAME, name, "(Ljava/lang/Object;J)" + type.desc(), false);
   443         }
   446         }
   444         void wrapResult(MethodVisitor mv) {
   447         void wrapResult(MethodVisitor mv) {
   445             if (type != JavaType.L) {
   448             if (type != JavaType.L) {
   446                 String desc = String.format("(%s)L%s;", type.desc(), type.wrapper);
   449                 String desc = String.format("(%s)L%s;", type.desc(), type.wrapper);