changeset 18266:ae181ec869c5

converted HotSpotMetaspaceConstant to an interface
author Doug Simon <doug.simon@oracle.com>
date Wed, 05 Nov 2014 21:55:55 +0100
parents f2d1fbba41b6
children fa6c97ede679
files graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotLIRGenerator.java graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotNodeLIRBuilder.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotCompiledRuntimeStub.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCodeCacheProvider.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantReflectionProvider.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaspaceConstant.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaspaceConstantImpl.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethodImpl.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectTypeImpl.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CompressionNode.java src/share/vm/classfile/systemDictionary.hpp src/share/vm/classfile/vmSymbols.hpp src/share/vm/graal/graalCodeInstaller.cpp src/share/vm/graal/graalJavaAccess.hpp
diffstat 15 files changed, 121 insertions(+), 108 deletions(-) [+]
line wrap: on
line diff
--- 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();
--- 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();
     }
--- 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()));
--- 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
--- 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 {
--- 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;
             }
--- 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();
 }
--- /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;
+    }
+}
--- 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() {
--- 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() {
--- 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);
         }
--- 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)) \
--- 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"))                        \
--- 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<ScopeValue*>* 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");
--- 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)                                                                                                                                 \