/** Snippet for unrolled arraycopy. */ @Snippet public static void arraycopyUnrolledIntrinsic( Object src, int srcPos, Object dest, int destPos, int length, @ConstantParameter int unrolledLength, @ConstantParameter JavaKind elementKind) { Object nonNullSrc = GraalDirectives.guardingNonNull(src); Object nonNullDest = GraalDirectives.guardingNonNull(dest); checkLimits(nonNullSrc, srcPos, nonNullDest, destPos, length); if (length == 0) { zeroLengthDynamicCounter.inc(); } else { nonZeroLengthDynamicCounter.inc(); nonZeroLengthDynamicCopiedCounter.add(length); } ArrayCopyUnrollNode.arraycopy( nonNullSrc, srcPos, nonNullDest, destPos, length, unrolledLength, elementKind); }