public class UnsafeArrayCopySnippets extends Object implements Snippets
ArrayCopySnippets, these Snippets do not perform store checks.| Modifier and Type | Class and Description |
|---|---|
static class |
UnsafeArrayCopySnippets.Templates |
| Modifier and Type | Field and Description |
|---|---|
private static boolean |
supportsUnalignedMemoryAccess |
private static Kind |
VECTOR_KIND |
private static long |
VECTOR_SIZE |
| Constructor and Description |
|---|
UnsafeArrayCopySnippets() |
| Modifier and Type | Method and Description |
|---|---|
static void |
arraycopyBoolean(boolean[] src,
int srcPos,
boolean[] dest,
int destPos,
int length) |
static void |
arraycopyByte(byte[] src,
int srcPos,
byte[] dest,
int destPos,
int length) |
static void |
arraycopyChar(char[] src,
int srcPos,
char[] dest,
int destPos,
int length) |
static void |
arraycopyDouble(double[] src,
int srcPos,
double[] dest,
int destPos,
int length) |
static void |
arraycopyFloat(float[] src,
int srcPos,
float[] dest,
int destPos,
int length) |
static void |
arraycopyInt(int[] src,
int srcPos,
int[] dest,
int destPos,
int length) |
static void |
arraycopyLong(long[] src,
int srcPos,
long[] dest,
int destPos,
int length) |
static void |
arraycopyObject(Object[] src,
int srcPos,
Object[] dest,
int destPos,
int length)
For this kind, Object, we want to avoid write barriers between writes, but instead have them
at the end of the snippet.
|
static void |
arraycopyPrimitive(Object src,
int srcPos,
Object dest,
int destPos,
int length,
int layoutHelper) |
static void |
arraycopyShort(short[] src,
int srcPos,
short[] dest,
int destPos,
int length) |
private static LocationIdentity |
getArrayLocation(Kind kind) |
private static void |
vectorizedCopy(Object src,
int srcPos,
Object dest,
int destPos,
int length,
Kind baseKind,
LocationIdentity locationIdentity) |
private static final boolean supportsUnalignedMemoryAccess
private static final Kind VECTOR_KIND
private static final long VECTOR_SIZE
public UnsafeArrayCopySnippets()
private static void vectorizedCopy(Object src, int srcPos, Object dest, int destPos, int length, Kind baseKind, LocationIdentity locationIdentity)
private static LocationIdentity getArrayLocation(Kind kind)
public static void arraycopyByte(byte[] src, int srcPos, byte[] dest, int destPos, int length)
public static void arraycopyBoolean(boolean[] src, int srcPos, boolean[] dest, int destPos, int length)
public static void arraycopyChar(char[] src, int srcPos, char[] dest, int destPos, int length)
public static void arraycopyShort(short[] src, int srcPos, short[] dest, int destPos, int length)
public static void arraycopyInt(int[] src, int srcPos, int[] dest, int destPos, int length)
public static void arraycopyFloat(float[] src, int srcPos, float[] dest, int destPos, int length)
public static void arraycopyLong(long[] src, int srcPos, long[] dest, int destPos, int length)
public static void arraycopyDouble(double[] src, int srcPos, double[] dest, int destPos, int length)
public static void arraycopyObject(Object[] src, int srcPos, Object[] dest, int destPos, int length)
DirectObjectStoreNode, and rely on
WriteBarrierAdditionPhase to put write barriers after the UnsafeArrayCopyNode
with kind Object.public static void arraycopyPrimitive(Object src, int srcPos, Object dest, int destPos, int length, int layoutHelper)