public class org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets implements org.graalvm.compiler.replacements.Snippets
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets
super_class: java.lang.Object
{
private static final boolean supportsUnalignedMemoryAccess;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final jdk.vm.ci.meta.JavaKind VECTOR_KIND;
descriptor: Ljdk/vm/ci/meta/JavaKind;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long VECTOR_SIZE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getHostJVMCIBackend:()Ljdk/vm/ci/runtime/JVMCIBackend;
invokevirtual jdk.vm.ci.runtime.JVMCIBackend.getTarget:()Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
invokevirtual jdk.vm.ci.code.Architecture.supportsUnalignedMemoryAccess:()Z
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.supportsUnalignedMemoryAccess:Z
1: getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_KIND:Ljdk/vm/ci/meta/JavaKind;
2: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_KIND:Ljdk/vm/ci/meta/JavaKind;
invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getArrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
i2l
putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/replacements/arraycopy/UnsafeArrayCopySnippets;
private static void vectorizedCopy(java.lang.Object, int, java.lang.Object, int, int, jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.core.common.LocationIdentity);
descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=23, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
istore 7
start local 7 1: aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
istore 8
start local 8 2: iload 4
i2l
iload 8
i2l
lmul
lstore 9
start local 9 3: iload 1
i2l
iload 8
i2l
lmul
lstore 11
start local 11 4: iload 3
i2l
iload 8
i2l
lmul
lstore 13
start local 13 5: lload 9
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
lcmp
iflt 10
lload 11
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
lrem
lload 13
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
lrem
lcmp
ifne 10
6: iload 7
i2l
lload 11
ladd
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
invokestatic org.graalvm.compiler.asm.NumUtil.roundUp:(JJ)J
iload 7
i2l
lload 11
ladd
lsub
lstore 15
start local 15 7: lload 9
lload 15
lsub
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
lrem
lstore 19
start local 19 8: lload 9
lload 15
lsub
lload 19
lsub
lstore 17
start local 17 9: goto 18
end local 19 end local 17 end local 15 10: StackMap locals: java.lang.Object int java.lang.Object int int jdk.vm.ci.meta.JavaKind org.graalvm.compiler.core.common.LocationIdentity int int long long long
StackMap stack:
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.supportsUnalignedMemoryAccess:Z
ifeq 15
11: lload 9
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
lrem
lstore 15
start local 15 12: lload 9
lload 15
lsub
lstore 17
start local 17 13: lconst_0
lstore 19
start local 19 14: goto 18
end local 19 end local 17 end local 15 15: StackMap locals:
StackMap stack:
lload 9
lstore 15
start local 15 16: lconst_0
lstore 17
start local 17 17: lconst_0
lstore 19
start local 19 18: StackMap locals: long long long
StackMap stack:
ldc 0.09999999999999998
aload 0
aload 2
if_acmpne 19
iconst_1
goto 20
StackMap locals:
StackMap stack: double
19: iconst_0
StackMap locals: java.lang.Object int java.lang.Object int int jdk.vm.ci.meta.JavaKind org.graalvm.compiler.core.common.LocationIdentity int int long long long long long long
StackMap stack: double int
20: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 47
ldc 0.09999999999999998
iload 1
iload 3
if_icmpge 21
iconst_1
goto 22
StackMap locals:
StackMap stack: double
21: iconst_0
StackMap locals: java.lang.Object int java.lang.Object int int jdk.vm.ci.meta.JavaKind org.graalvm.compiler.core.common.LocationIdentity int int long long long long long long
StackMap stack: double int
22: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 47
23: lload 11
lload 9
ladd
lstore 11
24: lload 13
lload 9
ladd
lstore 13
25: lconst_0
lstore 21
start local 21 26: goto 31
27: StackMap locals: long
StackMap stack:
lload 11
iload 8
i2l
lsub
lstore 11
28: lload 13
iload 8
i2l
lsub
lstore 13
29: aload 0
iload 7
i2l
lload 11
ladd
aload 2
iload 7
i2l
lload 13
ladd
aload 5
aload 6
invokestatic org.graalvm.compiler.nodes.extended.UnsafeCopyNode.copy:(Ljava/lang/Object;JLjava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
30: lload 21
iload 8
i2l
ladd
lstore 21
StackMap locals:
StackMap stack:
31: lload 21
lload 19
lcmp
iflt 27
end local 21 32: lconst_0
lstore 21
start local 21 33: goto 38
34: StackMap locals:
StackMap stack:
lload 11
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
lsub
lstore 11
35: lload 13
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
lsub
lstore 13
36: aload 0
iload 7
i2l
lload 11
ladd
aload 2
iload 7
i2l
lload 13
ladd
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_KIND:Ljdk/vm/ci/meta/JavaKind;
aload 6
invokestatic org.graalvm.compiler.nodes.extended.UnsafeCopyNode.copy:(Ljava/lang/Object;JLjava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
37: lload 21
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
ladd
lstore 21
StackMap locals:
StackMap stack:
38: lload 21
lload 17
lcmp
iflt 34
end local 21 39: lconst_0
lstore 21
start local 21 40: goto 45
41: StackMap locals:
StackMap stack:
lload 11
iload 8
i2l
lsub
lstore 11
42: lload 13
iload 8
i2l
lsub
lstore 13
43: aload 0
iload 7
i2l
lload 11
ladd
aload 2
iload 7
i2l
lload 13
ladd
aload 5
aload 6
invokestatic org.graalvm.compiler.nodes.extended.UnsafeCopyNode.copy:(Ljava/lang/Object;JLjava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
44: lload 21
iload 8
i2l
ladd
lstore 21
StackMap locals:
StackMap stack:
45: lload 21
lload 15
lcmp
iflt 41
end local 21 46: goto 68
47: StackMap locals:
StackMap stack:
lconst_0
lstore 21
start local 21 48: goto 53
49: StackMap locals: long
StackMap stack:
aload 0
iload 7
i2l
lload 11
ladd
aload 2
iload 7
i2l
lload 13
ladd
aload 5
aload 6
invokestatic org.graalvm.compiler.nodes.extended.UnsafeCopyNode.copy:(Ljava/lang/Object;JLjava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
50: lload 11
iload 8
i2l
ladd
lstore 11
51: lload 13
iload 8
i2l
ladd
lstore 13
52: lload 21
iload 8
i2l
ladd
lstore 21
StackMap locals:
StackMap stack:
53: lload 21
lload 15
lcmp
iflt 49
end local 21 54: lconst_0
lstore 21
start local 21 55: goto 60
56: StackMap locals:
StackMap stack:
aload 0
iload 7
i2l
lload 11
ladd
aload 2
iload 7
i2l
lload 13
ladd
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_KIND:Ljdk/vm/ci/meta/JavaKind;
aload 6
invokestatic org.graalvm.compiler.nodes.extended.UnsafeCopyNode.copy:(Ljava/lang/Object;JLjava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
57: lload 11
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
ladd
lstore 11
58: lload 13
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
ladd
lstore 13
59: lload 21
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
ladd
lstore 21
StackMap locals:
StackMap stack:
60: lload 21
lload 17
lcmp
iflt 56
end local 21 61: lconst_0
lstore 21
start local 21 62: goto 67
63: StackMap locals:
StackMap stack:
aload 0
iload 7
i2l
lload 11
ladd
aload 2
iload 7
i2l
lload 13
ladd
aload 5
aload 6
invokestatic org.graalvm.compiler.nodes.extended.UnsafeCopyNode.copy:(Ljava/lang/Object;JLjava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
64: lload 11
iload 8
i2l
ladd
lstore 11
65: lload 13
iload 8
i2l
ladd
lstore 13
66: lload 21
iload 8
i2l
ladd
lstore 21
StackMap locals:
StackMap stack:
67: lload 21
lload 19
lcmp
iflt 63
end local 21 68: StackMap locals:
StackMap stack:
return
end local 19 end local 17 end local 15 end local 13 end local 11 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 69 0 src Ljava/lang/Object;
0 69 1 srcPos I
0 69 2 dest Ljava/lang/Object;
0 69 3 destPos I
0 69 4 length I
0 69 5 baseKind Ljdk/vm/ci/meta/JavaKind;
0 69 6 locationIdentity Lorg/graalvm/compiler/core/common/LocationIdentity;
1 69 7 arrayBaseOffset I
2 69 8 elementSize I
3 69 9 byteLength J
4 69 11 srcOffset J
5 69 13 destOffset J
7 10 15 preLoopBytes J
12 15 15 preLoopBytes J
16 69 15 preLoopBytes J
9 10 17 mainLoopBytes J
13 15 17 mainLoopBytes J
17 69 17 mainLoopBytes J
8 10 19 postLoopBytes J
14 15 19 postLoopBytes J
18 69 19 postLoopBytes J
26 32 21 i J
33 39 21 i J
40 46 21 i J
48 54 21 i J
55 61 21 i J
62 68 21 i J
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
baseKind
locationIdentity
static org.graalvm.compiler.core.common.LocationIdentity getArrayLocation(jdk.vm.ci.meta.JavaKind);
descriptor: (Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 kind Ljdk/vm/ci/meta/JavaKind;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
MethodParameters:
Name Flags
kind
public static void arraycopyByte(byte[], int, byte[], int, int);
descriptor: ([BI[BII)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
astore 5
start local 5 1: aload 0
iload 1
aload 2
iload 3
iload 4
aload 5
aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.vectorizedCopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
2: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 src [B
0 3 1 srcPos I
0 3 2 dest [B
0 3 3 destPos I
0 3 4 length I
1 3 5 kind Ljdk/vm/ci/meta/JavaKind;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
public static void arraycopyBoolean(boolean[], int, boolean[], int, int);
descriptor: ([ZI[ZII)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
astore 5
start local 5 1: aload 0
iload 1
aload 2
iload 3
iload 4
aload 5
aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.vectorizedCopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
2: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 src [Z
0 3 1 srcPos I
0 3 2 dest [Z
0 3 3 destPos I
0 3 4 length I
1 3 5 kind Ljdk/vm/ci/meta/JavaKind;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
public static void arraycopyChar(char[], int, char[], int, int);
descriptor: ([CI[CII)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
astore 5
start local 5 1: aload 0
iload 1
aload 2
iload 3
iload 4
aload 5
aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.vectorizedCopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
2: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 src [C
0 3 1 srcPos I
0 3 2 dest [C
0 3 3 destPos I
0 3 4 length I
1 3 5 kind Ljdk/vm/ci/meta/JavaKind;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
public static void arraycopyShort(short[], int, short[], int, int);
descriptor: ([SI[SII)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic jdk.vm.ci.meta.JavaKind.Short:Ljdk/vm/ci/meta/JavaKind;
astore 5
start local 5 1: aload 0
iload 1
aload 2
iload 3
iload 4
aload 5
aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.vectorizedCopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
2: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 src [S
0 3 1 srcPos I
0 3 2 dest [S
0 3 3 destPos I
0 3 4 length I
1 3 5 kind Ljdk/vm/ci/meta/JavaKind;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
public static void arraycopyInt(int[], int, int[], int, int);
descriptor: ([II[III)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
astore 5
start local 5 1: aload 0
iload 1
aload 2
iload 3
iload 4
aload 5
aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.vectorizedCopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
2: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 src [I
0 3 1 srcPos I
0 3 2 dest [I
0 3 3 destPos I
0 3 4 length I
1 3 5 kind Ljdk/vm/ci/meta/JavaKind;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
public static void arraycopyFloat(float[], int, float[], int, int);
descriptor: ([FI[FII)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
astore 5
start local 5 1: aload 0
iload 1
aload 2
iload 3
iload 4
aload 5
aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.vectorizedCopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
2: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 src [F
0 3 1 srcPos I
0 3 2 dest [F
0 3 3 destPos I
0 3 4 length I
1 3 5 kind Ljdk/vm/ci/meta/JavaKind;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
public static void arraycopyLong(long[], int, long[], int, int);
descriptor: ([JI[JII)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
astore 5
start local 5 1: aload 0
iload 1
aload 2
iload 3
iload 4
aload 5
aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.vectorizedCopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
2: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 src [J
0 3 1 srcPos I
0 3 2 dest [J
0 3 3 destPos I
0 3 4 length I
1 3 5 kind Ljdk/vm/ci/meta/JavaKind;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
public static void arraycopyDouble(double[], int, double[], int, int);
descriptor: ([DI[DII)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
astore 5
start local 5 1: aload 0
iload 1
aload 2
iload 3
iload 4
aload 5
aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.vectorizedCopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
2: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 src [D
0 3 1 srcPos I
0 3 2 dest [D
0 3 3 destPos I
0 3 4 length I
1 3 5 kind Ljdk/vm/ci/meta/JavaKind;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
public static void arraycopyObject(java.lang.Object[], int, java.lang.Object[], int, int);
descriptor: ([Ljava/lang/Object;I[Ljava/lang/Object;II)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=14, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
astore 5
start local 5 1: aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
istore 6
start local 6 2: aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
istore 7
start local 7 3: aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
astore 8
start local 8 4: aload 0
aload 2
if_acmpne 13
iload 1
iload 3
if_icmpge 13
5: iload 4
iconst_1
isub
i2l
iload 6
i2l
lmul
lstore 9
start local 9 6: lload 9
lstore 11
start local 11 7: goto 11
8: StackMap locals: java.lang.Object[] int java.lang.Object[] int int jdk.vm.ci.meta.JavaKind int int org.graalvm.compiler.core.common.LocationIdentity long long
StackMap stack:
aload 0
iload 7
i2l
lload 11
ladd
iload 1
i2l
iload 6
i2l
lmul
ladd
aload 5
aload 8
invokestatic org.graalvm.compiler.nodes.extended.UnsafeLoadNode.load:(Ljava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)Ljava/lang/Object;
astore 13
start local 13 9: aload 2
iload 7
lload 11
iload 3
i2l
iload 6
i2l
lmul
ladd
aload 13
aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
aload 5
invokestatic org.graalvm.compiler.replacements.nodes.DirectObjectStoreNode.storeObject:(Ljava/lang/Object;IJLjava/lang/Object;Lorg/graalvm/compiler/core/common/LocationIdentity;Ljdk/vm/ci/meta/JavaKind;)V
end local 13 10: lload 11
iload 6
i2l
lsub
lstore 11
StackMap locals:
StackMap stack:
11: lload 11
lconst_0
lcmp
ifge 8
end local 11 end local 9 12: goto 20
13: StackMap locals:
StackMap stack:
iload 4
i2l
iload 6
i2l
lmul
lstore 9
start local 9 14: lconst_0
lstore 11
start local 11 15: goto 19
16: StackMap locals: long long
StackMap stack:
aload 0
iload 7
i2l
lload 11
ladd
iload 1
i2l
iload 6
i2l
lmul
ladd
aload 5
aload 8
invokestatic org.graalvm.compiler.nodes.extended.UnsafeLoadNode.load:(Ljava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)Ljava/lang/Object;
astore 13
start local 13 17: aload 2
iload 7
lload 11
iload 3
i2l
iload 6
i2l
lmul
ladd
aload 13
aload 5
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
aload 5
invokestatic org.graalvm.compiler.replacements.nodes.DirectObjectStoreNode.storeObject:(Ljava/lang/Object;IJLjava/lang/Object;Lorg/graalvm/compiler/core/common/LocationIdentity;Ljdk/vm/ci/meta/JavaKind;)V
end local 13 18: lload 11
iload 6
i2l
ladd
lstore 11
StackMap locals:
StackMap stack:
19: lload 11
lload 9
lcmp
iflt 16
end local 11 end local 9 20: StackMap locals:
StackMap stack:
return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 src [Ljava/lang/Object;
0 21 1 srcPos I
0 21 2 dest [Ljava/lang/Object;
0 21 3 destPos I
0 21 4 length I
1 21 5 kind Ljdk/vm/ci/meta/JavaKind;
2 21 6 scale I
3 21 7 arrayBaseOffset I
4 21 8 arrayLocation Lorg/graalvm/compiler/core/common/LocationIdentity;
6 12 9 start J
7 12 11 i J
9 10 13 a Ljava/lang/Object;
14 20 9 end J
15 20 11 i J
17 18 13 a Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
public static void arraycopyPrimitive(java.lang.Object, int, java.lang.Object, int, int, int);
descriptor: (Ljava/lang/Object;ILjava/lang/Object;III)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=18, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iload 5
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperLog2ElementSizeShift:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
ishr
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperLog2ElementSizeMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
iand
istore 6
start local 6 1: iload 5
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperHeaderSizeShift:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
ishr
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperHeaderSizeMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
iand
istore 7
start local 7 2: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
invokestatic org.graalvm.compiler.word.Word.unsigned:(J)Lorg/graalvm/compiler/word/Word;
astore 8
start local 8 3: iload 1
invokestatic org.graalvm.compiler.word.Word.unsigned:(I)Lorg/graalvm/compiler/word/Word;
iload 6
invokevirtual org.graalvm.compiler.word.Word.shiftLeft:(I)Lorg/graalvm/compiler/word/Word;
iload 7
invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
astore 9
start local 9 4: iload 3
invokestatic org.graalvm.compiler.word.Word.unsigned:(I)Lorg/graalvm/compiler/word/Word;
iload 6
invokevirtual org.graalvm.compiler.word.Word.shiftLeft:(I)Lorg/graalvm/compiler/word/Word;
iload 7
invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
astore 10
start local 10 5: aload 10
astore 11
start local 11 6: aload 10
iload 4
invokestatic org.graalvm.compiler.word.Word.unsigned:(I)Lorg/graalvm/compiler/word/Word;
iload 6
invokevirtual org.graalvm.compiler.word.Word.shiftLeft:(I)Lorg/graalvm/compiler/word/Word;
invokeinterface org.graalvm.compiler.word.Unsigned.add:(Lorg/graalvm/compiler/word/Unsigned;)Lorg/graalvm/compiler/word/Unsigned;
astore 12
start local 12 7: aconst_null
astore 13
start local 13 8: aconst_null
astore 14
start local 14 9: iload 4
invokestatic org.graalvm.compiler.word.Word.unsigned:(I)Lorg/graalvm/compiler/word/Word;
iload 6
invokevirtual org.graalvm.compiler.word.Word.shiftLeft:(I)Lorg/graalvm/compiler/word/Word;
astore 15
start local 15 10: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.supportsUnalignedMemoryAccess:Z
ifeq 14
11: aload 15
aload 8
invokeinterface org.graalvm.compiler.word.Unsigned.unsignedRemainder:(Lorg/graalvm/compiler/word/Unsigned;)Lorg/graalvm/compiler/word/Unsigned;
astore 14
12: aload 12
astore 13
13: goto 21
14: StackMap locals: java.lang.Object int java.lang.Object int int int int int org.graalvm.compiler.word.Unsigned org.graalvm.compiler.word.Unsigned org.graalvm.compiler.word.Unsigned org.graalvm.compiler.word.Unsigned org.graalvm.compiler.word.Unsigned org.graalvm.compiler.word.Unsigned org.graalvm.compiler.word.Unsigned org.graalvm.compiler.word.Unsigned
StackMap stack:
aload 9
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
l2i
iconst_1
isub
invokeinterface org.graalvm.compiler.word.Unsigned.and:(I)Lorg/graalvm/compiler/word/Unsigned;
aload 10
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
l2i
iconst_1
isub
invokeinterface org.graalvm.compiler.word.Unsigned.and:(I)Lorg/graalvm/compiler/word/Unsigned;
invokeinterface org.graalvm.compiler.word.Unsigned.equal:(Lorg/graalvm/compiler/word/Unsigned;)Z
istore 16
start local 16 15: aload 15
aload 8
invokeinterface org.graalvm.compiler.word.Unsigned.aboveOrEqual:(Lorg/graalvm/compiler/word/Unsigned;)Z
istore 17
start local 17 16: iload 17
ifeq 19
iload 16
ifeq 19
17: aload 8
aload 11
aload 8
invokeinterface org.graalvm.compiler.word.Unsigned.unsignedRemainder:(Lorg/graalvm/compiler/word/Unsigned;)Lorg/graalvm/compiler/word/Unsigned;
invokeinterface org.graalvm.compiler.word.Unsigned.subtract:(Lorg/graalvm/compiler/word/Unsigned;)Lorg/graalvm/compiler/word/Unsigned;
astore 14
18: goto 20
19: StackMap locals: int int
StackMap stack:
aload 15
astore 14
20: StackMap locals:
StackMap stack:
aload 12
aload 12
aload 8
invokeinterface org.graalvm.compiler.word.Unsigned.unsignedRemainder:(Lorg/graalvm/compiler/word/Unsigned;)Lorg/graalvm/compiler/word/Unsigned;
invokeinterface org.graalvm.compiler.word.Unsigned.subtract:(Lorg/graalvm/compiler/word/Unsigned;)Lorg/graalvm/compiler/word/Unsigned;
astore 13
end local 17 end local 16 21: StackMap locals:
StackMap stack:
aload 11
aload 14
invokeinterface org.graalvm.compiler.word.Unsigned.add:(Lorg/graalvm/compiler/word/Unsigned;)Lorg/graalvm/compiler/word/Unsigned;
astore 16
start local 16 22: goto 26
23: StackMap locals: org.graalvm.compiler.word.Unsigned
StackMap stack:
aload 2
aload 10
aload 0
aload 9
invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
invokestatic org.graalvm.compiler.word.ObjectAccess.readByte:(Ljava/lang/Object;Lorg/graalvm/compiler/word/WordBase;Lorg/graalvm/compiler/core/common/LocationIdentity;)B
invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
invokestatic org.graalvm.compiler.word.ObjectAccess.writeByte:(Ljava/lang/Object;Lorg/graalvm/compiler/word/WordBase;BLorg/graalvm/compiler/core/common/LocationIdentity;)V
24: aload 10
iconst_1
invokeinterface org.graalvm.compiler.word.Unsigned.add:(I)Lorg/graalvm/compiler/word/Unsigned;
astore 10
25: aload 9
iconst_1
invokeinterface org.graalvm.compiler.word.Unsigned.add:(I)Lorg/graalvm/compiler/word/Unsigned;
astore 9
26: StackMap locals:
StackMap stack:
aload 10
aload 16
invokeinterface org.graalvm.compiler.word.Unsigned.belowThan:(Lorg/graalvm/compiler/word/Unsigned;)Z
ifne 23
27: goto 31
28: StackMap locals:
StackMap stack:
aload 2
aload 10
aload 0
aload 9
invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
invokestatic org.graalvm.compiler.word.ObjectAccess.readWord:(Ljava/lang/Object;Lorg/graalvm/compiler/word/WordBase;Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/word/Word;
invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
invokestatic org.graalvm.compiler.word.ObjectAccess.writeWord:(Ljava/lang/Object;Lorg/graalvm/compiler/word/WordBase;Lorg/graalvm/compiler/word/WordBase;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
29: aload 10
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.wordSize:()I
invokeinterface org.graalvm.compiler.word.Unsigned.add:(I)Lorg/graalvm/compiler/word/Unsigned;
astore 10
30: aload 9
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.wordSize:()I
invokeinterface org.graalvm.compiler.word.Unsigned.add:(I)Lorg/graalvm/compiler/word/Unsigned;
astore 9
31: StackMap locals:
StackMap stack:
aload 10
aload 13
invokeinterface org.graalvm.compiler.word.Unsigned.belowThan:(Lorg/graalvm/compiler/word/Unsigned;)Z
ifne 28
32: goto 36
33: StackMap locals:
StackMap stack:
aload 2
aload 10
aload 0
aload 9
invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
invokestatic org.graalvm.compiler.word.ObjectAccess.readByte:(Ljava/lang/Object;Lorg/graalvm/compiler/word/WordBase;Lorg/graalvm/compiler/core/common/LocationIdentity;)B
invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
invokestatic org.graalvm.compiler.word.ObjectAccess.writeByte:(Ljava/lang/Object;Lorg/graalvm/compiler/word/WordBase;BLorg/graalvm/compiler/core/common/LocationIdentity;)V
34: aload 10
iconst_1
invokeinterface org.graalvm.compiler.word.Unsigned.add:(I)Lorg/graalvm/compiler/word/Unsigned;
astore 10
35: aload 9
iconst_1
invokeinterface org.graalvm.compiler.word.Unsigned.add:(I)Lorg/graalvm/compiler/word/Unsigned;
astore 9
36: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.supportsUnalignedMemoryAccess:Z
ifne 37
aload 10
aload 12
invokeinterface org.graalvm.compiler.word.Unsigned.belowThan:(Lorg/graalvm/compiler/word/Unsigned;)Z
ifne 33
37: StackMap locals:
StackMap stack:
return
end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 src Ljava/lang/Object;
0 38 1 srcPos I
0 38 2 dest Ljava/lang/Object;
0 38 3 destPos I
0 38 4 length I
0 38 5 layoutHelper I
1 38 6 log2ElementSize I
2 38 7 headerSize I
3 38 8 vectorSize Lorg/graalvm/compiler/word/Unsigned;
4 38 9 srcOffset Lorg/graalvm/compiler/word/Unsigned;
5 38 10 destOffset Lorg/graalvm/compiler/word/Unsigned;
6 38 11 destStart Lorg/graalvm/compiler/word/Unsigned;
7 38 12 destEnd Lorg/graalvm/compiler/word/Unsigned;
8 38 13 destVectorEnd Lorg/graalvm/compiler/word/Unsigned;
9 38 14 nonVectorBytes Lorg/graalvm/compiler/word/Unsigned;
10 38 15 sizeInBytes Lorg/graalvm/compiler/word/Unsigned;
15 21 16 inPhase Z
16 21 17 hasAtLeastOneVector Z
22 38 16 destNonVectorEnd Lorg/graalvm/compiler/word/Unsigned;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
src
srcPos
dest
destPos
length
layoutHelper
}
SourceFile: "UnsafeArrayCopySnippets.java"
NestMembers:
org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets$Templates
InnerClasses:
public Templates = org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets$Templates of org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets