# HG changeset patch # User Tom Rodriguez # Date 1437446083 25200 # Node ID b5ed7b2531940f0e2ed6c7706b58f13f983c7be1 # Parent 97ee41c80b1d9f5f786d6910ed4990957d4c90c4 Use KlassPointer stamp when reading Klass::_super diff -r 97ee41c80b1d -r b5ed7b253194 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CompilerToVMImplSubstitutions.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CompilerToVMImplSubstitutions.java Mon Jul 20 11:08:40 2015 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CompilerToVMImplSubstitutions.java Mon Jul 20 19:34:43 2015 -0700 @@ -25,6 +25,7 @@ import jdk.internal.jvmci.hotspot.*; import com.oracle.graal.api.replacements.*; +import com.oracle.graal.hotspot.word.*; import com.oracle.graal.word.*; /** @@ -35,6 +36,6 @@ @MethodSubstitution(isStatic = false) public static Class getJavaMirror(@SuppressWarnings("unused") CompilerToVMImpl impl, long metaspaceklass) { - return HotSpotClassSubstitutions.readJavaMirror(Word.unsigned(metaspaceklass)); + return HotSpotClassSubstitutions.readJavaMirror(KlassPointer.fromWord(Word.unsigned(metaspaceklass))); } } diff -r 97ee41c80b1d -r b5ed7b253194 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotClassSubstitutions.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotClassSubstitutions.java Mon Jul 20 11:08:40 2015 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotClassSubstitutions.java Mon Jul 20 19:34:43 2015 -0700 @@ -28,7 +28,6 @@ import com.oracle.graal.hotspot.word.*; import com.oracle.graal.nodes.*; -import com.oracle.graal.word.*; // JaCoCo Exclude @@ -81,8 +80,8 @@ if (klassIsArray(klass)) { return Object.class; } else { - Word superKlass = klass.readWord(klassSuperKlassOffset(), KLASS_SUPER_KLASS_LOCATION); - if (superKlass.equal(0)) { + KlassPointer superKlass = klass.readKlassPointer(klassSuperKlassOffset(), KLASS_SUPER_KLASS_LOCATION); + if (superKlass.isNull()) { return null; } else { return readJavaMirror(superKlass); @@ -95,7 +94,7 @@ return null; } - public static Class readJavaMirror(Word klass) { + public static Class readJavaMirror(KlassPointer klass) { return PiNode.asNonNullClass(klass.readObject(classMirrorOffset(), CLASS_MIRROR_LOCATION)); }