public class org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets implements org.graalvm.compiler.replacements.Snippets
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets
super_class: java.lang.Object
{
private static final sun.misc.Unsafe UNSAFE;
descriptor: Lsun/misc/Unsafe;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final jdk.vm.ci.meta.MetaAccessProvider INJECTED;
descriptor: Ljdk/vm/ci/meta/MetaAccessProvider;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: .line 55
invokestatic org.graalvm.compiler.serviceprovider.GraalUnsafeAccess.getUnsafe:()Lsun/misc/Unsafe;
putstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.UNSAFE:Lsun/misc/Unsafe;
1: .line 196
aconst_null
putstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.INJECTED:Ljdk/vm/ci/meta/MetaAccessProvider;
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 // org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets this
0: .line 54
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/ConstantStringIndexOfSnippets;
static int md2(char[]);
descriptor: ([C)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=5, args_size=1
start local 0 // char[] target
0: .line 117
aload 0 /* target */
arraylength
istore 1 /* c */
start local 1 // int c
1: .line 118
iload 1 /* c */
ifne 3
2: .line 119
iconst_0
ireturn
3: .line 121
StackMap locals: int
StackMap stack:
aload 0 /* target */
iload 1 /* c */
iconst_1
isub
caload
istore 2 /* lastChar */
start local 2 // char lastChar
4: .line 122
iload 1 /* c */
istore 3 /* md2 */
start local 3 // int md2
5: .line 123
iconst_0
istore 4 /* i */
start local 4 // int i
6: goto 10
7: .line 124
StackMap locals: int int int
StackMap stack:
aload 0 /* target */
iload 4 /* i */
caload
iload 2 /* lastChar */
if_icmpne 9
8: .line 125
iload 1 /* c */
iconst_1
isub
iload 4 /* i */
isub
istore 3 /* md2 */
9: .line 123
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
10: iload 4 /* i */
iload 1 /* c */
iconst_1
isub
if_icmplt 7
end local 4 // int i
11: .line 128
iload 3 /* md2 */
ireturn
end local 3 // int md2
end local 2 // char lastChar
end local 1 // int c
end local 0 // char[] target
LocalVariableTable:
Start End Slot Name Signature
0 12 0 target [C
1 12 1 c I
4 12 2 lastChar C
5 12 3 md2 I
6 11 4 i I
MethodParameters:
Name Flags
target
static long computeCache(char[]);
descriptor: ([C)J
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 // char[] s
0: .line 132
aload 0 /* s */
arraylength
istore 1 /* c */
start local 1 // int c
1: .line 133
iconst_0
istore 2 /* cache */
start local 2 // int cache
2: .line 135
iconst_0
istore 3 /* i */
start local 3 // int i
3: goto 6
4: .line 136
StackMap locals: int int int
StackMap stack:
iload 2 /* cache */
iconst_1
aload 0 /* s */
iload 3 /* i */
caload
bipush 63
iand
ishl
ior
istore 2 /* cache */
5: .line 135
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
6: iload 3 /* i */
iload 1 /* c */
iconst_1
isub
if_icmplt 4
7: .line 138
iload 2 /* cache */
i2l
lreturn
end local 3 // int i
end local 2 // int cache
end local 1 // int c
end local 0 // char[] s
LocalVariableTable:
Start End Slot Name Signature
0 8 0 s [C
1 8 1 c I
2 8 2 cache I
3 8 3 i I
MethodParameters:
Name Flags
s
static int md2(byte[]);
descriptor: ([B)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=5, args_size=1
start local 0 // byte[] target
0: .line 142
aload 0 /* target */
arraylength
istore 1 /* c */
start local 1 // int c
1: .line 143
iload 1 /* c */
ifne 3
2: .line 144
iconst_0
ireturn
3: .line 146
StackMap locals: int
StackMap stack:
aload 0 /* target */
iload 1 /* c */
iconst_1
isub
baload
istore 2 /* lastByte */
start local 2 // byte lastByte
4: .line 147
iload 1 /* c */
istore 3 /* md2 */
start local 3 // int md2
5: .line 148
iconst_0
istore 4 /* i */
start local 4 // int i
6: goto 10
7: .line 149
StackMap locals: int int int
StackMap stack:
aload 0 /* target */
iload 4 /* i */
baload
iload 2 /* lastByte */
if_icmpne 9
8: .line 150
iload 1 /* c */
iconst_1
isub
iload 4 /* i */
isub
istore 3 /* md2 */
9: .line 148
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
10: iload 4 /* i */
iload 1 /* c */
iconst_1
isub
if_icmplt 7
end local 4 // int i
11: .line 153
iload 3 /* md2 */
ireturn
end local 3 // int md2
end local 2 // byte lastByte
end local 1 // int c
end local 0 // byte[] target
LocalVariableTable:
Start End Slot Name Signature
0 12 0 target [B
1 12 1 c I
4 12 2 lastByte B
5 12 3 md2 I
6 11 4 i I
MethodParameters:
Name Flags
target
static long computeCache(byte[]);
descriptor: ([B)J
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 // byte[] s
0: .line 157
aload 0 /* s */
arraylength
istore 1 /* c */
start local 1 // int c
1: .line 158
iconst_0
istore 2 /* cache */
start local 2 // int cache
2: .line 160
iconst_0
istore 3 /* i */
start local 3 // int i
3: goto 6
4: .line 161
StackMap locals: int int int
StackMap stack:
iload 2 /* cache */
iconst_1
aload 0 /* s */
iload 3 /* i */
baload
bipush 63
iand
ishl
ior
istore 2 /* cache */
5: .line 160
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
6: iload 3 /* i */
iload 1 /* c */
iconst_1
isub
if_icmplt 4
7: .line 163
iload 2 /* cache */
i2l
lreturn
end local 3 // int i
end local 2 // int cache
end local 1 // int c
end local 0 // byte[] s
LocalVariableTable:
Start End Slot Name Signature
0 8 0 s [B
1 8 1 c I
2 8 2 cache I
3 8 3 i I
MethodParameters:
Name Flags
s
static int md2Utf16(jdk.vm.ci.meta.MetaAccessProvider, byte[]);
descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;[B)I
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=9, args_size=2
start local 0 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
start local 1 // byte[] target
0: .line 167
aload 1 /* target */
arraylength
iconst_2
idiv
istore 2 /* c */
start local 2 // int c
1: .line 168
iload 2 /* c */
ifne 3
2: .line 169
iconst_0
ireturn
3: .line 171
StackMap locals: int
StackMap stack:
aload 0 /* metaAccess */
getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
i2l
lstore 3 /* base */
start local 3 // long base
4: .line 172
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.UNSAFE:Lsun/misc/Unsafe;
aload 1 /* target */
lload 3 /* base */
iload 2 /* c */
iconst_1
isub
iconst_2
imul
i2l
ladd
invokevirtual sun.misc.Unsafe.getChar:(Ljava/lang/Object;J)C
istore 5 /* lastChar */
start local 5 // char lastChar
5: .line 173
iload 2 /* c */
istore 6 /* md2 */
start local 6 // int md2
6: .line 174
iconst_0
istore 7 /* i */
start local 7 // int i
7: goto 12
8: .line 175
StackMap locals: jdk.vm.ci.meta.MetaAccessProvider byte[] int long int int int
StackMap stack:
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.UNSAFE:Lsun/misc/Unsafe;
aload 1 /* target */
lload 3 /* base */
iload 7 /* i */
iconst_2
imul
i2l
ladd
invokevirtual sun.misc.Unsafe.getChar:(Ljava/lang/Object;J)C
istore 8 /* currChar */
start local 8 // char currChar
9: .line 176
iload 8 /* currChar */
iload 5 /* lastChar */
if_icmpne 11
10: .line 177
iload 2 /* c */
iconst_1
isub
iload 7 /* i */
isub
istore 6 /* md2 */
end local 8 // char currChar
11: .line 174
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
12: iload 7 /* i */
iload 2 /* c */
iconst_1
isub
if_icmplt 8
end local 7 // int i
13: .line 180
iload 6 /* md2 */
ireturn
end local 6 // int md2
end local 5 // char lastChar
end local 3 // long base
end local 2 // int c
end local 1 // byte[] target
end local 0 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
LocalVariableTable:
Start End Slot Name Signature
0 14 0 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
0 14 1 target [B
1 14 2 c I
4 14 3 base J
5 14 5 lastChar C
6 14 6 md2 I
7 13 7 i I
9 11 8 currChar C
MethodParameters:
Name Flags
metaAccess
target
static long computeCacheUtf16(jdk.vm.ci.meta.MetaAccessProvider, byte[]);
descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;[B)J
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=8, args_size=2
start local 0 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
start local 1 // byte[] s
0: .line 184
aload 1 /* s */
arraylength
iconst_2
idiv
istore 2 /* c */
start local 2 // int c
1: .line 185
iconst_0
istore 3 /* cache */
start local 3 // int cache
2: .line 187
aload 0 /* metaAccess */
getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
i2l
lstore 5 /* base */
start local 5 // long base
3: .line 188
iconst_0
istore 4 /* i */
start local 4 // int i
4: goto 8
5: .line 189
StackMap locals: jdk.vm.ci.meta.MetaAccessProvider byte[] int int int long
StackMap stack:
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.UNSAFE:Lsun/misc/Unsafe;
aload 1 /* s */
lload 5 /* base */
iload 4 /* i */
iconst_2
imul
i2l
ladd
invokevirtual sun.misc.Unsafe.getChar:(Ljava/lang/Object;J)C
istore 7 /* currChar */
start local 7 // char currChar
6: .line 190
iload 3 /* cache */
iconst_1
iload 7 /* currChar */
bipush 63
iand
ishl
ior
istore 3 /* cache */
end local 7 // char currChar
7: .line 188
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
8: iload 4 /* i */
iload 2 /* c */
iconst_1
isub
if_icmplt 5
9: .line 192
iload 3 /* cache */
i2l
lreturn
end local 5 // long base
end local 4 // int i
end local 3 // int cache
end local 2 // int c
end local 1 // byte[] s
end local 0 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
LocalVariableTable:
Start End Slot Name Signature
0 10 0 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
0 10 1 s [B
1 10 2 c I
2 10 3 cache I
4 10 4 i I
3 10 5 base J
6 7 7 currChar C
MethodParameters:
Name Flags
metaAccess
s
public static int indexOfConstant(char[], int, int, char[], int, int, int, int, long);
descriptor: ([CII[CIIIIJ)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=22, args_size=9
start local 0 // char[] source
start local 1 // int sourceOffset
start local 2 // int sourceCount
start local 3 // char[] target
start local 4 // int targetOffset
start local 5 // int targetCount
start local 6 // int origFromIndex
start local 7 // int md2
start local 8 // long cache
0: .line 202
iload 6 /* origFromIndex */
istore 10 /* fromIndex */
start local 10 // int fromIndex
1: .line 203
iload 10 /* fromIndex */
iload 2 /* sourceCount */
if_icmplt 5
2: .line 204
iload 5 /* targetCount */
ifne 3
iload 2 /* sourceCount */
goto 4
StackMap locals: int
StackMap stack:
3: iconst_m1
StackMap locals:
StackMap stack: int
4: ireturn
5: .line 206
StackMap locals:
StackMap stack:
iload 10 /* fromIndex */
ifge 7
6: .line 207
iconst_0
istore 10 /* fromIndex */
7: .line 209
StackMap locals:
StackMap stack:
iload 5 /* targetCount */
ifne 9
8: .line 210
iload 10 /* fromIndex */
ireturn
9: .line 213
StackMap locals:
StackMap stack:
iload 5 /* targetCount */
iconst_1
isub
istore 11 /* targetCountLess1 */
start local 11 // int targetCountLess1
10: .line 214
iload 2 /* sourceCount */
iload 11 /* targetCountLess1 */
isub
istore 12 /* sourceEnd */
start local 12 // int sourceEnd
11: .line 216
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.INJECTED:Ljdk/vm/ci/meta/MetaAccessProvider;
invokestatic org.graalvm.compiler.replacements.ReplacementsUtil.charArrayBaseOffset:(Ljdk/vm/ci/meta/MetaAccessProvider;)I
i2l
lstore 13 /* base */
start local 13 // long base
12: .line 217
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.UNSAFE:Lsun/misc/Unsafe;
aload 3 /* target */
lload 13 /* base */
iload 11 /* targetCountLess1 */
iconst_2
imul
i2l
ladd
invokevirtual sun.misc.Unsafe.getChar:(Ljava/lang/Object;J)C
istore 15 /* lastChar */
start local 15 // int lastChar
13: .line 219
iload 1 /* sourceOffset */
iload 10 /* fromIndex */
iadd
i2l
lstore 16 /* i */
start local 16 // long i
14: goto 35
15: .line 220
StackMap locals: char[] int int char[] int int int int long int int int long int long
StackMap stack:
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.UNSAFE:Lsun/misc/Unsafe;
aload 0 /* source */
lload 13 /* base */
lload 16 /* i */
iload 11 /* targetCountLess1 */
i2l
ladd
ldc 2
lmul
ladd
invokevirtual sun.misc.Unsafe.getChar:(Ljava/lang/Object;J)C
istore 18 /* src */
start local 18 // int src
16: .line 221
iload 18 /* src */
iload 15 /* lastChar */
if_icmpne 32
17: .line 230
iload 5 /* targetCount */
bipush 8
if_icmpgt 19
18: .line 231
invokestatic org.graalvm.compiler.replacements.nodes.ExplodeLoopNode.explodeLoop:()V
19: .line 233
StackMap locals: int
StackMap stack:
lconst_0
lstore 19 /* j */
start local 19 // long j
20: goto 30
21: .line 234
StackMap locals: long
StackMap stack:
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.UNSAFE:Lsun/misc/Unsafe;
aload 0 /* source */
lload 13 /* base */
lload 16 /* i */
lload 19 /* j */
ladd
ldc 2
lmul
ladd
invokevirtual sun.misc.Unsafe.getChar:(Ljava/lang/Object;J)C
istore 21 /* sourceChar */
start local 21 // char sourceChar
22: .line 235
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.UNSAFE:Lsun/misc/Unsafe;
aload 3 /* target */
lload 13 /* base */
iload 4 /* targetOffset */
i2l
lload 19 /* j */
ladd
ldc 2
lmul
ladd
invokevirtual sun.misc.Unsafe.getChar:(Ljava/lang/Object;J)C
iload 21 /* sourceChar */
if_icmpeq 29
23: .line 236
lload 8 /* cache */
iconst_1
iload 21 /* sourceChar */
ishl
i2l
land
lconst_0
lcmp
ifne 27
24: .line 237
iload 7 /* md2 */
i2l
lload 19 /* j */
lconst_1
ladd
lcmp
ifge 27
25: .line 238
lload 16 /* i */
lload 19 /* j */
lconst_1
ladd
ladd
lstore 16 /* i */
26: .line 239
goto 35
27: .line 242
StackMap locals: int
StackMap stack:
lload 16 /* i */
iload 7 /* md2 */
i2l
ladd
lstore 16 /* i */
28: .line 243
goto 35
end local 21 // char sourceChar
29: .line 233
StackMap locals:
StackMap stack:
lload 19 /* j */
lconst_1
ladd
lstore 19 /* j */
StackMap locals:
StackMap stack:
30: lload 19 /* j */
iload 11 /* targetCountLess1 */
i2l
lcmp
iflt 21
end local 19 // long j
31: .line 246
lload 16 /* i */
iload 1 /* sourceOffset */
i2l
lsub
l2i
ireturn
32: .line 248
StackMap locals:
StackMap stack:
lload 8 /* cache */
iconst_1
iload 18 /* src */
ishl
i2l
land
lconst_0
lcmp
ifne 34
33: .line 249
lload 16 /* i */
iload 11 /* targetCountLess1 */
i2l
ladd
lstore 16 /* i */
34: .line 251
StackMap locals:
StackMap stack:
lload 16 /* i */
lconst_1
ladd
lstore 16 /* i */
end local 18 // int src
35: .line 219
StackMap locals:
StackMap stack:
lload 16 /* i */
iload 12 /* sourceEnd */
i2l
lcmp
iflt 15
end local 16 // long i
36: .line 253
iconst_m1
ireturn
end local 15 // int lastChar
end local 13 // long base
end local 12 // int sourceEnd
end local 11 // int targetCountLess1
end local 10 // int fromIndex
end local 8 // long cache
end local 7 // int md2
end local 6 // int origFromIndex
end local 5 // int targetCount
end local 4 // int targetOffset
end local 3 // char[] target
end local 2 // int sourceCount
end local 1 // int sourceOffset
end local 0 // char[] source
LocalVariableTable:
Start End Slot Name Signature
0 37 0 source [C
0 37 1 sourceOffset I
0 37 2 sourceCount I
0 37 3 target [C
0 37 4 targetOffset I
0 37 5 targetCount I
0 37 6 origFromIndex I
0 37 7 md2 I
0 37 8 cache J
1 37 10 fromIndex I
10 37 11 targetCountLess1 I
11 37 12 sourceEnd I
12 37 13 base J
13 37 15 lastChar I
14 36 16 i J
16 35 18 src I
20 31 19 j J
22 29 21 sourceChar C
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
RuntimeVisibleParameterAnnotations:
0:
1:
2:
3:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
4:
5:
6:
7:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
8:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
MethodParameters:
Name Flags
source
sourceOffset
sourceCount
target
targetOffset
targetCount
origFromIndex
md2
cache
public static int utf16IndexOfConstant(byte[], int, byte[], int, int, int, long);
descriptor: ([BI[BIIIJ)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=20, args_size=7
start local 0 // byte[] source
start local 1 // int sourceCount
start local 2 // byte[] target
start local 3 // int targetCount
start local 4 // int origFromIndex
start local 5 // int md2
start local 6 // long cache
0: .line 260
iload 4 /* origFromIndex */
istore 8 /* fromIndex */
start local 8 // int fromIndex
1: .line 261
iload 8 /* fromIndex */
iload 1 /* sourceCount */
if_icmplt 5
2: .line 262
iload 3 /* targetCount */
ifne 3
iload 1 /* sourceCount */
goto 4
StackMap locals: int
StackMap stack:
3: iconst_m1
StackMap locals:
StackMap stack: int
4: ireturn
5: .line 264
StackMap locals:
StackMap stack:
iload 8 /* fromIndex */
ifge 7
6: .line 265
iconst_0
istore 8 /* fromIndex */
7: .line 267
StackMap locals:
StackMap stack:
iload 3 /* targetCount */
ifne 9
8: .line 268
iload 8 /* fromIndex */
ireturn
9: .line 271
StackMap locals:
StackMap stack:
iload 3 /* targetCount */
iconst_1
isub
istore 9 /* targetCountLess1 */
start local 9 // int targetCountLess1
10: .line 272
iload 1 /* sourceCount */
iload 9 /* targetCountLess1 */
isub
istore 10 /* sourceEnd */
start local 10 // int sourceEnd
11: .line 274
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.INJECTED:Ljdk/vm/ci/meta/MetaAccessProvider;
invokestatic org.graalvm.compiler.replacements.ReplacementsUtil.byteArrayBaseOffset:(Ljdk/vm/ci/meta/MetaAccessProvider;)I
i2l
lstore 11 /* base */
start local 11 // long base
12: .line 275
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.UNSAFE:Lsun/misc/Unsafe;
aload 2 /* target */
lload 11 /* base */
iload 9 /* targetCountLess1 */
iconst_2
imul
i2l
ladd
invokevirtual sun.misc.Unsafe.getChar:(Ljava/lang/Object;J)C
istore 13 /* lastChar */
start local 13 // int lastChar
13: .line 277
iload 8 /* fromIndex */
i2l
lstore 14 /* i */
start local 14 // long i
14: goto 35
15: .line 278
StackMap locals: byte[] int byte[] int int int long int int int long int long
StackMap stack:
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.UNSAFE:Lsun/misc/Unsafe;
aload 0 /* source */
lload 11 /* base */
lload 14 /* i */
iload 9 /* targetCountLess1 */
i2l
ladd
ldc 2
lmul
ladd
invokevirtual sun.misc.Unsafe.getChar:(Ljava/lang/Object;J)C
istore 16 /* src */
start local 16 // int src
16: .line 279
iload 16 /* src */
iload 13 /* lastChar */
if_icmpne 32
17: .line 288
iload 3 /* targetCount */
bipush 8
if_icmpgt 19
18: .line 289
invokestatic org.graalvm.compiler.replacements.nodes.ExplodeLoopNode.explodeLoop:()V
19: .line 291
StackMap locals: int
StackMap stack:
lconst_0
lstore 17 /* j */
start local 17 // long j
20: goto 30
21: .line 292
StackMap locals: long
StackMap stack:
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.UNSAFE:Lsun/misc/Unsafe;
aload 0 /* source */
lload 11 /* base */
lload 14 /* i */
lload 17 /* j */
ladd
ldc 2
lmul
ladd
invokevirtual sun.misc.Unsafe.getChar:(Ljava/lang/Object;J)C
istore 19 /* sourceChar */
start local 19 // char sourceChar
22: .line 293
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.UNSAFE:Lsun/misc/Unsafe;
aload 2 /* target */
lload 11 /* base */
lload 17 /* j */
ldc 2
lmul
ladd
invokevirtual sun.misc.Unsafe.getChar:(Ljava/lang/Object;J)C
iload 19 /* sourceChar */
if_icmpeq 29
23: .line 294
lload 6 /* cache */
iconst_1
iload 19 /* sourceChar */
ishl
i2l
land
lconst_0
lcmp
ifne 27
24: .line 295
iload 5 /* md2 */
i2l
lload 17 /* j */
lconst_1
ladd
lcmp
ifge 27
25: .line 296
lload 14 /* i */
lload 17 /* j */
lconst_1
ladd
ladd
lstore 14 /* i */
26: .line 297
goto 35
27: .line 300
StackMap locals: int
StackMap stack:
lload 14 /* i */
iload 5 /* md2 */
i2l
ladd
lstore 14 /* i */
28: .line 301
goto 35
end local 19 // char sourceChar
29: .line 291
StackMap locals:
StackMap stack:
lload 17 /* j */
lconst_1
ladd
lstore 17 /* j */
StackMap locals:
StackMap stack:
30: lload 17 /* j */
iload 9 /* targetCountLess1 */
i2l
lcmp
iflt 21
end local 17 // long j
31: .line 304
lload 14 /* i */
l2i
ireturn
32: .line 306
StackMap locals:
StackMap stack:
lload 6 /* cache */
iconst_1
iload 16 /* src */
ishl
i2l
land
lconst_0
lcmp
ifne 34
33: .line 307
lload 14 /* i */
iload 9 /* targetCountLess1 */
i2l
ladd
lstore 14 /* i */
34: .line 309
StackMap locals:
StackMap stack:
lload 14 /* i */
lconst_1
ladd
lstore 14 /* i */
end local 16 // int src
35: .line 277
StackMap locals:
StackMap stack:
lload 14 /* i */
iload 10 /* sourceEnd */
i2l
lcmp
iflt 15
end local 14 // long i
36: .line 311
iconst_m1
ireturn
end local 13 // int lastChar
end local 11 // long base
end local 10 // int sourceEnd
end local 9 // int targetCountLess1
end local 8 // int fromIndex
end local 6 // long cache
end local 5 // int md2
end local 4 // int origFromIndex
end local 3 // int targetCount
end local 2 // byte[] target
end local 1 // int sourceCount
end local 0 // byte[] source
LocalVariableTable:
Start End Slot Name Signature
0 37 0 source [B
0 37 1 sourceCount I
0 37 2 target [B
0 37 3 targetCount I
0 37 4 origFromIndex I
0 37 5 md2 I
0 37 6 cache J
1 37 8 fromIndex I
10 37 9 targetCountLess1 I
11 37 10 sourceEnd I
12 37 11 base J
13 37 13 lastChar I
14 36 14 i J
16 35 16 src I
20 31 17 j J
22 29 19 sourceChar C
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
3:
4:
5:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
6:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
MethodParameters:
Name Flags
source
sourceCount
target
targetCount
origFromIndex
md2
cache
public static int latin1IndexOfConstant(byte[], int, byte[], int, int, int, long);
descriptor: ([BI[BIIIJ)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=20, args_size=7
start local 0 // byte[] source
start local 1 // int sourceCount
start local 2 // byte[] target
start local 3 // int targetCount
start local 4 // int origFromIndex
start local 5 // int md2
start local 6 // long cache
0: .line 318
iload 4 /* origFromIndex */
istore 8 /* fromIndex */
start local 8 // int fromIndex
1: .line 319
iload 8 /* fromIndex */
iload 1 /* sourceCount */
if_icmplt 5
2: .line 320
iload 3 /* targetCount */
ifne 3
iload 1 /* sourceCount */
goto 4
StackMap locals: int
StackMap stack:
3: iconst_m1
StackMap locals:
StackMap stack: int
4: ireturn
5: .line 322
StackMap locals:
StackMap stack:
iload 8 /* fromIndex */
ifge 7
6: .line 323
iconst_0
istore 8 /* fromIndex */
7: .line 325
StackMap locals:
StackMap stack:
iload 3 /* targetCount */
ifne 9
8: .line 326
iload 8 /* fromIndex */
ireturn
9: .line 329
StackMap locals:
StackMap stack:
iload 3 /* targetCount */
iconst_1
isub
istore 9 /* targetCountLess1 */
start local 9 // int targetCountLess1
10: .line 330
iload 1 /* sourceCount */
iload 9 /* targetCountLess1 */
isub
istore 10 /* sourceEnd */
start local 10 // int sourceEnd
11: .line 332
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.INJECTED:Ljdk/vm/ci/meta/MetaAccessProvider;
invokestatic org.graalvm.compiler.replacements.ReplacementsUtil.byteArrayBaseOffset:(Ljdk/vm/ci/meta/MetaAccessProvider;)I
i2l
lstore 11 /* base */
start local 11 // long base
12: .line 333
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.UNSAFE:Lsun/misc/Unsafe;
aload 2 /* target */
lload 11 /* base */
iload 9 /* targetCountLess1 */
i2l
ladd
invokevirtual sun.misc.Unsafe.getByte:(Ljava/lang/Object;J)B
istore 13 /* lastByte */
start local 13 // int lastByte
13: .line 335
iload 8 /* fromIndex */
i2l
lstore 14 /* i */
start local 14 // long i
14: goto 35
15: .line 336
StackMap locals: byte[] int byte[] int int int long int int int long int long
StackMap stack:
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.UNSAFE:Lsun/misc/Unsafe;
aload 0 /* source */
lload 11 /* base */
lload 14 /* i */
ladd
iload 9 /* targetCountLess1 */
i2l
ladd
invokevirtual sun.misc.Unsafe.getByte:(Ljava/lang/Object;J)B
istore 16 /* src */
start local 16 // int src
16: .line 337
iload 16 /* src */
iload 13 /* lastByte */
if_icmpne 32
17: .line 346
iload 3 /* targetCount */
bipush 8
if_icmpgt 19
18: .line 347
invokestatic org.graalvm.compiler.replacements.nodes.ExplodeLoopNode.explodeLoop:()V
19: .line 349
StackMap locals: int
StackMap stack:
lconst_0
lstore 17 /* j */
start local 17 // long j
20: goto 30
21: .line 350
StackMap locals: long
StackMap stack:
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.UNSAFE:Lsun/misc/Unsafe;
aload 0 /* source */
lload 11 /* base */
lload 14 /* i */
ladd
lload 17 /* j */
ladd
invokevirtual sun.misc.Unsafe.getByte:(Ljava/lang/Object;J)B
istore 19 /* sourceByte */
start local 19 // byte sourceByte
22: .line 351
getstatic org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets.UNSAFE:Lsun/misc/Unsafe;
aload 2 /* target */
lload 11 /* base */
lload 17 /* j */
ladd
invokevirtual sun.misc.Unsafe.getByte:(Ljava/lang/Object;J)B
iload 19 /* sourceByte */
if_icmpeq 29
23: .line 352
lload 6 /* cache */
iconst_1
iload 19 /* sourceByte */
ishl
i2l
land
lconst_0
lcmp
ifne 27
24: .line 353
iload 5 /* md2 */
i2l
lload 17 /* j */
lconst_1
ladd
lcmp
ifge 27
25: .line 354
lload 14 /* i */
lload 17 /* j */
lconst_1
ladd
ladd
lstore 14 /* i */
26: .line 355
goto 35
27: .line 358
StackMap locals: int
StackMap stack:
lload 14 /* i */
iload 5 /* md2 */
i2l
ladd
lstore 14 /* i */
28: .line 359
goto 35
end local 19 // byte sourceByte
29: .line 349
StackMap locals:
StackMap stack:
lload 17 /* j */
lconst_1
ladd
lstore 17 /* j */
StackMap locals:
StackMap stack:
30: lload 17 /* j */
iload 9 /* targetCountLess1 */
i2l
lcmp
iflt 21
end local 17 // long j
31: .line 362
lload 14 /* i */
l2i
ireturn
32: .line 364
StackMap locals:
StackMap stack:
lload 6 /* cache */
iconst_1
iload 16 /* src */
ishl
i2l
land
lconst_0
lcmp
ifne 34
33: .line 365
lload 14 /* i */
iload 9 /* targetCountLess1 */
i2l
ladd
lstore 14 /* i */
34: .line 367
StackMap locals:
StackMap stack:
lload 14 /* i */
lconst_1
ladd
lstore 14 /* i */
end local 16 // int src
35: .line 335
StackMap locals:
StackMap stack:
lload 14 /* i */
iload 10 /* sourceEnd */
i2l
lcmp
iflt 15
end local 14 // long i
36: .line 369
iconst_m1
ireturn
end local 13 // int lastByte
end local 11 // long base
end local 10 // int sourceEnd
end local 9 // int targetCountLess1
end local 8 // int fromIndex
end local 6 // long cache
end local 5 // int md2
end local 4 // int origFromIndex
end local 3 // int targetCount
end local 2 // byte[] target
end local 1 // int sourceCount
end local 0 // byte[] source
LocalVariableTable:
Start End Slot Name Signature
0 37 0 source [B
0 37 1 sourceCount I
0 37 2 target [B
0 37 3 targetCount I
0 37 4 origFromIndex I
0 37 5 md2 I
0 37 6 cache J
1 37 8 fromIndex I
10 37 9 targetCountLess1 I
11 37 10 sourceEnd I
12 37 11 base J
13 37 13 lastByte I
14 36 14 i J
16 35 16 src I
20 31 17 j J
22 29 19 sourceByte B
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
3:
4:
5:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
6:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
MethodParameters:
Name Flags
source
sourceCount
target
targetCount
origFromIndex
md2
cache
}
SourceFile: "ConstantStringIndexOfSnippets.java"
NestMembers:
org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets$Templates
InnerClasses:
public abstract ConstantParameter = org.graalvm.compiler.api.replacements.Snippet$ConstantParameter of org.graalvm.compiler.api.replacements.Snippet
public Templates = org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets$Templates of org.graalvm.compiler.replacements.ConstantStringIndexOfSnippets