# HG changeset patch # User Doug Simon # Date 1333534132 -7200 # Node ID 02da376dd2132bf0fa41a15cb61e9eff8254eb49 # Parent 20993edddd73b62d756a5752b363000765d07e02 abstracted word size in object array copy diff -r 20993edddd73 -r 02da376dd213 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ArrayCopySnippets.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ArrayCopySnippets.java Wed Apr 04 09:19:44 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ArrayCopySnippets.java Wed Apr 04 12:08:52 2012 +0200 @@ -280,7 +280,7 @@ @Snippet public static void copyObjectsDown(Object src, long srcOffset, Object dest, long destOffset, int length) { int header = arrayHeaderSizeFor(CiKind.Object); - for (long i = (length - 1) * 8; i >= 0; i -= 8) { + for (long i = (length - 1) * wordSize(); i >= 0; i -= wordSize()) { Object a = UnsafeLoadNode.load(src, header, i + srcOffset, CiKind.Object); DirectObjectStoreNode.store(dest, header, i + destOffset, a); } @@ -341,7 +341,7 @@ @Snippet public static void copyObjectsUp(Object src, long srcOffset, Object dest, long destOffset, int length) { int header = arrayHeaderSizeFor(CiKind.Object); - for (long i = 0; i < length * 8L; i += 8) { + for (long i = 0; i < length * wordSize(); i += wordSize()) { Object a = UnsafeLoadNode.load(src, header, i + srcOffset, CiKind.Object); DirectObjectStoreNode.store(dest, header, i + destOffset, a); } @@ -426,6 +426,11 @@ } @Fold + private static int wordSize() { + return CompilerImpl.getInstance().getTarget().wordSize; + } + + @Fold private static int arrayHeaderSizeFor(CiKind elementKind) { return CompilerImpl.getInstance().getConfig().getArrayOffset(elementKind); }