public final class com.oracle.truffle.api.ArrayUtils
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.ArrayUtils
super_class: java.lang.Object
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 // com.oracle.truffle.api.ArrayUtils this
0: .line 53
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 54
return
end local 0 // com.oracle.truffle.api.ArrayUtils this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/ArrayUtils;
public static int indexOf(java.lang.String, int, int, char[]);
descriptor: (Ljava/lang/String;II[C)I
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=4, locals=4, args_size=4
start local 0 // java.lang.String haystack
start local 1 // int fromIndex
start local 2 // int maxIndex
start local 3 // char[] needle
0: .line 66
aload 0 /* haystack */
invokevirtual java.lang.String.length:()I
iload 1 /* fromIndex */
iload 2 /* maxIndex */
aload 3 /* needle */
arraylength
invokestatic com.oracle.truffle.api.ArrayUtils.checkArgs:(IIII)V
1: .line 67
aload 0 /* haystack */
iload 1 /* fromIndex */
iload 2 /* maxIndex */
aload 3 /* needle */
invokestatic com.oracle.truffle.api.ArrayUtils.runIndexOf:(Ljava/lang/String;II[C)I
ireturn
end local 3 // char[] needle
end local 2 // int maxIndex
end local 1 // int fromIndex
end local 0 // java.lang.String haystack
LocalVariableTable:
Start End Slot Name Signature
0 2 0 haystack Ljava/lang/String;
0 2 1 fromIndex I
0 2 2 maxIndex I
0 2 3 needle [C
MethodParameters:
Name Flags
haystack
fromIndex
maxIndex
needle
private static int runIndexOf(java.lang.String, int, int, char[]);
descriptor: (Ljava/lang/String;II[C)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=9, args_size=4
start local 0 // java.lang.String haystack
start local 1 // int fromIndex
start local 2 // int maxIndex
start local 3 // char[] needle
0: .line 71
iload 1 /* fromIndex */
istore 4 /* i */
start local 4 // int i
1: goto 9
2: .line 72
StackMap locals: int
StackMap stack:
aload 3 /* needle */
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 7
StackMap locals: java.lang.String int int char[] int top int int char[]
StackMap stack:
3: aload 8
iload 6
caload
istore 5 /* c */
start local 5 // char c
4: .line 73
aload 0 /* haystack */
iload 4 /* i */
invokevirtual java.lang.String.charAt:(I)C
iload 5 /* c */
if_icmpne 6
5: .line 74
iload 4 /* i */
ireturn
end local 5 // char c
6: .line 72
StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
7: iload 6
iload 7
if_icmplt 3
8: .line 71
iinc 4 /* i */ 1
StackMap locals: java.lang.String int int char[] int
StackMap stack:
9: iload 4 /* i */
iload 2 /* maxIndex */
if_icmplt 2
end local 4 // int i
10: .line 78
iconst_m1
ireturn
end local 3 // char[] needle
end local 2 // int maxIndex
end local 1 // int fromIndex
end local 0 // java.lang.String haystack
LocalVariableTable:
Start End Slot Name Signature
0 11 0 haystack Ljava/lang/String;
0 11 1 fromIndex I
0 11 2 maxIndex I
0 11 3 needle [C
1 10 4 i I
4 6 5 c C
MethodParameters:
Name Flags
haystack
fromIndex
maxIndex
needle
public static int indexOf(char[], int, int, char[]);
descriptor: ([CII[C)I
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=4, locals=4, args_size=4
start local 0 // char[] haystack
start local 1 // int fromIndex
start local 2 // int maxIndex
start local 3 // char[] needle
0: .line 91
aload 0 /* haystack */
arraylength
iload 1 /* fromIndex */
iload 2 /* maxIndex */
aload 3 /* needle */
arraylength
invokestatic com.oracle.truffle.api.ArrayUtils.checkArgs:(IIII)V
1: .line 92
aload 0 /* haystack */
iload 1 /* fromIndex */
iload 2 /* maxIndex */
aload 3 /* needle */
invokestatic com.oracle.truffle.api.ArrayUtils.runIndexOf:([CII[C)I
ireturn
end local 3 // char[] needle
end local 2 // int maxIndex
end local 1 // int fromIndex
end local 0 // char[] haystack
LocalVariableTable:
Start End Slot Name Signature
0 2 0 haystack [C
0 2 1 fromIndex I
0 2 2 maxIndex I
0 2 3 needle [C
MethodParameters:
Name Flags
haystack
fromIndex
maxIndex
needle
private static int runIndexOf(char[], int, int, char[]);
descriptor: ([CII[C)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=9, args_size=4
start local 0 // char[] haystack
start local 1 // int fromIndex
start local 2 // int maxIndex
start local 3 // char[] needle
0: .line 96
iload 1 /* fromIndex */
istore 4 /* i */
start local 4 // int i
1: goto 9
2: .line 97
StackMap locals: int
StackMap stack:
aload 3 /* needle */
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 7
StackMap locals: char[] int int char[] int top int int char[]
StackMap stack:
3: aload 8
iload 6
caload
istore 5 /* c */
start local 5 // char c
4: .line 98
aload 0 /* haystack */
iload 4 /* i */
caload
iload 5 /* c */
if_icmpne 6
5: .line 99
iload 4 /* i */
ireturn
end local 5 // char c
6: .line 97
StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
7: iload 6
iload 7
if_icmplt 3
8: .line 96
iinc 4 /* i */ 1
StackMap locals: char[] int int char[] int
StackMap stack:
9: iload 4 /* i */
iload 2 /* maxIndex */
if_icmplt 2
end local 4 // int i
10: .line 103
iconst_m1
ireturn
end local 3 // char[] needle
end local 2 // int maxIndex
end local 1 // int fromIndex
end local 0 // char[] haystack
LocalVariableTable:
Start End Slot Name Signature
0 11 0 haystack [C
0 11 1 fromIndex I
0 11 2 maxIndex I
0 11 3 needle [C
1 10 4 i I
4 6 5 c C
MethodParameters:
Name Flags
haystack
fromIndex
maxIndex
needle
public static int indexOf(byte[], int, int, byte[]);
descriptor: ([BII[B)I
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=4, locals=4, args_size=4
start local 0 // byte[] haystack
start local 1 // int fromIndex
start local 2 // int maxIndex
start local 3 // byte[] needle
0: .line 116
aload 0 /* haystack */
arraylength
iload 1 /* fromIndex */
iload 2 /* maxIndex */
aload 3 /* needle */
arraylength
invokestatic com.oracle.truffle.api.ArrayUtils.checkArgs:(IIII)V
1: .line 117
aload 0 /* haystack */
iload 1 /* fromIndex */
iload 2 /* maxIndex */
aload 3 /* needle */
invokestatic com.oracle.truffle.api.ArrayUtils.runIndexOf:([BII[B)I
ireturn
end local 3 // byte[] needle
end local 2 // int maxIndex
end local 1 // int fromIndex
end local 0 // byte[] haystack
LocalVariableTable:
Start End Slot Name Signature
0 2 0 haystack [B
0 2 1 fromIndex I
0 2 2 maxIndex I
0 2 3 needle [B
MethodParameters:
Name Flags
haystack
fromIndex
maxIndex
needle
private static int runIndexOf(byte[], int, int, byte[]);
descriptor: ([BII[B)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=9, args_size=4
start local 0 // byte[] haystack
start local 1 // int fromIndex
start local 2 // int maxIndex
start local 3 // byte[] needle
0: .line 121
iload 1 /* fromIndex */
istore 4 /* i */
start local 4 // int i
1: goto 9
2: .line 122
StackMap locals: int
StackMap stack:
aload 3 /* needle */
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 7
StackMap locals: byte[] int int byte[] int top int int byte[]
StackMap stack:
3: aload 8
iload 6
baload
istore 5 /* c */
start local 5 // byte c
4: .line 123
aload 0 /* haystack */
iload 4 /* i */
baload
iload 5 /* c */
if_icmpne 6
5: .line 124
iload 4 /* i */
ireturn
end local 5 // byte c
6: .line 122
StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
7: iload 6
iload 7
if_icmplt 3
8: .line 121
iinc 4 /* i */ 1
StackMap locals: byte[] int int byte[] int
StackMap stack:
9: iload 4 /* i */
iload 2 /* maxIndex */
if_icmplt 2
end local 4 // int i
10: .line 128
iconst_m1
ireturn
end local 3 // byte[] needle
end local 2 // int maxIndex
end local 1 // int fromIndex
end local 0 // byte[] haystack
LocalVariableTable:
Start End Slot Name Signature
0 11 0 haystack [B
0 11 1 fromIndex I
0 11 2 maxIndex I
0 11 3 needle [B
1 10 4 i I
4 6 5 c B
MethodParameters:
Name Flags
haystack
fromIndex
maxIndex
needle
private static void checkArgs(int, int, int, int);
descriptor: (IIII)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=4
start local 0 // int length
start local 1 // int fromIndex
start local 2 // int maxIndex
start local 3 // int nValues
0: .line 132
iload 1 /* fromIndex */
ifge 2
1: .line 133
ldc "fromIndex must be positive"
invokestatic com.oracle.truffle.api.ArrayUtils.illegalArgumentException:(Ljava/lang/String;)V
2: .line 135
StackMap locals:
StackMap stack:
iload 2 /* maxIndex */
iload 0 /* length */
if_icmpgt 3
iload 2 /* maxIndex */
iload 1 /* fromIndex */
if_icmpge 4
3: .line 136
StackMap locals:
StackMap stack:
ldc "maxIndex out of range"
invokestatic com.oracle.truffle.api.ArrayUtils.illegalArgumentException:(Ljava/lang/String;)V
4: .line 138
StackMap locals:
StackMap stack:
iload 3 /* nValues */
ifne 6
5: .line 139
ldc "no search values provided"
invokestatic com.oracle.truffle.api.ArrayUtils.illegalArgumentException:(Ljava/lang/String;)V
6: .line 141
StackMap locals:
StackMap stack:
return
end local 3 // int nValues
end local 2 // int maxIndex
end local 1 // int fromIndex
end local 0 // int length
LocalVariableTable:
Start End Slot Name Signature
0 7 0 length I
0 7 1 fromIndex I
0 7 2 maxIndex I
0 7 3 nValues I
MethodParameters:
Name Flags
length
fromIndex
maxIndex
nValues
private static int runIndexOfWithOrMask(byte[], int, int, byte, byte);
descriptor: ([BIIBB)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=5
start local 0 // byte[] haystack
start local 1 // int fromIndex
start local 2 // int maxIndex
start local 3 // byte needle
start local 4 // byte mask
0: .line 144
iload 1 /* fromIndex */
istore 5 /* i */
start local 5 // int i
1: goto 5
2: .line 145
StackMap locals: int
StackMap stack:
aload 0 /* haystack */
iload 5 /* i */
baload
iload 4 /* mask */
ior
iload 3 /* needle */
if_icmpne 4
3: .line 146
iload 5 /* i */
ireturn
4: .line 144
StackMap locals:
StackMap stack:
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 5 /* i */
iload 2 /* maxIndex */
if_icmplt 2
end local 5 // int i
6: .line 149
iconst_m1
ireturn
end local 4 // byte mask
end local 3 // byte needle
end local 2 // int maxIndex
end local 1 // int fromIndex
end local 0 // byte[] haystack
LocalVariableTable:
Start End Slot Name Signature
0 7 0 haystack [B
0 7 1 fromIndex I
0 7 2 maxIndex I
0 7 3 needle B
0 7 4 mask B
1 6 5 i I
MethodParameters:
Name Flags
haystack
fromIndex
maxIndex
needle
mask
private static int runIndexOfWithOrMask(char[], int, int, char, char);
descriptor: ([CIICC)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=5
start local 0 // char[] haystack
start local 1 // int fromIndex
start local 2 // int maxIndex
start local 3 // char needle
start local 4 // char mask
0: .line 153
iload 1 /* fromIndex */
istore 5 /* i */
start local 5 // int i
1: goto 5
2: .line 154
StackMap locals: int
StackMap stack:
aload 0 /* haystack */
iload 5 /* i */
caload
iload 4 /* mask */
ior
iload 3 /* needle */
if_icmpne 4
3: .line 155
iload 5 /* i */
ireturn
4: .line 153
StackMap locals:
StackMap stack:
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 5 /* i */
iload 2 /* maxIndex */
if_icmplt 2
end local 5 // int i
6: .line 158
iconst_m1
ireturn
end local 4 // char mask
end local 3 // char needle
end local 2 // int maxIndex
end local 1 // int fromIndex
end local 0 // char[] haystack
LocalVariableTable:
Start End Slot Name Signature
0 7 0 haystack [C
0 7 1 fromIndex I
0 7 2 maxIndex I
0 7 3 needle C
0 7 4 mask C
1 6 5 i I
MethodParameters:
Name Flags
haystack
fromIndex
maxIndex
needle
mask
private static int runIndexOfWithOrMask(java.lang.String, int, int, char, char);
descriptor: (Ljava/lang/String;IICC)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=5
start local 0 // java.lang.String haystack
start local 1 // int fromIndex
start local 2 // int maxIndex
start local 3 // char needle
start local 4 // char mask
0: .line 162
iload 1 /* fromIndex */
istore 5 /* i */
start local 5 // int i
1: goto 5
2: .line 163
StackMap locals: int
StackMap stack:
aload 0 /* haystack */
iload 5 /* i */
invokevirtual java.lang.String.charAt:(I)C
iload 4 /* mask */
ior
iload 3 /* needle */
if_icmpne 4
3: .line 164
iload 5 /* i */
ireturn
4: .line 162
StackMap locals:
StackMap stack:
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 5 /* i */
iload 2 /* maxIndex */
if_icmplt 2
end local 5 // int i
6: .line 167
iconst_m1
ireturn
end local 4 // char mask
end local 3 // char needle
end local 2 // int maxIndex
end local 1 // int fromIndex
end local 0 // java.lang.String haystack
LocalVariableTable:
Start End Slot Name Signature
0 7 0 haystack Ljava/lang/String;
0 7 1 fromIndex I
0 7 2 maxIndex I
0 7 3 needle C
0 7 4 mask C
1 6 5 i I
MethodParameters:
Name Flags
haystack
fromIndex
maxIndex
needle
mask
private static int runIndexOf2ConsecutiveWithOrMask(byte[], int, int, byte, byte, byte, byte);
descriptor: ([BIIBBBB)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=8, args_size=7
start local 0 // byte[] haystack
start local 1 // int fromIndex
start local 2 // int maxIndex
start local 3 // byte c1
start local 4 // byte c2
start local 5 // byte mask1
start local 6 // byte mask2
0: .line 171
iload 1 /* fromIndex */
iconst_1
iadd
istore 7 /* i */
start local 7 // int i
1: goto 5
2: .line 172
StackMap locals: int
StackMap stack:
aload 0 /* haystack */
iload 7 /* i */
iconst_1
isub
baload
iload 5 /* mask1 */
ior
iload 3 /* c1 */
if_icmpne 4
aload 0 /* haystack */
iload 7 /* i */
baload
iload 6 /* mask2 */
ior
iload 4 /* c2 */
if_icmpne 4
3: .line 173
iload 7 /* i */
iconst_1
isub
ireturn
4: .line 171
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 7 /* i */
iload 2 /* maxIndex */
if_icmplt 2
end local 7 // int i
6: .line 176
iconst_m1
ireturn
end local 6 // byte mask2
end local 5 // byte mask1
end local 4 // byte c2
end local 3 // byte c1
end local 2 // int maxIndex
end local 1 // int fromIndex
end local 0 // byte[] haystack
LocalVariableTable:
Start End Slot Name Signature
0 7 0 haystack [B
0 7 1 fromIndex I
0 7 2 maxIndex I
0 7 3 c1 B
0 7 4 c2 B
0 7 5 mask1 B
0 7 6 mask2 B
1 6 7 i I
MethodParameters:
Name Flags
haystack
fromIndex
maxIndex
c1
c2
mask1
mask2
private static int runIndexOf2ConsecutiveWithOrMask(char[], int, int, char, char, char, char);
descriptor: ([CIICCCC)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=8, args_size=7
start local 0 // char[] haystack
start local 1 // int fromIndex
start local 2 // int maxIndex
start local 3 // char c1
start local 4 // char c2
start local 5 // char mask1
start local 6 // char mask2
0: .line 180
iload 1 /* fromIndex */
iconst_1
iadd
istore 7 /* i */
start local 7 // int i
1: goto 5
2: .line 181
StackMap locals: int
StackMap stack:
aload 0 /* haystack */
iload 7 /* i */
iconst_1
isub
caload
iload 5 /* mask1 */
ior
iload 3 /* c1 */
if_icmpne 4
aload 0 /* haystack */
iload 7 /* i */
caload
iload 6 /* mask2 */
ior
iload 4 /* c2 */
if_icmpne 4
3: .line 182
iload 7 /* i */
iconst_1
isub
ireturn
4: .line 180
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 7 /* i */
iload 2 /* maxIndex */
if_icmplt 2
end local 7 // int i
6: .line 185
iconst_m1
ireturn
end local 6 // char mask2
end local 5 // char mask1
end local 4 // char c2
end local 3 // char c1
end local 2 // int maxIndex
end local 1 // int fromIndex
end local 0 // char[] haystack
LocalVariableTable:
Start End Slot Name Signature
0 7 0 haystack [C
0 7 1 fromIndex I
0 7 2 maxIndex I
0 7 3 c1 C
0 7 4 c2 C
0 7 5 mask1 C
0 7 6 mask2 C
1 6 7 i I
MethodParameters:
Name Flags
haystack
fromIndex
maxIndex
c1
c2
mask1
mask2
private static int runIndexOf2ConsecutiveWithOrMask(java.lang.String, int, int, char, char, char, char);
descriptor: (Ljava/lang/String;IICCCC)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=8, args_size=7
start local 0 // java.lang.String haystack
start local 1 // int fromIndex
start local 2 // int maxIndex
start local 3 // char c1
start local 4 // char c2
start local 5 // char mask1
start local 6 // char mask2
0: .line 189
iload 1 /* fromIndex */
iconst_1
iadd
istore 7 /* i */
start local 7 // int i
1: goto 5
2: .line 190
StackMap locals: int
StackMap stack:
aload 0 /* haystack */
iload 7 /* i */
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
iload 5 /* mask1 */
ior
iload 3 /* c1 */
if_icmpne 4
aload 0 /* haystack */
iload 7 /* i */
invokevirtual java.lang.String.charAt:(I)C
iload 6 /* mask2 */
ior
iload 4 /* c2 */
if_icmpne 4
3: .line 191
iload 7 /* i */
iconst_1
isub
ireturn
4: .line 189
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 7 /* i */
iload 2 /* maxIndex */
if_icmplt 2
end local 7 // int i
6: .line 194
iconst_m1
ireturn
end local 6 // char mask2
end local 5 // char mask1
end local 4 // char c2
end local 3 // char c1
end local 2 // int maxIndex
end local 1 // int fromIndex
end local 0 // java.lang.String haystack
LocalVariableTable:
Start End Slot Name Signature
0 7 0 haystack Ljava/lang/String;
0 7 1 fromIndex I
0 7 2 maxIndex I
0 7 3 c1 C
0 7 4 c2 C
0 7 5 mask1 C
0 7 6 mask2 C
1 6 7 i I
MethodParameters:
Name Flags
haystack
fromIndex
maxIndex
c1
c2
mask1
mask2
public static int indexOfWithOrMask(byte[], int, int, byte[], byte[]);
descriptor: ([BII[B[B)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=9, args_size=5
start local 0 // byte[] haystack
start local 1 // int fromIndex
start local 2 // int length
start local 3 // byte[] needle
start local 4 // byte[] mask
0: .line 210
aload 0 /* haystack */
arraylength
iload 1 /* fromIndex */
iload 2 /* length */
invokestatic com.oracle.truffle.api.ArrayUtils.checkArgsIndexOf:(III)V
1: .line 211
aload 4 /* mask */
ifnull 3
2: .line 212
aload 3 /* needle */
arraylength
aload 4 /* mask */
arraylength
invokestatic com.oracle.truffle.api.ArrayUtils.checkMaskLengthIndexOf:(II)V
3: .line 214
StackMap locals:
StackMap stack:
aload 3 /* needle */
arraylength
ifne 5
4: .line 215
iload 1 /* fromIndex */
ireturn
5: .line 217
StackMap locals:
StackMap stack:
iload 2 /* length */
aload 3 /* needle */
arraylength
isub
ifge 7
6: .line 218
iconst_m1
ireturn
7: .line 219
StackMap locals:
StackMap stack:
aload 3 /* needle */
arraylength
iconst_1
if_icmpne 11
8: .line 220
aload 0 /* haystack */
iload 1 /* fromIndex */
iload 1 /* fromIndex */
iload 2 /* length */
iadd
aload 3 /* needle */
iconst_0
baload
aload 4 /* mask */
ifnonnull 9
iconst_0
goto 10
StackMap locals: byte[] int int byte[] byte[]
StackMap stack: byte[] int int int
9: aload 4 /* mask */
iconst_0
baload
StackMap locals: byte[] int int byte[] byte[]
StackMap stack: byte[] int int int int
10: invokestatic com.oracle.truffle.api.ArrayUtils.runIndexOfWithOrMask:([BIIBB)I
ireturn
11: .line 222
StackMap locals:
StackMap stack:
iload 1 /* fromIndex */
iload 2 /* length */
iadd
aload 3 /* needle */
arraylength
iconst_2
isub
isub
istore 5 /* max */
start local 5 // int max
12: .line 223
iload 1 /* fromIndex */
istore 6 /* index */
start local 6 // int index
13: .line 224
aload 4 /* mask */
ifnonnull 14
iconst_0
goto 15
StackMap locals: int int
StackMap stack:
14: aload 4 /* mask */
iconst_0
baload
StackMap locals:
StackMap stack: int
15: istore 7 /* mask0 */
start local 7 // byte mask0
16: .line 225
aload 4 /* mask */
ifnonnull 17
iconst_0
goto 18
StackMap locals: int
StackMap stack:
17: aload 4 /* mask */
iconst_1
baload
StackMap locals:
StackMap stack: int
18: istore 8 /* mask1 */
start local 8 // byte mask1
19: .line 226
goto 26
20: .line 227
StackMap locals: int
StackMap stack:
aload 0 /* haystack */
iload 6 /* index */
iload 5 /* max */
aload 3 /* needle */
iconst_0
baload
aload 3 /* needle */
iconst_1
baload
iload 7 /* mask0 */
iload 8 /* mask1 */
invokestatic com.oracle.truffle.api.ArrayUtils.runIndexOf2ConsecutiveWithOrMask:([BIIBBBB)I
istore 6 /* index */
21: .line 228
iload 6 /* index */
ifge 23
22: .line 229
iconst_m1
ireturn
23: .line 231
StackMap locals:
StackMap stack:
aload 3 /* needle */
arraylength
iconst_2
if_icmpeq 24
aload 0 /* haystack */
iload 6 /* index */
aload 3 /* needle */
iconst_0
aload 3 /* needle */
arraylength
aload 4 /* mask */
invokestatic com.oracle.truffle.api.ArrayUtils.regionEqualsWithOrMask:([BI[BII[B)Z
ifeq 25
24: .line 232
StackMap locals:
StackMap stack:
iload 6 /* index */
ireturn
25: .line 234
StackMap locals:
StackMap stack:
iinc 6 /* index */ 1
26: .line 226
StackMap locals:
StackMap stack:
iload 6 /* index */
iload 5 /* max */
iconst_1
isub
if_icmplt 20
27: .line 236
iconst_m1
ireturn
end local 8 // byte mask1
end local 7 // byte mask0
end local 6 // int index
end local 5 // int max
end local 4 // byte[] mask
end local 3 // byte[] needle
end local 2 // int length
end local 1 // int fromIndex
end local 0 // byte[] haystack
LocalVariableTable:
Start End Slot Name Signature
0 28 0 haystack [B
0 28 1 fromIndex I
0 28 2 length I
0 28 3 needle [B
0 28 4 mask [B
12 28 5 max I
13 28 6 index I
16 28 7 mask0 B
19 28 8 mask1 B
MethodParameters:
Name Flags
haystack
fromIndex
length
needle
mask
public static int indexOfWithOrMask(char[], int, int, char[], char[]);
descriptor: ([CII[C[C)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=9, args_size=5
start local 0 // char[] haystack
start local 1 // int fromIndex
start local 2 // int length
start local 3 // char[] needle
start local 4 // char[] mask
0: .line 253
aload 0 /* haystack */
arraylength
iload 1 /* fromIndex */
iload 2 /* length */
invokestatic com.oracle.truffle.api.ArrayUtils.checkArgsIndexOf:(III)V
1: .line 254
aload 4 /* mask */
ifnull 3
2: .line 255
aload 3 /* needle */
arraylength
aload 4 /* mask */
arraylength
invokestatic com.oracle.truffle.api.ArrayUtils.checkMaskLengthIndexOf:(II)V
3: .line 257
StackMap locals:
StackMap stack:
aload 3 /* needle */
arraylength
ifne 5
4: .line 258
iload 1 /* fromIndex */
ireturn
5: .line 260
StackMap locals:
StackMap stack:
iload 2 /* length */
aload 3 /* needle */
arraylength
isub
ifge 7
6: .line 261
iconst_m1
ireturn
7: .line 262
StackMap locals:
StackMap stack:
aload 3 /* needle */
arraylength
iconst_1
if_icmpne 11
8: .line 263
aload 0 /* haystack */
iload 1 /* fromIndex */
iload 1 /* fromIndex */
iload 2 /* length */
iadd
aload 3 /* needle */
iconst_0
caload
aload 4 /* mask */
ifnonnull 9
iconst_0
goto 10
StackMap locals: char[] int int char[] char[]
StackMap stack: char[] int int int
9: aload 4 /* mask */
iconst_0
caload
StackMap locals: char[] int int char[] char[]
StackMap stack: char[] int int int int
10: invokestatic com.oracle.truffle.api.ArrayUtils.runIndexOfWithOrMask:([CIICC)I
ireturn
11: .line 265
StackMap locals:
StackMap stack:
aload 4 /* mask */
ifnonnull 12
iconst_0
goto 13
StackMap locals:
StackMap stack:
12: aload 4 /* mask */
iconst_0
caload
StackMap locals:
StackMap stack: int
13: istore 5 /* mask0 */
start local 5 // char mask0
14: .line 266
aload 4 /* mask */
ifnonnull 15
iconst_0
goto 16
StackMap locals: int
StackMap stack:
15: aload 4 /* mask */
iconst_1
caload
StackMap locals:
StackMap stack: int
16: istore 6 /* mask1 */
start local 6 // char mask1
17: .line 267
iload 1 /* fromIndex */
iload 2 /* length */
iadd
aload 3 /* needle */
arraylength
iconst_2
isub
isub
istore 7 /* max */
start local 7 // int max
18: .line 268
iload 1 /* fromIndex */
istore 8 /* index */
start local 8 // int index
19: .line 269
goto 26
20: .line 270
StackMap locals: int int int
StackMap stack:
aload 0 /* haystack */
iload 8 /* index */
iload 7 /* max */
aload 3 /* needle */
iconst_0
caload
aload 3 /* needle */
iconst_1
caload
iload 5 /* mask0 */
iload 6 /* mask1 */
invokestatic com.oracle.truffle.api.ArrayUtils.runIndexOf2ConsecutiveWithOrMask:([CIICCCC)I
istore 8 /* index */
21: .line 271
iload 8 /* index */
ifge 23
22: .line 272
iconst_m1
ireturn
23: .line 274
StackMap locals:
StackMap stack:
aload 3 /* needle */
arraylength
iconst_2
if_icmpeq 24
aload 0 /* haystack */
iload 8 /* index */
aload 3 /* needle */
iconst_0
aload 3 /* needle */
arraylength
aload 4 /* mask */
invokestatic com.oracle.truffle.api.ArrayUtils.regionEqualsWithOrMask:([CI[CII[C)Z
ifeq 25
24: .line 275
StackMap locals:
StackMap stack:
iload 8 /* index */
ireturn
25: .line 277
StackMap locals:
StackMap stack:
iinc 8 /* index */ 1
26: .line 269
StackMap locals:
StackMap stack:
iload 8 /* index */
iload 7 /* max */
iconst_1
isub
if_icmplt 20
27: .line 279
iconst_m1
ireturn
end local 8 // int index
end local 7 // int max
end local 6 // char mask1
end local 5 // char mask0
end local 4 // char[] mask
end local 3 // char[] needle
end local 2 // int length
end local 1 // int fromIndex
end local 0 // char[] haystack
LocalVariableTable:
Start End Slot Name Signature
0 28 0 haystack [C
0 28 1 fromIndex I
0 28 2 length I
0 28 3 needle [C
0 28 4 mask [C
14 28 5 mask0 C
17 28 6 mask1 C
18 28 7 max I
19 28 8 index I
MethodParameters:
Name Flags
haystack
fromIndex
length
needle
mask
public static int indexOfWithOrMask(java.lang.String, int, int, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=9, args_size=5
start local 0 // java.lang.String haystack
start local 1 // int fromIndex
start local 2 // int length
start local 3 // java.lang.String needle
start local 4 // java.lang.String mask
0: .line 296
aload 0 /* haystack */
invokevirtual java.lang.String.length:()I
iload 1 /* fromIndex */
iload 2 /* length */
invokestatic com.oracle.truffle.api.ArrayUtils.checkArgsIndexOf:(III)V
1: .line 297
aload 4 /* mask */
ifnull 3
2: .line 298
aload 3 /* needle */
invokevirtual java.lang.String.length:()I
aload 4 /* mask */
invokevirtual java.lang.String.length:()I
invokestatic com.oracle.truffle.api.ArrayUtils.checkMaskLengthIndexOf:(II)V
3: .line 300
StackMap locals:
StackMap stack:
aload 3 /* needle */
invokevirtual java.lang.String.isEmpty:()Z
ifeq 5
4: .line 301
iload 1 /* fromIndex */
ireturn
5: .line 303
StackMap locals:
StackMap stack:
iload 2 /* length */
aload 3 /* needle */
invokevirtual java.lang.String.length:()I
isub
ifge 7
6: .line 304
iconst_m1
ireturn
7: .line 305
StackMap locals:
StackMap stack:
aload 3 /* needle */
invokevirtual java.lang.String.length:()I
iconst_1
if_icmpne 11
8: .line 306
aload 0 /* haystack */
iload 1 /* fromIndex */
iload 1 /* fromIndex */
iload 2 /* length */
iadd
aload 3 /* needle */
iconst_0
invokevirtual java.lang.String.charAt:(I)C
aload 4 /* mask */
ifnonnull 9
iconst_0
goto 10
StackMap locals: java.lang.String int int java.lang.String java.lang.String
StackMap stack: java.lang.String int int int
9: aload 4 /* mask */
iconst_0
invokevirtual java.lang.String.charAt:(I)C
StackMap locals: java.lang.String int int java.lang.String java.lang.String
StackMap stack: java.lang.String int int int int
10: invokestatic com.oracle.truffle.api.ArrayUtils.runIndexOfWithOrMask:(Ljava/lang/String;IICC)I
ireturn
11: .line 308
StackMap locals:
StackMap stack:
aload 4 /* mask */
ifnonnull 12
iconst_0
goto 13
StackMap locals:
StackMap stack:
12: aload 4 /* mask */
iconst_0
invokevirtual java.lang.String.charAt:(I)C
StackMap locals:
StackMap stack: int
13: istore 5 /* mask0 */
start local 5 // char mask0
14: .line 309
aload 4 /* mask */
ifnonnull 15
iconst_0
goto 16
StackMap locals: int
StackMap stack:
15: aload 4 /* mask */
iconst_1
invokevirtual java.lang.String.charAt:(I)C
StackMap locals:
StackMap stack: int
16: istore 6 /* mask1 */
start local 6 // char mask1
17: .line 310
iload 1 /* fromIndex */
iload 2 /* length */
iadd
aload 3 /* needle */
invokevirtual java.lang.String.length:()I
iconst_2
isub
isub
istore 7 /* max */
start local 7 // int max
18: .line 311
iload 1 /* fromIndex */
istore 8 /* index */
start local 8 // int index
19: .line 312
goto 26
20: .line 313
StackMap locals: int int int
StackMap stack:
aload 0 /* haystack */
iload 8 /* index */
iload 7 /* max */
aload 3 /* needle */
iconst_0
invokevirtual java.lang.String.charAt:(I)C
aload 3 /* needle */
iconst_1
invokevirtual java.lang.String.charAt:(I)C
iload 5 /* mask0 */
iload 6 /* mask1 */
invokestatic com.oracle.truffle.api.ArrayUtils.runIndexOf2ConsecutiveWithOrMask:(Ljava/lang/String;IICCCC)I
istore 8 /* index */
21: .line 314
iload 8 /* index */
ifge 23
22: .line 315
iconst_m1
ireturn
23: .line 317
StackMap locals:
StackMap stack:
aload 3 /* needle */
invokevirtual java.lang.String.length:()I
iconst_2
if_icmpeq 24
aload 0 /* haystack */
iload 8 /* index */
aload 3 /* needle */
iconst_0
aload 3 /* needle */
invokevirtual java.lang.String.length:()I
aload 4 /* mask */
invokestatic com.oracle.truffle.api.ArrayUtils.regionEqualsWithOrMask:(Ljava/lang/String;ILjava/lang/String;IILjava/lang/String;)Z
ifeq 25
24: .line 318
StackMap locals:
StackMap stack:
iload 8 /* index */
ireturn
25: .line 320
StackMap locals:
StackMap stack:
iinc 8 /* index */ 1
26: .line 312
StackMap locals:
StackMap stack:
iload 8 /* index */
iload 7 /* max */
iconst_1
isub
if_icmplt 20
27: .line 322
iconst_m1
ireturn
end local 8 // int index
end local 7 // int max
end local 6 // char mask1
end local 5 // char mask0
end local 4 // java.lang.String mask
end local 3 // java.lang.String needle
end local 2 // int length
end local 1 // int fromIndex
end local 0 // java.lang.String haystack
LocalVariableTable:
Start End Slot Name Signature
0 28 0 haystack Ljava/lang/String;
0 28 1 fromIndex I
0 28 2 length I
0 28 3 needle Ljava/lang/String;
0 28 4 mask Ljava/lang/String;
14 28 5 mask0 C
17 28 6 mask1 C
18 28 7 max I
19 28 8 index I
MethodParameters:
Name Flags
haystack
fromIndex
length
needle
mask
private static void checkArgsIndexOf(int, int, int);
descriptor: (III)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=3
start local 0 // int hayStackLength
start local 1 // int fromIndex
start local 2 // int length
0: .line 327
iload 1 /* fromIndex */
iflt 1
iload 2 /* length */
ifge 2
1: .line 328
StackMap locals:
StackMap stack:
ldc "fromIndex and length must be positive"
invokestatic com.oracle.truffle.api.ArrayUtils.illegalArgumentException:(Ljava/lang/String;)V
2: .line 330
StackMap locals:
StackMap stack:
iload 1 /* fromIndex */
iload 2 /* length */
iadd
iload 0 /* hayStackLength */
if_icmple 4
3: .line 331
ldc "length out of range"
invokestatic com.oracle.truffle.api.ArrayUtils.illegalArgumentException:(Ljava/lang/String;)V
4: .line 333
StackMap locals:
StackMap stack:
return
end local 2 // int length
end local 1 // int fromIndex
end local 0 // int hayStackLength
LocalVariableTable:
Start End Slot Name Signature
0 5 0 hayStackLength I
0 5 1 fromIndex I
0 5 2 length I
MethodParameters:
Name Flags
hayStackLength
fromIndex
length
private static void checkMaskLengthIndexOf(int, int);
descriptor: (II)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 // int needleLength
start local 1 // int maskLength
0: .line 336
iload 0 /* needleLength */
iload 1 /* maskLength */
if_icmpeq 2
1: .line 337
ldc "mask and needle length must be equal"
invokestatic com.oracle.truffle.api.ArrayUtils.illegalArgumentException:(Ljava/lang/String;)V
2: .line 339
StackMap locals:
StackMap stack:
return
end local 1 // int maskLength
end local 0 // int needleLength
LocalVariableTable:
Start End Slot Name Signature
0 3 0 needleLength I
0 3 1 maskLength I
MethodParameters:
Name Flags
needleLength
maskLength
private static boolean runRegionEquals(byte[], int, byte[], int, int);
descriptor: ([BI[BII)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=5
start local 0 // byte[] a1
start local 1 // int fromIndex1
start local 2 // byte[] a2
start local 3 // int fromIndex2
start local 4 // int length
0: .line 342
iconst_0
istore 5 /* i */
start local 5 // int i
1: goto 5
2: .line 343
StackMap locals: int
StackMap stack:
aload 0 /* a1 */
iload 1 /* fromIndex1 */
iload 5 /* i */
iadd
baload
aload 2 /* a2 */
iload 3 /* fromIndex2 */
iload 5 /* i */
iadd
baload
if_icmpeq 4
3: .line 344
iconst_0
ireturn
4: .line 342
StackMap locals:
StackMap stack:
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 5 /* i */
iload 4 /* length */
if_icmplt 2
end local 5 // int i
6: .line 347
iconst_1
ireturn
end local 4 // int length
end local 3 // int fromIndex2
end local 2 // byte[] a2
end local 1 // int fromIndex1
end local 0 // byte[] a1
LocalVariableTable:
Start End Slot Name Signature
0 7 0 a1 [B
0 7 1 fromIndex1 I
0 7 2 a2 [B
0 7 3 fromIndex2 I
0 7 4 length I
1 6 5 i I
MethodParameters:
Name Flags
a1
fromIndex1
a2
fromIndex2
length
private static boolean runRegionEquals(char[], int, char[], int, int);
descriptor: ([CI[CII)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=5
start local 0 // char[] a1
start local 1 // int fromIndex1
start local 2 // char[] a2
start local 3 // int fromIndex2
start local 4 // int length
0: .line 351
iconst_0
istore 5 /* i */
start local 5 // int i
1: goto 5
2: .line 352
StackMap locals: int
StackMap stack:
aload 0 /* a1 */
iload 1 /* fromIndex1 */
iload 5 /* i */
iadd
caload
aload 2 /* a2 */
iload 3 /* fromIndex2 */
iload 5 /* i */
iadd
caload
if_icmpeq 4
3: .line 353
iconst_0
ireturn
4: .line 351
StackMap locals:
StackMap stack:
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 5 /* i */
iload 4 /* length */
if_icmplt 2
end local 5 // int i
6: .line 356
iconst_1
ireturn
end local 4 // int length
end local 3 // int fromIndex2
end local 2 // char[] a2
end local 1 // int fromIndex1
end local 0 // char[] a1
LocalVariableTable:
Start End Slot Name Signature
0 7 0 a1 [C
0 7 1 fromIndex1 I
0 7 2 a2 [C
0 7 3 fromIndex2 I
0 7 4 length I
1 6 5 i I
MethodParameters:
Name Flags
a1
fromIndex1
a2
fromIndex2
length
private static boolean runRegionEquals(java.lang.String, int, java.lang.String, int, int);
descriptor: (Ljava/lang/String;ILjava/lang/String;II)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=5
start local 0 // java.lang.String a1
start local 1 // int fromIndex1
start local 2 // java.lang.String a2
start local 3 // int fromIndex2
start local 4 // int length
0: .line 360
iconst_0
istore 5 /* i */
start local 5 // int i
1: goto 5
2: .line 361
StackMap locals: int
StackMap stack:
aload 0 /* a1 */
iload 1 /* fromIndex1 */
iload 5 /* i */
iadd
invokevirtual java.lang.String.charAt:(I)C
aload 2 /* a2 */
iload 3 /* fromIndex2 */
iload 5 /* i */
iadd
invokevirtual java.lang.String.charAt:(I)C
if_icmpeq 4
3: .line 362
iconst_0
ireturn
4: .line 360
StackMap locals:
StackMap stack:
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 5 /* i */
iload 4 /* length */
if_icmplt 2
end local 5 // int i
6: .line 365
iconst_1
ireturn
end local 4 // int length
end local 3 // int fromIndex2
end local 2 // java.lang.String a2
end local 1 // int fromIndex1
end local 0 // java.lang.String a1
LocalVariableTable:
Start End Slot Name Signature
0 7 0 a1 Ljava/lang/String;
0 7 1 fromIndex1 I
0 7 2 a2 Ljava/lang/String;
0 7 3 fromIndex2 I
0 7 4 length I
1 6 5 i I
MethodParameters:
Name Flags
a1
fromIndex1
a2
fromIndex2
length
public static boolean regionEqualsWithOrMask(byte[], int, byte[], int, int, byte[]);
descriptor: ([BI[BII[B)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=6, args_size=6
start local 0 // byte[] a1
start local 1 // int fromIndex1
start local 2 // byte[] a2
start local 3 // int fromIndex2
start local 4 // int length
start local 5 // byte[] mask
0: .line 378
aload 0 /* a1 */
invokestatic com.oracle.truffle.api.ArrayUtils.requireNonNull:(Ljava/lang/Object;)V
1: .line 379
aload 2 /* a2 */
invokestatic com.oracle.truffle.api.ArrayUtils.requireNonNull:(Ljava/lang/Object;)V
2: .line 380
iload 1 /* fromIndex1 */
iload 3 /* fromIndex2 */
iload 4 /* length */
invokestatic com.oracle.truffle.api.ArrayUtils.checkArgsRegionEquals:(III)V
3: .line 381
aload 0 /* a1 */
arraylength
iload 1 /* fromIndex1 */
aload 2 /* a2 */
arraylength
iload 3 /* fromIndex2 */
iload 4 /* length */
invokestatic com.oracle.truffle.api.ArrayUtils.regionEqualsOutOfBounds:(IIIII)Z
ifeq 5
4: .line 382
iconst_0
ireturn
5: .line 384
StackMap locals:
StackMap stack:
aload 5 /* mask */
ifnonnull 7
6: .line 385
aload 0 /* a1 */
iload 1 /* fromIndex1 */
aload 2 /* a2 */
iload 3 /* fromIndex2 */
iload 4 /* length */
invokestatic com.oracle.truffle.api.ArrayUtils.runRegionEquals:([BI[BII)Z
ireturn
7: .line 387
StackMap locals:
StackMap stack:
iload 4 /* length */
aload 5 /* mask */
arraylength
invokestatic com.oracle.truffle.api.ArrayUtils.checkMaskLengthRegionEquals:(II)V
8: .line 388
aload 0 /* a1 */
iload 1 /* fromIndex1 */
aload 2 /* a2 */
iload 3 /* fromIndex2 */
aload 5 /* mask */
invokestatic com.oracle.truffle.api.ArrayUtils.runRegionEqualsWithOrMask:([BI[BI[B)Z
ireturn
end local 5 // byte[] mask
end local 4 // int length
end local 3 // int fromIndex2
end local 2 // byte[] a2
end local 1 // int fromIndex1
end local 0 // byte[] a1
LocalVariableTable:
Start End Slot Name Signature
0 9 0 a1 [B
0 9 1 fromIndex1 I
0 9 2 a2 [B
0 9 3 fromIndex2 I
0 9 4 length I
0 9 5 mask [B
MethodParameters:
Name Flags
a1
fromIndex1
a2
fromIndex2
length
mask
private static boolean runRegionEqualsWithOrMask(byte[], int, byte[], int, byte[]);
descriptor: ([BI[BI[B)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=5
start local 0 // byte[] a1
start local 1 // int fromIndex1
start local 2 // byte[] a2
start local 3 // int fromIndex2
start local 4 // byte[] mask
0: .line 392
iconst_0
istore 5 /* i */
start local 5 // int i
1: goto 5
2: .line 393
StackMap locals: int
StackMap stack:
aload 0 /* a1 */
iload 1 /* fromIndex1 */
iload 5 /* i */
iadd
baload
aload 4 /* mask */
iload 5 /* i */
baload
ior
aload 2 /* a2 */
iload 3 /* fromIndex2 */
iload 5 /* i */
iadd
baload
if_icmpeq 4
3: .line 394
iconst_0
ireturn
4: .line 392
StackMap locals:
StackMap stack:
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 5 /* i */
aload 4 /* mask */
arraylength
if_icmplt 2
end local 5 // int i
6: .line 397
iconst_1
ireturn
end local 4 // byte[] mask
end local 3 // int fromIndex2
end local 2 // byte[] a2
end local 1 // int fromIndex1
end local 0 // byte[] a1
LocalVariableTable:
Start End Slot Name Signature
0 7 0 a1 [B
0 7 1 fromIndex1 I
0 7 2 a2 [B
0 7 3 fromIndex2 I
0 7 4 mask [B
1 6 5 i I
MethodParameters:
Name Flags
a1
fromIndex1
a2
fromIndex2
mask
public static boolean regionEqualsWithOrMask(char[], int, char[], int, int, char[]);
descriptor: ([CI[CII[C)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=6, args_size=6
start local 0 // char[] a1
start local 1 // int fromIndex1
start local 2 // char[] a2
start local 3 // int fromIndex2
start local 4 // int length
start local 5 // char[] mask
0: .line 410
aload 0 /* a1 */
invokestatic com.oracle.truffle.api.ArrayUtils.requireNonNull:(Ljava/lang/Object;)V
1: .line 411
aload 2 /* a2 */
invokestatic com.oracle.truffle.api.ArrayUtils.requireNonNull:(Ljava/lang/Object;)V
2: .line 412
iload 1 /* fromIndex1 */
iload 3 /* fromIndex2 */
iload 4 /* length */
invokestatic com.oracle.truffle.api.ArrayUtils.checkArgsRegionEquals:(III)V
3: .line 413
aload 0 /* a1 */
arraylength
iload 1 /* fromIndex1 */
aload 2 /* a2 */
arraylength
iload 3 /* fromIndex2 */
iload 4 /* length */
invokestatic com.oracle.truffle.api.ArrayUtils.regionEqualsOutOfBounds:(IIIII)Z
ifeq 5
4: .line 414
iconst_0
ireturn
5: .line 416
StackMap locals:
StackMap stack:
aload 5 /* mask */
ifnonnull 7
6: .line 417
aload 0 /* a1 */
iload 1 /* fromIndex1 */
aload 2 /* a2 */
iload 3 /* fromIndex2 */
iload 4 /* length */
invokestatic com.oracle.truffle.api.ArrayUtils.runRegionEquals:([CI[CII)Z
ireturn
7: .line 419
StackMap locals:
StackMap stack:
iload 4 /* length */
aload 5 /* mask */
arraylength
invokestatic com.oracle.truffle.api.ArrayUtils.checkMaskLengthRegionEquals:(II)V
8: .line 420
aload 0 /* a1 */
iload 1 /* fromIndex1 */
aload 2 /* a2 */
iload 3 /* fromIndex2 */
aload 5 /* mask */
invokestatic com.oracle.truffle.api.ArrayUtils.runRegionEqualsWithOrMask:([CI[CI[C)Z
ireturn
end local 5 // char[] mask
end local 4 // int length
end local 3 // int fromIndex2
end local 2 // char[] a2
end local 1 // int fromIndex1
end local 0 // char[] a1
LocalVariableTable:
Start End Slot Name Signature
0 9 0 a1 [C
0 9 1 fromIndex1 I
0 9 2 a2 [C
0 9 3 fromIndex2 I
0 9 4 length I
0 9 5 mask [C
MethodParameters:
Name Flags
a1
fromIndex1
a2
fromIndex2
length
mask
private static boolean runRegionEqualsWithOrMask(char[], int, char[], int, char[]);
descriptor: ([CI[CI[C)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=5
start local 0 // char[] a1
start local 1 // int fromIndex1
start local 2 // char[] a2
start local 3 // int fromIndex2
start local 4 // char[] mask
0: .line 424
iconst_0
istore 5 /* i */
start local 5 // int i
1: goto 5
2: .line 425
StackMap locals: int
StackMap stack:
aload 0 /* a1 */
iload 1 /* fromIndex1 */
iload 5 /* i */
iadd
caload
aload 4 /* mask */
iload 5 /* i */
caload
ior
aload 2 /* a2 */
iload 3 /* fromIndex2 */
iload 5 /* i */
iadd
caload
if_icmpeq 4
3: .line 426
iconst_0
ireturn
4: .line 424
StackMap locals:
StackMap stack:
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 5 /* i */
aload 4 /* mask */
arraylength
if_icmplt 2
end local 5 // int i
6: .line 429
iconst_1
ireturn
end local 4 // char[] mask
end local 3 // int fromIndex2
end local 2 // char[] a2
end local 1 // int fromIndex1
end local 0 // char[] a1
LocalVariableTable:
Start End Slot Name Signature
0 7 0 a1 [C
0 7 1 fromIndex1 I
0 7 2 a2 [C
0 7 3 fromIndex2 I
0 7 4 mask [C
1 6 5 i I
MethodParameters:
Name Flags
a1
fromIndex1
a2
fromIndex2
mask
public static boolean regionEqualsWithOrMask(java.lang.String, int, java.lang.String, int, int, java.lang.String);
descriptor: (Ljava/lang/String;ILjava/lang/String;IILjava/lang/String;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=6, args_size=6
start local 0 // java.lang.String a1
start local 1 // int fromIndex1
start local 2 // java.lang.String a2
start local 3 // int fromIndex2
start local 4 // int length
start local 5 // java.lang.String mask
0: .line 443
aload 0 /* a1 */
invokestatic com.oracle.truffle.api.ArrayUtils.requireNonNull:(Ljava/lang/Object;)V
1: .line 444
aload 2 /* a2 */
invokestatic com.oracle.truffle.api.ArrayUtils.requireNonNull:(Ljava/lang/Object;)V
2: .line 445
iload 1 /* fromIndex1 */
iload 3 /* fromIndex2 */
iload 4 /* length */
invokestatic com.oracle.truffle.api.ArrayUtils.checkArgsRegionEquals:(III)V
3: .line 446
aload 0 /* a1 */
invokevirtual java.lang.String.length:()I
iload 1 /* fromIndex1 */
aload 2 /* a2 */
invokevirtual java.lang.String.length:()I
iload 3 /* fromIndex2 */
iload 4 /* length */
invokestatic com.oracle.truffle.api.ArrayUtils.regionEqualsOutOfBounds:(IIIII)Z
ifeq 5
4: .line 447
iconst_0
ireturn
5: .line 449
StackMap locals:
StackMap stack:
aload 5 /* mask */
ifnonnull 7
6: .line 450
aload 0 /* a1 */
iload 1 /* fromIndex1 */
aload 2 /* a2 */
iload 3 /* fromIndex2 */
iload 4 /* length */
invokestatic com.oracle.truffle.api.ArrayUtils.runRegionEquals:(Ljava/lang/String;ILjava/lang/String;II)Z
ireturn
7: .line 452
StackMap locals:
StackMap stack:
iload 4 /* length */
aload 5 /* mask */
invokevirtual java.lang.String.length:()I
invokestatic com.oracle.truffle.api.ArrayUtils.checkMaskLengthRegionEquals:(II)V
8: .line 453
aload 0 /* a1 */
iload 1 /* fromIndex1 */
aload 2 /* a2 */
iload 3 /* fromIndex2 */
aload 5 /* mask */
invokestatic com.oracle.truffle.api.ArrayUtils.runRegionEqualsWithOrMask:(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;)Z
ireturn
end local 5 // java.lang.String mask
end local 4 // int length
end local 3 // int fromIndex2
end local 2 // java.lang.String a2
end local 1 // int fromIndex1
end local 0 // java.lang.String a1
LocalVariableTable:
Start End Slot Name Signature
0 9 0 a1 Ljava/lang/String;
0 9 1 fromIndex1 I
0 9 2 a2 Ljava/lang/String;
0 9 3 fromIndex2 I
0 9 4 length I
0 9 5 mask Ljava/lang/String;
MethodParameters:
Name Flags
a1
fromIndex1
a2
fromIndex2
length
mask
private static boolean runRegionEqualsWithOrMask(java.lang.String, int, java.lang.String, int, java.lang.String);
descriptor: (Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=5
start local 0 // java.lang.String a1
start local 1 // int fromIndex1
start local 2 // java.lang.String a2
start local 3 // int fromIndex2
start local 4 // java.lang.String mask
0: .line 457
iconst_0
istore 5 /* i */
start local 5 // int i
1: goto 5
2: .line 458
StackMap locals: int
StackMap stack:
aload 0 /* a1 */
iload 1 /* fromIndex1 */
iload 5 /* i */
iadd
invokevirtual java.lang.String.charAt:(I)C
aload 4 /* mask */
iload 5 /* i */
invokevirtual java.lang.String.charAt:(I)C
ior
aload 2 /* a2 */
iload 3 /* fromIndex2 */
iload 5 /* i */
iadd
invokevirtual java.lang.String.charAt:(I)C
if_icmpeq 4
3: .line 459
iconst_0
ireturn
4: .line 457
StackMap locals:
StackMap stack:
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 5 /* i */
aload 4 /* mask */
invokevirtual java.lang.String.length:()I
if_icmplt 2
end local 5 // int i
6: .line 462
iconst_1
ireturn
end local 4 // java.lang.String mask
end local 3 // int fromIndex2
end local 2 // java.lang.String a2
end local 1 // int fromIndex1
end local 0 // java.lang.String a1
LocalVariableTable:
Start End Slot Name Signature
0 7 0 a1 Ljava/lang/String;
0 7 1 fromIndex1 I
0 7 2 a2 Ljava/lang/String;
0 7 3 fromIndex2 I
0 7 4 mask Ljava/lang/String;
1 6 5 i I
MethodParameters:
Name Flags
a1
fromIndex1
a2
fromIndex2
mask
private static void checkArgsRegionEquals(int, int, int);
descriptor: (III)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=3, args_size=3
start local 0 // int fromIndex1
start local 1 // int fromIndex2
start local 2 // int length
0: .line 466
iload 0 /* fromIndex1 */
iflt 1
iload 1 /* fromIndex2 */
iflt 1
iload 2 /* length */
ifge 2
1: .line 467
StackMap locals:
StackMap stack:
ldc "length, fromIndex1 and fromIndex2 must be positive"
invokestatic com.oracle.truffle.api.ArrayUtils.illegalArgumentException:(Ljava/lang/String;)V
2: .line 469
StackMap locals:
StackMap stack:
return
end local 2 // int length
end local 1 // int fromIndex2
end local 0 // int fromIndex1
LocalVariableTable:
Start End Slot Name Signature
0 3 0 fromIndex1 I
0 3 1 fromIndex2 I
0 3 2 length I
MethodParameters:
Name Flags
fromIndex1
fromIndex2
length
private static void checkMaskLengthRegionEquals(int, int);
descriptor: (II)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 // int length
start local 1 // int maskLength
0: .line 472
iload 0 /* length */
iload 1 /* maskLength */
if_icmple 2
1: .line 473
ldc "mask length must be greater or equal to length"
invokestatic com.oracle.truffle.api.ArrayUtils.illegalArgumentException:(Ljava/lang/String;)V
2: .line 475
StackMap locals:
StackMap stack:
return
end local 1 // int maskLength
end local 0 // int length
LocalVariableTable:
Start End Slot Name Signature
0 3 0 length I
0 3 1 maskLength I
MethodParameters:
Name Flags
length
maskLength
private static boolean regionEqualsOutOfBounds(int, int, int, int, int);
descriptor: (IIIII)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=5
start local 0 // int a1Length
start local 1 // int fromIndex1
start local 2 // int a2Length
start local 3 // int fromIndex2
start local 4 // int length
0: .line 478
iload 0 /* a1Length */
iload 1 /* fromIndex1 */
isub
iload 4 /* length */
if_icmplt 1
iload 2 /* a2Length */
iload 3 /* fromIndex2 */
isub
iload 4 /* length */
if_icmplt 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 4 // int length
end local 3 // int fromIndex2
end local 2 // int a2Length
end local 1 // int fromIndex1
end local 0 // int a1Length
LocalVariableTable:
Start End Slot Name Signature
0 2 0 a1Length I
0 2 1 fromIndex1 I
0 2 2 a2Length I
0 2 3 fromIndex2 I
0 2 4 length I
MethodParameters:
Name Flags
a1Length
fromIndex1
a2Length
fromIndex2
length
private static void requireNonNull(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 // java.lang.Object obj
0: .line 482
aload 0 /* obj */
ifnonnull 3
1: .line 483
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: .line 484
new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
3: .line 486
StackMap locals:
StackMap stack:
return
end local 0 // java.lang.Object obj
LocalVariableTable:
Start End Slot Name Signature
0 4 0 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
private static void illegalArgumentException(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 // java.lang.String msg
0: .line 489
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
1: .line 490
new java.lang.IllegalArgumentException
dup
aload 0 /* msg */
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 0 // java.lang.String msg
LocalVariableTable:
Start End Slot Name Signature
0 2 0 msg Ljava/lang/String;
MethodParameters:
Name Flags
msg
}
SourceFile: "ArrayUtils.java"