Mercurial > hg > graal-compiler
changeset 5193:02da376dd213
abstracted word size in object array copy
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 04 Apr 2012 12:08:52 +0200 |
parents | 20993edddd73 |
children | a6eceb5efb0e |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ArrayCopySnippets.java |
diffstat | 1 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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); }