Mercurial > hg > truffle
comparison graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/UnsafeLoadSnippets.java @ 11932:66909d055314
Fix unsafe load snippet.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Mon, 07 Oct 2013 23:10:17 +0200 |
parents | 88fb9cba8751 |
children | 23ccaa863eda |
comparison
equal
deleted
inserted
replaced
11931:9fe53a7b42b8 | 11932:66909d055314 |
---|---|
37 import com.oracle.graal.word.*; | 37 import com.oracle.graal.word.*; |
38 | 38 |
39 public class UnsafeLoadSnippets implements Snippets { | 39 public class UnsafeLoadSnippets implements Snippets { |
40 | 40 |
41 @Snippet | 41 @Snippet |
42 public static Object lowerUnsafeLoad(Object object, long offset, int disp) { | 42 public static Object lowerUnsafeLoad(Object object, long displacement) { |
43 Object fixedObject = FixedValueAnchorNode.getObject(object); | 43 Object fixedObject = FixedValueAnchorNode.getObject(object); |
44 long displacement = disp + offset; | |
45 if (object instanceof java.lang.ref.Reference && referentOffset() == displacement) { | 44 if (object instanceof java.lang.ref.Reference && referentOffset() == displacement) { |
46 return Word.fromObject(fixedObject).readObject((int) displacement, BarrierType.PRECISE, true); | 45 return Word.fromObject(fixedObject).readObject((int) displacement, BarrierType.PRECISE, true); |
47 } else { | 46 } else { |
48 return Word.fromObject(fixedObject).readObject((int) displacement, BarrierType.NONE, true); | 47 return Word.fromObject(fixedObject).readObject((int) displacement, BarrierType.NONE, true); |
49 } | 48 } |