# HG changeset patch # User Doug Simon # Date 1415220955 -3600 # Node ID ae181ec869c51dca11c6bb65ac4ec2488ffdb389 # Parent f2d1fbba41b64998bbb2b1ef8551c73197aa94d6 converted HotSpotMetaspaceConstant to an interface diff -r f2d1fbba41b6 -r ae181ec869c5 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Wed Nov 05 21:27:26 2014 +0100 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Wed Nov 05 21:55:55 2014 +0100 @@ -419,22 +419,6 @@ } } - /** - * @return a compressed version of the incoming constant - */ - protected static JavaConstant compress(JavaConstant c, CompressEncoding encoding) { - if (c.getKind() == Kind.Long) { - int compressedValue = (int) (((c.asLong() - encoding.base) >> encoding.shift) & 0xffffffffL); - if (c instanceof HotSpotMetaspaceConstant) { - return HotSpotMetaspaceConstant.forMetaspaceObject(Kind.Int, compressedValue, HotSpotMetaspaceConstant.getMetaspaceObject(c), true); - } else { - return JavaConstant.forIntegerKind(Kind.Int, compressedValue); - } - } else { - throw GraalInternalError.shouldNotReachHere(); - } - } - private static LIRKind toStackKind(LIRKind kind) { if (kind.getPlatformKind() instanceof Kind) { Kind stackKind = ((Kind) kind.getPlatformKind()).getStackKind(); diff -r f2d1fbba41b6 -r ae181ec869c5 graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotLIRGenerator.java --- a/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotLIRGenerator.java Wed Nov 05 21:27:26 2014 +0100 +++ b/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotLIRGenerator.java Wed Nov 05 21:55:55 2014 +0100 @@ -250,22 +250,6 @@ // this version of emitForeignCall not used for now } - /** - * @return a compressed version of the incoming constant lifted from AMD64HotSpotLIRGenerator - */ - protected static JavaConstant compress(JavaConstant c, CompressEncoding encoding) { - if (c.getKind() == Kind.Long) { - int compressedValue = (int) (((c.asLong() - encoding.base) >> encoding.shift) & 0xffffffffL); - if (c instanceof HotSpotMetaspaceConstant) { - return HotSpotMetaspaceConstant.forMetaspaceObject(Kind.Int, compressedValue, HotSpotMetaspaceConstant.getMetaspaceObject(c), true); - } else { - return JavaConstant.forIntegerKind(Kind.Int, compressedValue); - } - } else { - throw GraalInternalError.shouldNotReachHere(); - } - } - public void emitTailcall(Value[] args, Value address) { throw GraalInternalError.unimplemented(); } diff -r f2d1fbba41b6 -r ae181ec869c5 graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotNodeLIRBuilder.java --- a/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotNodeLIRBuilder.java Wed Nov 05 21:27:26 2014 +0100 +++ b/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotNodeLIRBuilder.java Wed Nov 05 21:55:55 2014 +0100 @@ -30,8 +30,6 @@ import com.oracle.graal.compiler.hsail.*; import com.oracle.graal.debug.*; import com.oracle.graal.hotspot.*; -import com.oracle.graal.hotspot.HotSpotVMConfig.CompressEncoding; -import com.oracle.graal.hotspot.meta.*; import com.oracle.graal.hotspot.nodes.*; import com.oracle.graal.lir.*; import com.oracle.graal.lir.gen.*; @@ -61,22 +59,6 @@ return (HSAILHotSpotLIRGenerator) gen; } - /** - * @return a compressed version of the incoming constant lifted from AMD64HotSpotLIRGenerator - */ - protected static JavaConstant compress(JavaConstant c, CompressEncoding encoding) { - if (c.getKind() == Kind.Long) { - int compressedValue = (int) (((c.asLong() - encoding.base) >> encoding.shift) & 0xffffffffL); - if (c instanceof HotSpotMetaspaceConstant) { - return HotSpotMetaspaceConstant.forMetaspaceObject(Kind.Int, compressedValue, HotSpotMetaspaceConstant.getMetaspaceObject(c), true); - } else { - return JavaConstant.forIntegerKind(Kind.Int, compressedValue); - } - } else { - throw GraalInternalError.shouldNotReachHere(); - } - } - public void visitDirectCompareAndSwap(DirectCompareAndSwapNode x) { Variable expected = getGen().load(operand(x.expectedValue())); Variable newVal = getGen().load(operand(x.newValue())); diff -r f2d1fbba41b6 -r ae181ec869c5 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotCompiledRuntimeStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotCompiledRuntimeStub.java Wed Nov 05 21:27:26 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotCompiledRuntimeStub.java Wed Nov 05 21:55:55 2014 +0100 @@ -57,7 +57,7 @@ if (data.reference instanceof ConstantReference) { ConstantReference ref = (ConstantReference) data.reference; if (ref.getConstant() instanceof HotSpotMetaspaceConstant) { - Object object = HotSpotMetaspaceConstant.getMetaspaceObject((JavaConstant) ref.getConstant()); + Object object = HotSpotMetaspaceConstantImpl.getMetaspaceObject((JavaConstant) ref.getConstant()); if (object instanceof HotSpotResolvedObjectType && ((HotSpotResolvedObjectType) object).getName().equals("[I")) { // special handling for NewArrayStub // embedding the type '[I' is safe, since it is never unloaded diff -r f2d1fbba41b6 -r ae181ec869c5 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCodeCacheProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCodeCacheProvider.java Wed Nov 05 21:27:26 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCodeCacheProvider.java Wed Nov 05 21:55:55 2014 +0100 @@ -267,7 +267,7 @@ compressed = HotSpotObjectConstantImpl.isCompressed(constant); raw = 0xDEADDEADDEADDEADL; } else if (constant instanceof HotSpotMetaspaceConstant) { - HotSpotMetaspaceConstant meta = (HotSpotMetaspaceConstant) constant; + HotSpotMetaspaceConstantImpl meta = (HotSpotMetaspaceConstantImpl) constant; compressed = meta.getKind() != target.wordKind; raw = meta.asLong(); } else { diff -r f2d1fbba41b6 -r ae181ec869c5 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantReflectionProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantReflectionProvider.java Wed Nov 05 21:27:26 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantReflectionProvider.java Wed Nov 05 21:55:55 2014 +0100 @@ -111,7 +111,7 @@ if (baseConstant.getKind() == Kind.Object) { o = unsafe.getObject(base, displacement); } else if (baseConstant instanceof HotSpotMetaspaceConstant) { - Object metaspaceObject = HotSpotMetaspaceConstant.getMetaspaceObject(baseConstant); + Object metaspaceObject = HotSpotMetaspaceConstantImpl.getMetaspaceObject(baseConstant); if (metaspaceObject instanceof HotSpotResolvedObjectTypeImpl && initialDisplacement == runtime.getConfig().classMirrorOffset) { o = ((HotSpotResolvedObjectTypeImpl) metaspaceObject).mirror(); } else { @@ -171,10 +171,10 @@ assert bits == 32 && kind == Kind.Int; long klassPointer = config().getKlassEncoding().uncompress((int) rawValue); assert klassPointer == runtime.getCompilerToVM().readUnsafeKlassPointer(base); - return HotSpotMetaspaceConstant.forMetaspaceObject(kind, rawValue, HotSpotResolvedObjectTypeImpl.fromMetaspaceKlass(klassPointer), true); + return HotSpotMetaspaceConstantImpl.forMetaspaceObject(kind, rawValue, HotSpotResolvedObjectTypeImpl.fromMetaspaceKlass(klassPointer), true); } else { assert bits == 64 && kind == Kind.Long; - return HotSpotMetaspaceConstant.forMetaspaceObject(kind, rawValue, HotSpotResolvedObjectTypeImpl.fromMetaspaceKlass(rawValue), false); + return HotSpotMetaspaceConstantImpl.forMetaspaceObject(kind, rawValue, HotSpotResolvedObjectTypeImpl.fromMetaspaceKlass(rawValue), false); } } else { switch (kind) { @@ -235,7 +235,7 @@ } } if (constant instanceof HotSpotMetaspaceConstant) { - Object obj = HotSpotMetaspaceConstant.getMetaspaceObject(constant); + Object obj = HotSpotMetaspaceConstantImpl.getMetaspaceObject(constant); if (obj instanceof HotSpotResolvedObjectTypeImpl) { return (ResolvedJavaType) obj; } diff -r f2d1fbba41b6 -r ae181ec869c5 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaspaceConstant.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaspaceConstant.java Wed Nov 05 21:27:26 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaspaceConstant.java Wed Nov 05 21:55:55 2014 +0100 @@ -22,43 +22,18 @@ */ package com.oracle.graal.hotspot.meta; -import java.util.*; - import com.oracle.graal.api.meta.*; - -public final class HotSpotMetaspaceConstant extends PrimitiveConstant implements HotSpotConstant, VMConstant { - - private static final long serialVersionUID = 1003463314013122983L; +import com.oracle.graal.hotspot.HotSpotVMConfig.CompressEncoding; - public static JavaConstant forMetaspaceObject(Kind kind, long primitive, Object metaspaceObject, boolean compressed) { - return new HotSpotMetaspaceConstant(kind, primitive, metaspaceObject, compressed); - } +public interface HotSpotMetaspaceConstant extends HotSpotConstant, VMConstant { - public static Object getMetaspaceObject(JavaConstant constant) { - return ((HotSpotMetaspaceConstant) constant).metaspaceObject; - } - - private final Object metaspaceObject; - private final boolean compressed; + boolean isCompressed(); - private HotSpotMetaspaceConstant(Kind kind, long primitive, Object metaspaceObject, boolean compressed) { - super(kind, primitive); - this.metaspaceObject = metaspaceObject; - this.compressed = compressed; - } + Constant compress(CompressEncoding encoding); - @Override - public int hashCode() { - return super.hashCode() ^ System.identityHashCode(metaspaceObject); - } + Constant uncompress(CompressEncoding encoding); - @Override - public boolean equals(Object o) { - return o == this || (o instanceof HotSpotMetaspaceConstant && super.equals(o) && Objects.equals(metaspaceObject, ((HotSpotMetaspaceConstant) o).metaspaceObject)); - } + HotSpotResolvedObjectType asResolvedJavaType(); - @Override - public String toString() { - return super.toString() + "{" + metaspaceObject + (compressed ? ";compressed}" : "}"); - } + Kind getKind(); } diff -r f2d1fbba41b6 -r ae181ec869c5 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaspaceConstantImpl.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaspaceConstantImpl.java Wed Nov 05 21:55:55 2014 +0100 @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2014, 2014, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.oracle.graal.hotspot.meta; + +import java.util.*; + +import com.oracle.graal.api.meta.*; +import com.oracle.graal.hotspot.HotSpotVMConfig.CompressEncoding; + +public final class HotSpotMetaspaceConstantImpl extends PrimitiveConstant implements HotSpotMetaspaceConstant, VMConstant { + + private static final long serialVersionUID = 1003463314013122983L; + + public static HotSpotMetaspaceConstantImpl forMetaspaceObject(Kind kind, long primitive, Object metaspaceObject, boolean compressed) { + return new HotSpotMetaspaceConstantImpl(kind, primitive, metaspaceObject, compressed); + } + + public static Object getMetaspaceObject(JavaConstant constant) { + return ((HotSpotMetaspaceConstantImpl) constant).metaspaceObject; + } + + private final Object metaspaceObject; + private final boolean compressed; + + private HotSpotMetaspaceConstantImpl(Kind kind, long primitive, Object metaspaceObject, boolean compressed) { + super(kind, primitive); + this.metaspaceObject = metaspaceObject; + this.compressed = compressed; + } + + @Override + public int hashCode() { + return super.hashCode() ^ System.identityHashCode(metaspaceObject); + } + + @Override + public boolean equals(Object o) { + return o == this || (o instanceof HotSpotMetaspaceConstantImpl && super.equals(o) && Objects.equals(metaspaceObject, ((HotSpotMetaspaceConstantImpl) o).metaspaceObject)); + } + + @Override + public String toString() { + return super.toString() + "{" + metaspaceObject + (compressed ? ";compressed}" : "}"); + } + + public boolean isCompressed() { + return compressed; + } + + public JavaConstant compress(CompressEncoding encoding) { + assert !isCompressed(); + HotSpotMetaspaceConstantImpl res = HotSpotMetaspaceConstantImpl.forMetaspaceObject(Kind.Int, encoding.compress(asLong()), metaspaceObject, true); + assert res.isCompressed(); + return res; + } + + public JavaConstant uncompress(CompressEncoding encoding) { + assert isCompressed(); + HotSpotMetaspaceConstantImpl res = HotSpotMetaspaceConstantImpl.forMetaspaceObject(Kind.Long, encoding.uncompress(asInt()), metaspaceObject, false); + assert !res.isCompressed(); + return res; + } + + public HotSpotResolvedObjectType asResolvedJavaType() { + if (metaspaceObject instanceof HotSpotResolvedObjectType) { + return (HotSpotResolvedObjectType) metaspaceObject; + } + return null; + } +} diff -r f2d1fbba41b6 -r ae181ec869c5 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethodImpl.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethodImpl.java Wed Nov 05 21:27:26 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethodImpl.java Wed Nov 05 21:55:55 2014 +0100 @@ -160,7 +160,7 @@ * Gets the address of the C++ Method object for this method. */ public JavaConstant getMetaspaceMethodConstant() { - return HotSpotMetaspaceConstant.forMetaspaceObject(getHostWordKind(), metaspaceMethod, this, false); + return HotSpotMetaspaceConstantImpl.forMetaspaceObject(getHostWordKind(), metaspaceMethod, this, false); } public long getMetaspaceMethod() { diff -r f2d1fbba41b6 -r ae181ec869c5 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectTypeImpl.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectTypeImpl.java Wed Nov 05 21:27:26 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectTypeImpl.java Wed Nov 05 21:55:55 2014 +0100 @@ -776,7 +776,7 @@ * Gets the metaspace Klass boxed in a {@link JavaConstant}. */ public JavaConstant klass() { - return HotSpotMetaspaceConstant.forMetaspaceObject(runtime().getTarget().wordKind, getMetaspaceKlass(), this, false); + return HotSpotMetaspaceConstantImpl.forMetaspaceObject(runtime().getTarget().wordKind, getMetaspaceKlass(), this, false); } public boolean isPrimaryType() { diff -r f2d1fbba41b6 -r ae181ec869c5 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CompressionNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CompressionNode.java Wed Nov 05 21:27:26 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CompressionNode.java Wed Nov 05 21:55:55 2014 +0100 @@ -79,9 +79,8 @@ } else if (c instanceof HotSpotObjectConstant) { return ((HotSpotObjectConstant) c).compress(); } else if (c instanceof HotSpotMetaspaceConstant) { - HotSpotMetaspaceConstant meta = (HotSpotMetaspaceConstant) c; - assert meta.getKind() == Kind.Long; - return HotSpotMetaspaceConstant.forMetaspaceObject(Kind.Int, encoding.compress(meta.asLong()), HotSpotMetaspaceConstant.getMetaspaceObject(meta), true); + assert ((HotSpotMetaspaceConstant) c).getKind() == Kind.Long; + return ((HotSpotMetaspaceConstant) c).compress(encoding); } else { throw GraalInternalError.shouldNotReachHere("invalid constant input for compress op: " + c); } @@ -93,9 +92,8 @@ } else if (c instanceof HotSpotObjectConstant) { return ((HotSpotObjectConstant) c).uncompress(); } else if (c instanceof HotSpotMetaspaceConstant) { - HotSpotMetaspaceConstant meta = (HotSpotMetaspaceConstant) c; - assert meta.getKind() == Kind.Int; - return HotSpotMetaspaceConstant.forMetaspaceObject(Kind.Long, encoding.uncompress(meta.asInt()), HotSpotMetaspaceConstant.getMetaspaceObject(meta), false); + assert ((HotSpotMetaspaceConstant) c).getKind() == Kind.Int; + return ((HotSpotMetaspaceConstant) c).uncompress(encoding); } else { throw GraalInternalError.shouldNotReachHere("invalid constant input for uncompress op: " + c); } diff -r f2d1fbba41b6 -r ae181ec869c5 src/share/vm/classfile/systemDictionary.hpp --- a/src/share/vm/classfile/systemDictionary.hpp Wed Nov 05 21:27:26 2014 +0100 +++ b/src/share/vm/classfile/systemDictionary.hpp Wed Nov 05 21:55:55 2014 +0100 @@ -202,7 +202,7 @@ GRAAL_ONLY(do_klass(HotSpotMonitorValue_klass, com_oracle_graal_hotspot_meta_HotSpotMonitorValue, Graal)) \ GRAAL_ONLY(do_klass(HotSpotCompressedNullConstant_klass, com_oracle_graal_hotspot_meta_HotSpotCompressedNullConstant, Graal)) \ GRAAL_ONLY(do_klass(HotSpotObjectConstantImpl_klass, com_oracle_graal_hotspot_meta_HotSpotObjectConstantImpl, Graal)) \ - GRAAL_ONLY(do_klass(HotSpotMetaspaceConstant_klass, com_oracle_graal_hotspot_meta_HotSpotMetaspaceConstant, Graal)) \ + GRAAL_ONLY(do_klass(HotSpotMetaspaceConstantImpl_klass, com_oracle_graal_hotspot_meta_HotSpotMetaspaceConstantImpl, Graal)) \ GRAAL_ONLY(do_klass(HotSpotStackFrameReference_klass, com_oracle_graal_hotspot_HotSpotStackFrameReference, Graal)) \ GRAAL_ONLY(do_klass(CompilationTask_klass, com_oracle_graal_hotspot_CompilationTask, Graal)) \ GRAAL_ONLY(do_klass(Assumptions_klass, com_oracle_graal_api_code_Assumptions, Graal)) \ diff -r f2d1fbba41b6 -r ae181ec869c5 src/share/vm/classfile/vmSymbols.hpp --- a/src/share/vm/classfile/vmSymbols.hpp Wed Nov 05 21:27:26 2014 +0100 +++ b/src/share/vm/classfile/vmSymbols.hpp Wed Nov 05 21:55:55 2014 +0100 @@ -309,7 +309,7 @@ GRAAL_ONLY(template(com_oracle_graal_hotspot_meta_HotSpotMonitorValue, "com/oracle/graal/hotspot/meta/HotSpotMonitorValue")) \ GRAAL_ONLY(template(com_oracle_graal_hotspot_meta_HotSpotCompressedNullConstant, "com/oracle/graal/hotspot/meta/HotSpotCompressedNullConstant")) \ GRAAL_ONLY(template(com_oracle_graal_hotspot_meta_HotSpotObjectConstantImpl, "com/oracle/graal/hotspot/meta/HotSpotObjectConstantImpl")) \ - GRAAL_ONLY(template(com_oracle_graal_hotspot_meta_HotSpotMetaspaceConstant, "com/oracle/graal/hotspot/meta/HotSpotMetaspaceConstant")) \ + GRAAL_ONLY(template(com_oracle_graal_hotspot_meta_HotSpotMetaspaceConstantImpl,"com/oracle/graal/hotspot/meta/HotSpotMetaspaceConstantImpl")) \ GRAAL_ONLY(template(com_oracle_graal_hotspot_HotSpotStackFrameReference, "com/oracle/graal/hotspot/HotSpotStackFrameReference")) \ GRAAL_ONLY(template(com_oracle_graal_hotspot_CompilationTask, "com/oracle/graal/hotspot/CompilationTask")) \ GRAAL_ONLY(template(com_oracle_graal_api_meta_JavaConstant, "com/oracle/graal/api/meta/JavaConstant")) \ diff -r f2d1fbba41b6 -r ae181ec869c5 src/share/vm/graal/graalCodeInstaller.cpp --- a/src/share/vm/graal/graalCodeInstaller.cpp Wed Nov 05 21:27:26 2014 +0100 +++ b/src/share/vm/graal/graalCodeInstaller.cpp Wed Nov 05 21:55:55 2014 +0100 @@ -188,9 +188,9 @@ // Records any Metadata values embedded in a Constant (e.g., the value returned by HotSpotResolvedObjectTypeImpl.klass()). static void record_metadata_in_constant(oop constant, OopRecorder* oop_recorder) { - if (constant->is_a(HotSpotMetaspaceConstant::klass())) { - oop obj = HotSpotMetaspaceConstant::metaspaceObject(constant); - jlong prim = HotSpotMetaspaceConstant::primitive(constant); + if (constant->is_a(HotSpotMetaspaceConstantImpl::klass())) { + oop obj = HotSpotMetaspaceConstantImpl::metaspaceObject(constant); + jlong prim = HotSpotMetaspaceConstantImpl::primitive(constant); assert(Kind::typeChar(Value::kind(constant)) == 'j', "must have word kind"); assert(obj != NULL, "must have an object"); assert(prim != 0, "must have a primitive value"); @@ -200,7 +200,7 @@ } static void record_metadata_in_patch(Handle& constant, OopRecorder* oop_recorder) { - record_metadata_reference(HotSpotMetaspaceConstant::metaspaceObject(constant), HotSpotMetaspaceConstant::primitive(constant), HotSpotMetaspaceConstant::compressed(constant), oop_recorder); + record_metadata_reference(HotSpotMetaspaceConstantImpl::metaspaceObject(constant), HotSpotMetaspaceConstantImpl::primitive(constant), HotSpotMetaspaceConstantImpl::compressed(constant), oop_recorder); } ScopeValue* CodeInstaller::get_scope_value(oop value, int total_frame_size, GrowableArray* objects, ScopeValue* &second, OopRecorder* oop_recorder) { @@ -569,7 +569,7 @@ Handle reference = CompilationResult_DataPatch::reference(patch); assert(reference->is_a(CompilationResult_ConstantReference::klass()), err_msg("patch in data section must be a ConstantReference")); Handle constant = CompilationResult_ConstantReference::constant(reference); - if (constant->is_a(HotSpotMetaspaceConstant::klass())) { + if (constant->is_a(HotSpotMetaspaceConstantImpl::klass())) { record_metadata_in_patch(constant, _oop_recorder); } else if (constant->is_a(HotSpotObjectConstantImpl::klass())) { Handle obj = HotSpotObjectConstantImpl::object(constant); @@ -909,7 +909,7 @@ Handle constant = CompilationResult_ConstantReference::constant(reference); if (constant->is_a(HotSpotObjectConstantImpl::klass())) { pd_patch_OopConstant(pc_offset, constant); - } else if (constant->is_a(HotSpotMetaspaceConstant::klass())) { + } else if (constant->is_a(HotSpotMetaspaceConstantImpl::klass())) { record_metadata_in_patch(constant, _oop_recorder); } else { fatal("unknown constant type in data patch"); diff -r f2d1fbba41b6 -r ae181ec869c5 src/share/vm/graal/graalJavaAccess.hpp --- a/src/share/vm/graal/graalJavaAccess.hpp Wed Nov 05 21:27:26 2014 +0100 +++ b/src/share/vm/graal/graalJavaAccess.hpp Wed Nov 05 21:55:55 2014 +0100 @@ -206,10 +206,10 @@ oop_field(HotSpotObjectConstantImpl, object, "Ljava/lang/Object;") \ boolean_field(HotSpotObjectConstantImpl, compressed) \ end_class \ - start_class(HotSpotMetaspaceConstant) \ - long_field(HotSpotMetaspaceConstant, primitive) \ - oop_field(HotSpotMetaspaceConstant, metaspaceObject, "Ljava/lang/Object;") \ - boolean_field(HotSpotMetaspaceConstant, compressed) \ + start_class(HotSpotMetaspaceConstantImpl) \ + long_field(HotSpotMetaspaceConstantImpl, primitive) \ + oop_field(HotSpotMetaspaceConstantImpl, metaspaceObject, "Ljava/lang/Object;") \ + boolean_field(HotSpotMetaspaceConstantImpl, compressed) \ end_class \ start_class(Kind) \ char_field(Kind, typeChar) \