changeset 18611:20e498cfa409

checkcastArraycopy: if src and dest are equal, unchecked variant can be used
author Bernhard Urban <bernhard.urban@jku.at>
date Thu, 04 Dec 2014 12:13:27 +0100
parents 6a6291c31657
children c2da0aa9e675
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/ArrayCopySnippets.java
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/ArrayCopySnippets.java	Wed Dec 03 20:40:30 2014 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/ArrayCopySnippets.java	Thu Dec 04 12:13:27 2014 +0100
@@ -191,7 +191,8 @@
         Object nonNullDest = guardingNonNull(dest);
         checkLimits(nonNullSrc, srcPos, nonNullDest, destPos, length);
         if (probability(SLOW_PATH_PROBABILITY, nonNullSrc == nonNullDest)) {
-            System.arraycopy(nonNullSrc, srcPos, nonNullDest, destPos, length);
+            // no storecheck required.
+            ArrayCopyCallNode.arraycopy(nonNullSrc, srcPos, nonNullDest, destPos, length, Kind.Object, false, false);
         } else {
             KlassPointer destElemKlass = loadHub(nonNullDest);
             checkcastArraycopyHelper(srcPos, destPos, length, nonNullSrc, nonNullDest, destElemKlass);