# HG changeset patch # User Doug Simon # Date 1355849943 -3600 # Node ID 7f6bf286629c9f1d8a480f85a3f2b63f65d87e7f # Parent a25b441f6cc011801df86fcb1af6474c0344c7d8 replace checked casts with unsafe casts in snippets where the exact type of a value loaded from metadata is known diff -r a25b441f6cc0 -r 7f6bf286629c graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ClassSnippets.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ClassSnippets.java Tue Dec 18 17:58:08 2012 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ClassSnippets.java Tue Dec 18 17:59:03 2012 +0100 @@ -23,6 +23,7 @@ package com.oracle.graal.hotspot.snippets; import static com.oracle.graal.hotspot.snippets.HotSpotSnippetUtils.*; +import static com.oracle.graal.nodes.extended.UnsafeCastNode.*; import java.lang.reflect.*; @@ -87,7 +88,7 @@ if (superKlass == Word.zero()) { return null; } else { - return (Class) loadObjectFromWord(superKlass, classMirrorOffset()); + return unsafeCast(loadObjectFromWord(superKlass, classMirrorOffset()), Class.class, true, true); } } } @@ -101,7 +102,7 @@ if (klass != Word.zero()) { int layoutHelper = loadIntFromWord(klass, klassLayoutHelperOffset()); if ((layoutHelper & arrayKlassLayoutHelperIdentifier()) != 0) { - return (Class) loadObjectFromWord(klass, arrayKlassComponentMirrorOffset()); + return unsafeCast(loadObjectFromWord(klass, arrayKlassComponentMirrorOffset()), Class.class, true, true); } } return null; diff -r a25b441f6cc0 -r 7f6bf286629c graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ObjectSnippets.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ObjectSnippets.java Tue Dec 18 17:58:08 2012 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ObjectSnippets.java Tue Dec 18 17:59:03 2012 +0100 @@ -23,6 +23,7 @@ package com.oracle.graal.hotspot.snippets; import static com.oracle.graal.hotspot.snippets.HotSpotSnippetUtils.*; +import static com.oracle.graal.nodes.extended.UnsafeCastNode.*; import com.oracle.graal.hotspot.nodes.*; import com.oracle.graal.snippets.*; @@ -36,7 +37,7 @@ @MethodSubstitution(isStatic = false) public static Class getClass(final Object thisObj) { Word hub = loadHub(thisObj); - return (Class) readFinalObject(hub, classMirrorOffset()); + return unsafeCast(readFinalObject(hub, classMirrorOffset()), Class.class, true, true); } @MethodSubstitution(isStatic = false)