# HG changeset patch # User Christian Wimmer # Date 1453762647 28800 # Node ID 7eb99acd567febe6c23cff95cc4a5900c1ed2dce # Parent c2687aa5e5ca8815e540e3c4716388e3d694c481# Parent 7f298e4d1afba9e26187e59e5fdff31b95fc2427 Merge diff -r 7f298e4d1afb -r 7eb99acd567f jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantReflectionProvider.java --- a/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantReflectionProvider.java Mon Jan 25 10:40:22 2016 -0800 +++ b/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantReflectionProvider.java Mon Jan 25 14:57:27 2016 -0800 @@ -27,6 +27,7 @@ import java.lang.reflect.Array; +import jdk.vm.ci.common.JVMCIError; import jdk.vm.ci.meta.Constant; import jdk.vm.ci.meta.ConstantReflectionProvider; import jdk.vm.ci.meta.JavaConstant; @@ -361,4 +362,18 @@ } return dimensions; } + + @Override + public JavaConstant asJavaClass(ResolvedJavaType type) { + return HotSpotObjectConstantImpl.forObject(((HotSpotResolvedJavaType) type).mirror()); + } + + @Override + public Constant asObjectHub(ResolvedJavaType type) { + if (type instanceof HotSpotResolvedObjectType) { + return ((HotSpotResolvedObjectType) type).klass(); + } else { + throw JVMCIError.unimplemented(); + } + } } diff -r 7f298e4d1afb -r 7eb99acd567f jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java --- a/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java Mon Jan 25 10:40:22 2016 -0800 +++ b/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java Mon Jan 25 14:57:27 2016 -0800 @@ -304,16 +304,6 @@ } @Override - public JavaConstant getJavaClass() { - return HotSpotObjectConstantImpl.forObject(mirror()); - } - - @Override - public Constant getObjectHub() { - return klass(); - } - - @Override public AssumptionResult hasFinalizableSubclass() { assert !isArray(); if (!compilerToVM().hasFinalizableSubclass(this)) { diff -r 7f298e4d1afb -r 7eb99acd567f jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType.java --- a/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType.java Mon Jan 25 10:40:22 2016 -0800 +++ b/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType.java Mon Jan 25 14:57:27 2016 -0800 @@ -110,16 +110,6 @@ } @Override - public JavaConstant getObjectHub() { - throw JVMCIError.unimplemented(); - } - - @Override - public JavaConstant getJavaClass() { - throw JVMCIError.unimplemented(); - } - - @Override public AssumptionResult hasFinalizableSubclass() { return new AssumptionResult<>(false); } diff -r 7f298e4d1afb -r 7eb99acd567f jvmci/jdk.vm.ci.hotspotvmconfig.processor/src/jdk/vm/ci/hotspotvmconfig/processor/HotSpotVMConfigProcessor.java --- a/jvmci/jdk.vm.ci.hotspotvmconfig.processor/src/jdk/vm/ci/hotspotvmconfig/processor/HotSpotVMConfigProcessor.java Mon Jan 25 10:40:22 2016 -0800 +++ b/jvmci/jdk.vm.ci.hotspotvmconfig.processor/src/jdk/vm/ci/hotspotvmconfig/processor/HotSpotVMConfigProcessor.java Mon Jan 25 14:57:27 2016 -0800 @@ -55,13 +55,11 @@ import jdk.vm.ci.hotspotvmconfig.HotSpotVMValue; @SupportedAnnotationTypes({ - // @formatter:off - "jdk.vm.ci.hotspotvmconfig.HotSpotVMConstant", - "jdk.vm.ci.hotspotvmconfig.HotSpotVMFlag", - "jdk.vm.ci.hotspotvmconfig.HotSpotVMField", - "jdk.vm.ci.hotspotvmconfig.HotSpotVMType", - "jdk.vm.ci.hotspotvmconfig.HotSpotVMValue"}) - // @formatter:on + "jdk.vm.ci.hotspotvmconfig.HotSpotVMConstant", + "jdk.vm.ci.hotspotvmconfig.HotSpotVMFlag", + "jdk.vm.ci.hotspotvmconfig.HotSpotVMField", + "jdk.vm.ci.hotspotvmconfig.HotSpotVMType", + "jdk.vm.ci.hotspotvmconfig.HotSpotVMValue"}) public class HotSpotVMConfigProcessor extends AbstractProcessor { public HotSpotVMConfigProcessor() { diff -r 7f298e4d1afb -r 7eb99acd567f jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ConstantReflectionProvider.java --- a/jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ConstantReflectionProvider.java Mon Jan 25 10:40:22 2016 -0800 +++ b/jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ConstantReflectionProvider.java Mon Jan 25 14:57:27 2016 -0800 @@ -151,4 +151,15 @@ * Gets raw memory access. */ MemoryAccessProvider getMemoryAccessProvider(); + + /** + * Gets the runtime representation of the {@link Class} object of this type. + */ + JavaConstant asJavaClass(ResolvedJavaType type); + + /** + * Gets the runtime representation of the "hub" of this type--that is, the closest part of the + * type representation which is typically stored in the object header. + */ + Constant asObjectHub(ResolvedJavaType type); } diff -r 7f298e4d1afb -r 7eb99acd567f jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ResolvedJavaType.java --- a/jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ResolvedJavaType.java Mon Jan 25 10:40:22 2016 -0800 +++ b/jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ResolvedJavaType.java Mon Jan 25 14:57:27 2016 -0800 @@ -34,17 +34,6 @@ */ public interface ResolvedJavaType extends JavaType, ModifiersProvider { /** - * Gets the runtime representation of the Java class object of this type. - */ - JavaConstant getJavaClass(); - - /** - * Gets the runtime representation of the "hub" of this type--that is, the closest part of the - * type representation which is typically stored in the object header. - */ - Constant getObjectHub(); - - /** * Checks whether this type has a finalizer method. * * @return {@code true} if this class has a finalizer