# HG changeset patch # User Christos Kotselidis # Date 1375447988 -7200 # Node ID 46c6ee6f1832e6d2cfebf4281f7d935ed9371c31 # Parent e8dac30e274dfaab527c5a79907b3ba495c133da Fixed anchror for unsafe load snippet diff -r e8dac30e274d -r 46c6ee6f1832 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/UnsafeLoadSnippets.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/UnsafeLoadSnippets.java Fri Aug 02 14:43:58 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/UnsafeLoadSnippets.java Fri Aug 02 14:53:08 2013 +0200 @@ -26,6 +26,7 @@ import static com.oracle.graal.replacements.SnippetTemplate.*; import com.oracle.graal.api.code.*; +import com.oracle.graal.hotspot.nodes.*; import com.oracle.graal.nodes.HeapAccess.BarrierType; import com.oracle.graal.nodes.extended.*; import com.oracle.graal.nodes.spi.*; @@ -39,11 +40,12 @@ @Snippet public static Object lowerUnsafeLoad(Object object, long offset, int disp) { + Object fixedObject = FixedValueAnchorNode.getObject(object); long displacement = disp + offset; if (object instanceof java.lang.ref.Reference && referentOffset() == displacement) { - return Word.fromObject(object).readObject((int) displacement, BarrierType.PRECISE, true); + return Word.fromObject(fixedObject).readObject((int) displacement, BarrierType.PRECISE, true); } else { - return Word.fromObject(object).readObject((int) displacement, BarrierType.NONE, true); + return Word.fromObject(fixedObject).readObject((int) displacement, BarrierType.NONE, true); } }