# HG changeset patch # User Doug Simon # Date 1364298987 -3600 # Node ID a6ba61be2b5f580f5abc912e1d1171cae3240b8f # Parent e9dad49ce33623fe5b57ee13b21357a68e10b431 made method substitutions for Object be interpretable diff -r e9dad49ce336 -r a6ba61be2b5f graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/HotSpotMethodSubstitutionTest.java --- a/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/HotSpotMethodSubstitutionTest.java Tue Mar 26 12:53:02 2013 +0100 +++ b/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/HotSpotMethodSubstitutionTest.java Tue Mar 26 12:56:27 2013 +0100 @@ -37,6 +37,11 @@ public void testObjectSubstitutions() { test("getClass_"); test("objectHashCode"); + + Object obj = new Object(); + + assertEquals("a string".getClass(), ObjectSubstitutions.getClass("a string")); + assertEquals(obj.hashCode(), ObjectSubstitutions.hashCode(obj)); } @SuppressWarnings("all") diff -r e9dad49ce336 -r a6ba61be2b5f graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotSnippetUtils.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotSnippetUtils.java Tue Mar 26 12:53:02 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotSnippetUtils.java Tue Mar 26 12:56:27 2013 +0100 @@ -363,8 +363,11 @@ return Word.box(unsafeReadWord(object, offset + displacement)); } + @SuppressWarnings("unused") @NodeIntrinsic(value = LoadHubNode.class, setStampFromReturnType = true) - static native Word loadHubIntrinsic(Object object, @ConstantNodeParameter Kind word); + static Word loadHubIntrinsic(Object object, @ConstantNodeParameter Kind word) { + return Word.box(unsafeReadWord(object, hubOffset())); + } @Fold public static int log2WordSize() {