Mercurial > hg > graal-compiler
changeset 8538:59dab34ba44a
Bug fix crashing SpecJVM2008
author | Christos Kotselidis <christos.kotselidis@oracle.com> |
---|---|
date | Thu, 28 Mar 2013 14:26:38 +0100 |
parents | 9daff929be65 |
children | 04b002b7077f |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPost.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ArrayCopySnippets.java |
diffstat | 2 files changed, 3 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPost.java Wed Mar 27 17:22:12 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPost.java Thu Mar 28 14:26:38 2013 +0100 @@ -93,5 +93,5 @@ } @NodeIntrinsic - public static native void arrayCopyWriteBarrier(Object array, Object value, int index); + public static native void arrayCopyWriteBarrier(Object array, Object value, long index); }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ArrayCopySnippets.java Wed Mar 27 17:22:12 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ArrayCopySnippets.java Thu Mar 28 14:26:38 2013 +0100 @@ -246,7 +246,7 @@ int header = arrayBaseOffset(Kind.Object); if (src == dest && srcPos < destPos) { // bad aliased case long start = (long) (length - 1) * scale; - int j = length - 1; + long j = (long) (length - 1); for (long i = start; i >= 0; i -= scale) { Object a = UnsafeLoadNode.load(src, header, i + (long) srcPos * scale, Kind.Object); DirectObjectStoreNode.storeObject(dest, header, i + (long) destPos * scale, a); @@ -255,7 +255,7 @@ } } else { long end = (long) length * scale; - int j = 0; + long j = srcPos; for (long i = 0; i < end; i += scale) { Object a = UnsafeLoadNode.load(src, header, i + (long) srcPos * scale, Kind.Object); DirectObjectStoreNode.storeObject(dest, header, i + (long) destPos * scale, a);