final class java.util.DualPivotQuicksort
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: java.util.DualPivotQuicksort
super_class: java.lang.Object
{
private static final int MAX_RUN_COUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 67
private static final int QUICKSORT_THRESHOLD;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 286
private static final int INSERTION_SORT_THRESHOLD;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 47
private static final int COUNTING_SORT_THRESHOLD_FOR_BYTE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 29
private static final int COUNTING_SORT_THRESHOLD_FOR_SHORT_OR_CHAR;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3200
private static final int NUM_SHORT_VALUES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65536
private static final int NUM_CHAR_VALUES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65536
private static final int NUM_BYTE_VALUES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 256
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 // java.util.DualPivotQuicksort this
0: .line 52
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // java.util.DualPivotQuicksort this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/DualPivotQuicksort;
static void sort(int[], int, int, int[], int, int);
descriptor: ([III[III)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=20, args_size=6
start local 0 // int[] a
start local 1 // int left
start local 2 // int right
start local 3 // int[] work
start local 4 // int workBase
start local 5 // int workLen
0: .line 105
iload 2 /* right */
iload 1 /* left */
isub
sipush 286
if_icmpge 3
1: .line 106
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([IIIZ)V
2: .line 107
return
3: .line 114
StackMap locals:
StackMap stack:
bipush 68
newarray 10
astore 6 /* run */
start local 6 // int[] run
4: .line 115
iconst_0
istore 7 /* count */
start local 7 // int count
5: aload 6 /* run */
iconst_0
iload 1 /* left */
iastore
6: .line 118
iload 1 /* left */
istore 8 /* k */
start local 8 // int k
7: goto 28
8: .line 121
StackMap locals: int[] int int
StackMap stack:
iinc 8 /* k */ 1
9: .line 120
StackMap locals:
StackMap stack:
iload 8 /* k */
iload 2 /* right */
if_icmpge 10
aload 0 /* a */
iload 8 /* k */
iaload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
iaload
if_icmpeq 8
10: .line 122
StackMap locals:
StackMap stack:
iload 8 /* k */
iload 2 /* right */
if_icmpne 11
goto 29
11: .line 123
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 8 /* k */
iaload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
iaload
if_icmpge 14
12: .line 124
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 22
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
iaload
aload 0 /* a */
iload 8 /* k */
iaload
if_icmple 12
13: .line 125
goto 22
StackMap locals:
StackMap stack:
14: aload 0 /* a */
iload 8 /* k */
iaload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
iaload
if_icmple 22
15: .line 126
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 16
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
iaload
aload 0 /* a */
iload 8 /* k */
iaload
if_icmpge 15
16: .line 128
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
istore 9 /* lo */
start local 9 // int lo
17: iload 8 /* k */
istore 10 /* hi */
start local 10 // int hi
18: goto 21
19: .line 129
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 9 /* lo */
iaload
istore 11 /* t */
start local 11 // int t
20: aload 0 /* a */
iload 9 /* lo */
aload 0 /* a */
iload 10 /* hi */
iaload
iastore
aload 0 /* a */
iload 10 /* hi */
iload 11 /* t */
iastore
end local 11 // int t
21: .line 128
StackMap locals:
StackMap stack:
iinc 9 /* lo */ 1
iload 9 /* lo */
iinc 10 /* hi */ -1
iload 10 /* hi */
if_icmplt 19
end local 10 // int hi
end local 9 // int lo
22: .line 135
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iload 1 /* left */
if_icmple 24
aload 0 /* a */
aload 6 /* run */
iload 7 /* count */
iaload
iaload
aload 0 /* a */
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
iaload
if_icmplt 24
23: .line 136
iinc 7 /* count */ -1
24: .line 143
StackMap locals:
StackMap stack:
iinc 7 /* count */ 1
iload 7 /* count */
bipush 67
if_icmpne 27
25: .line 144
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([IIIZ)V
26: .line 145
return
27: .line 118
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iload 8 /* k */
iastore
StackMap locals:
StackMap stack:
28: iload 8 /* k */
iload 2 /* right */
if_icmplt 9
end local 8 // int k
29: .line 153
StackMap locals:
StackMap stack:
iload 7 /* count */
ifne 31
30: .line 155
return
31: .line 156
StackMap locals:
StackMap stack:
iload 7 /* count */
iconst_1
if_icmpne 33
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
if_icmple 33
32: .line 160
return
33: .line 162
StackMap locals:
StackMap stack:
iinc 2 /* right */ 1
34: .line 163
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
if_icmpge 36
35: .line 168
aload 6 /* run */
iinc 7 /* count */ 1
iload 7 /* count */
iload 2 /* right */
iastore
36: .line 172
StackMap locals:
StackMap stack:
iconst_0
istore 8 /* odd */
start local 8 // byte odd
37: .line 173
iconst_1
istore 9 /* n */
start local 9 // int n
38: goto 40
StackMap locals: int int
StackMap stack:
39: iload 8 /* odd */
iconst_1
ixor
i2b
istore 8 /* odd */
StackMap locals:
StackMap stack:
40: iload 9 /* n */
iconst_1
ishl
dup
istore 9 /* n */
iload 7 /* count */
if_icmplt 39
end local 9 // int n
41: .line 178
iload 2 /* right */
iload 1 /* left */
isub
istore 12 /* blen */
start local 12 // int blen
42: .line 179
aload 3 /* work */
ifnull 43
iload 5 /* workLen */
iload 12 /* blen */
if_icmplt 43
iload 4 /* workBase */
iload 12 /* blen */
iadd
aload 3 /* work */
arraylength
if_icmple 45
43: .line 180
StackMap locals: int[] int int int[] int int int[] int int top top top int
StackMap stack:
iload 12 /* blen */
newarray 10
astore 3 /* work */
44: .line 181
iconst_0
istore 4 /* workBase */
45: .line 183
StackMap locals:
StackMap stack:
iload 8 /* odd */
ifne 52
46: .line 184
aload 0 /* a */
iload 1 /* left */
aload 3 /* work */
iload 4 /* workBase */
iload 12 /* blen */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
47: .line 185
aload 0 /* a */
astore 9 /* b */
start local 9 // int[] b
48: .line 186
iconst_0
istore 11 /* bo */
start local 11 // int bo
49: .line 187
aload 3 /* work */
astore 0 /* a */
50: .line 188
iload 4 /* workBase */
iload 1 /* left */
isub
istore 10 /* ao */
start local 10 // int ao
51: .line 189
goto 86
end local 11 // int bo
end local 10 // int ao
end local 9 // int[] b
52: .line 190
StackMap locals:
StackMap stack:
aload 3 /* work */
astore 9 /* b */
start local 9 // int[] b
53: .line 191
iconst_0
istore 10 /* ao */
start local 10 // int ao
54: .line 192
iload 4 /* workBase */
iload 1 /* left */
isub
istore 11 /* bo */
start local 11 // int bo
55: .line 196
goto 86
56: .line 197
StackMap locals: int[] int int int[] int int int[] int int int[] int int int
StackMap stack:
iconst_0
dup
istore 13 /* last */
start local 13 // int last
57: iconst_2
iadd
istore 14 /* k */
start local 14 // int k
58: goto 73
59: .line 198
StackMap locals: int int
StackMap stack:
aload 6 /* run */
iload 14 /* k */
iaload
istore 15 /* hi */
start local 15 // int hi
60: aload 6 /* run */
iload 14 /* k */
iconst_1
isub
iaload
istore 16 /* mi */
start local 16 // int mi
61: .line 199
aload 6 /* run */
iload 14 /* k */
iconst_2
isub
iaload
istore 17 /* i */
start local 17 // int i
62: iload 17 /* i */
istore 18 /* p */
start local 18 // int p
63: iload 16 /* mi */
istore 19 /* q */
start local 19 // int q
64: goto 70
65: .line 200
StackMap locals: int[] int int int[] int int int[] int int int[] int int int int int int int int int int
StackMap stack:
iload 19 /* q */
iload 15 /* hi */
if_icmpge 66
iload 18 /* p */
iload 16 /* mi */
if_icmpge 68
aload 0 /* a */
iload 18 /* p */
iload 10 /* ao */
iadd
iaload
aload 0 /* a */
iload 19 /* q */
iload 10 /* ao */
iadd
iaload
if_icmpgt 68
66: .line 201
StackMap locals:
StackMap stack:
aload 9 /* b */
iload 17 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 18 /* p */
iinc 18 /* p */ 1
iload 10 /* ao */
iadd
iaload
iastore
67: .line 202
goto 69
68: .line 203
StackMap locals:
StackMap stack:
aload 9 /* b */
iload 17 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 19 /* q */
iinc 19 /* q */ 1
iload 10 /* ao */
iadd
iaload
iastore
69: .line 199
StackMap locals:
StackMap stack:
iinc 17 /* i */ 1
StackMap locals:
StackMap stack:
70: iload 17 /* i */
iload 15 /* hi */
if_icmplt 65
end local 19 // int q
end local 18 // int p
end local 17 // int i
71: .line 206
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 15 /* hi */
iastore
end local 16 // int mi
end local 15 // int hi
72: .line 197
iinc 14 /* k */ 2
StackMap locals: int[] int int int[] int int int[] int int int[] int int int int int
StackMap stack:
73: iload 14 /* k */
iload 7 /* count */
if_icmple 59
end local 14 // int k
74: .line 208
iload 7 /* count */
iconst_1
iand
ifeq 81
75: .line 209
iload 2 /* right */
istore 14 /* i */
start local 14 // int i
76: aload 6 /* run */
iload 7 /* count */
iconst_1
isub
iaload
istore 15 /* lo */
start local 15 // int lo
77: goto 79
78: .line 210
StackMap locals: int
StackMap stack:
aload 9 /* b */
iload 14 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 14 /* i */
iload 10 /* ao */
iadd
iaload
iastore
79: .line 209
StackMap locals:
StackMap stack:
iinc 14 /* i */ -1
iload 14 /* i */
iload 15 /* lo */
if_icmpge 78
end local 15 // int lo
end local 14 // int i
80: .line 212
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 2 /* right */
iastore
81: .line 214
StackMap locals:
StackMap stack:
aload 0 /* a */
astore 14 /* t */
start local 14 // int[] t
82: aload 9 /* b */
astore 0 /* a */
aload 14 /* t */
astore 9 /* b */
83: .line 215
iload 10 /* ao */
istore 15 /* o */
start local 15 // int o
84: iload 11 /* bo */
istore 10 /* ao */
iload 15 /* o */
istore 11 /* bo */
end local 15 // int o
end local 14 // int[] t
85: .line 196
iload 13 /* last */
istore 7 /* count */
end local 13 // int last
StackMap locals:
StackMap stack:
86: iload 7 /* count */
iconst_1
if_icmpgt 56
87: .line 217
return
end local 12 // int blen
end local 11 // int bo
end local 10 // int ao
end local 9 // int[] b
end local 8 // byte odd
end local 7 // int count
end local 6 // int[] run
end local 5 // int workLen
end local 4 // int workBase
end local 3 // int[] work
end local 2 // int right
end local 1 // int left
end local 0 // int[] a
LocalVariableTable:
Start End Slot Name Signature
0 88 0 a [I
0 88 1 left I
0 88 2 right I
0 88 3 work [I
0 88 4 workBase I
0 88 5 workLen I
4 88 6 run [I
5 88 7 count I
7 29 8 k I
17 22 9 lo I
18 22 10 hi I
20 21 11 t I
37 88 8 odd B
38 41 9 n I
48 52 9 b [I
53 88 9 b [I
51 52 10 ao I
54 88 10 ao I
49 52 11 bo I
55 88 11 bo I
42 88 12 blen I
57 86 13 last I
58 74 14 k I
60 72 15 hi I
61 72 16 mi I
62 71 17 i I
63 71 18 p I
64 71 19 q I
76 80 14 i I
77 80 15 lo I
82 85 14 t [I
84 85 15 o I
MethodParameters:
Name Flags
a
left
right
work
workBase
workLen
private static void sort(int[], int, int, boolean);
descriptor: ([IIIZ)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=17, args_size=4
start local 0 // int[] a
start local 1 // int left
start local 2 // int right
start local 3 // boolean leftmost
0: .line 228
iload 2 /* right */
iload 1 /* left */
isub
iconst_1
iadd
istore 4 /* length */
start local 4 // int length
1: .line 231
iload 4 /* length */
bipush 47
if_icmpge 42
2: .line 232
iload 3 /* leftmost */
ifeq 16
3: .line 238
iload 1 /* left */
istore 5 /* i */
start local 5 // int i
4: iload 5 /* i */
istore 6 /* j */
start local 6 // int j
5: goto 14
6: .line 239
StackMap locals: int int int
StackMap stack:
aload 0 /* a */
iload 5 /* i */
iconst_1
iadd
iaload
istore 7 /* ai */
start local 7 // int ai
7: .line 240
goto 11
8: .line 241
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
aload 0 /* a */
iload 6 /* j */
iaload
iastore
9: .line 242
iload 6 /* j */
iinc 6 /* j */ -1
iload 1 /* left */
if_icmpne 11
10: .line 243
goto 12
11: .line 240
StackMap locals:
StackMap stack:
iload 7 /* ai */
aload 0 /* a */
iload 6 /* j */
iaload
if_icmplt 8
12: .line 246
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
iload 7 /* ai */
iastore
end local 7 // int ai
13: .line 238
iinc 5 /* i */ 1
iload 5 /* i */
istore 6 /* j */
StackMap locals:
StackMap stack:
14: iload 5 /* i */
iload 2 /* right */
if_icmplt 6
end local 6 // int j
end local 5 // int i
15: .line 248
goto 41
16: .line 253
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmplt 18
17: .line 254
return
18: .line 256
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 1 /* left */ 1
iload 1 /* left */
iaload
aload 0 /* a */
iload 1 /* left */
iconst_1
isub
iaload
19: .line 252
if_icmpge 16
20: .line 266
iload 1 /* left */
istore 5 /* k */
start local 5 // int k
21: goto 35
22: .line 267
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iaload
istore 6 /* a1 */
start local 6 // int a1
23: aload 0 /* a */
iload 1 /* left */
iaload
istore 7 /* a2 */
start local 7 // int a2
24: .line 269
iload 6 /* a1 */
iload 7 /* a2 */
if_icmpge 28
25: .line 270
iload 6 /* a1 */
istore 7 /* a2 */
aload 0 /* a */
iload 1 /* left */
iaload
istore 6 /* a1 */
26: .line 272
goto 28
27: .line 273
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_2
iadd
aload 0 /* a */
iload 5 /* k */
iaload
iastore
28: .line 272
StackMap locals:
StackMap stack:
iload 6 /* a1 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
iaload
if_icmplt 27
29: .line 275
aload 0 /* a */
iinc 5 /* k */ 1
iload 5 /* k */
iconst_1
iadd
iload 6 /* a1 */
iastore
30: .line 277
goto 32
31: .line 278
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
aload 0 /* a */
iload 5 /* k */
iaload
iastore
32: .line 277
StackMap locals:
StackMap stack:
iload 7 /* a2 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
iaload
if_icmplt 31
33: .line 280
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
iload 7 /* a2 */
iastore
end local 7 // int a2
end local 6 // int a1
34: .line 266
iinc 1 /* left */ 1
iload 1 /* left */
istore 5 /* k */
StackMap locals:
StackMap stack:
35: iinc 1 /* left */ 1
iload 1 /* left */
iload 2 /* right */
if_icmple 22
end local 5 // int k
36: .line 282
aload 0 /* a */
iload 2 /* right */
iaload
istore 5 /* last */
start local 5 // int last
37: .line 284
goto 39
38: .line 285
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
aload 0 /* a */
iload 2 /* right */
iaload
iastore
39: .line 284
StackMap locals:
StackMap stack:
iload 5 /* last */
aload 0 /* a */
iinc 2 /* right */ -1
iload 2 /* right */
iaload
if_icmplt 38
40: .line 287
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
iload 5 /* last */
iastore
end local 5 // int last
41: .line 289
StackMap locals:
StackMap stack:
return
42: .line 293
StackMap locals:
StackMap stack:
iload 4 /* length */
iconst_3
ishr
iload 4 /* length */
bipush 6
ishr
iadd
iconst_1
iadd
istore 5 /* seventh */
start local 5 // int seventh
43: .line 302
iload 1 /* left */
iload 2 /* right */
iadd
iconst_1
iushr
istore 6 /* e3 */
start local 6 // int e3
44: .line 303
iload 6 /* e3 */
iload 5 /* seventh */
isub
istore 7 /* e2 */
start local 7 // int e2
45: .line 304
iload 7 /* e2 */
iload 5 /* seventh */
isub
istore 8 /* e1 */
start local 8 // int e1
46: .line 305
iload 6 /* e3 */
iload 5 /* seventh */
iadd
istore 9 /* e4 */
start local 9 // int e4
47: .line 306
iload 9 /* e4 */
iload 5 /* seventh */
iadd
istore 10 /* e5 */
start local 10 // int e5
48: .line 309
aload 0 /* a */
iload 7 /* e2 */
iaload
aload 0 /* a */
iload 8 /* e1 */
iaload
if_icmpge 50
aload 0 /* a */
iload 7 /* e2 */
iaload
istore 11 /* t */
start local 11 // int t
49: aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
iaload
iastore
aload 0 /* a */
iload 8 /* e1 */
iload 11 /* t */
iastore
end local 11 // int t
50: .line 311
StackMap locals: int[] int int int int int int int int int int
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
iaload
aload 0 /* a */
iload 7 /* e2 */
iaload
if_icmpge 53
aload 0 /* a */
iload 6 /* e3 */
iaload
istore 11 /* t */
start local 11 // int t
51: aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
iaload
iastore
aload 0 /* a */
iload 7 /* e2 */
iload 11 /* t */
iastore
52: .line 312
iload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
iaload
if_icmpge 53
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
iaload
iastore
aload 0 /* a */
iload 8 /* e1 */
iload 11 /* t */
iastore
end local 11 // int t
53: .line 314
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 9 /* e4 */
iaload
aload 0 /* a */
iload 6 /* e3 */
iaload
if_icmpge 57
aload 0 /* a */
iload 9 /* e4 */
iaload
istore 11 /* t */
start local 11 // int t
54: aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 6 /* e3 */
iaload
iastore
aload 0 /* a */
iload 6 /* e3 */
iload 11 /* t */
iastore
55: .line 315
iload 11 /* t */
aload 0 /* a */
iload 7 /* e2 */
iaload
if_icmpge 57
aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
iaload
iastore
aload 0 /* a */
iload 7 /* e2 */
iload 11 /* t */
iastore
56: .line 316
iload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
iaload
if_icmpge 57
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
iaload
iastore
aload 0 /* a */
iload 8 /* e1 */
iload 11 /* t */
iastore
end local 11 // int t
57: .line 319
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 10 /* e5 */
iaload
aload 0 /* a */
iload 9 /* e4 */
iaload
if_icmpge 62
aload 0 /* a */
iload 10 /* e5 */
iaload
istore 11 /* t */
start local 11 // int t
58: aload 0 /* a */
iload 10 /* e5 */
aload 0 /* a */
iload 9 /* e4 */
iaload
iastore
aload 0 /* a */
iload 9 /* e4 */
iload 11 /* t */
iastore
59: .line 320
iload 11 /* t */
aload 0 /* a */
iload 6 /* e3 */
iaload
if_icmpge 62
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 6 /* e3 */
iaload
iastore
aload 0 /* a */
iload 6 /* e3 */
iload 11 /* t */
iastore
60: .line 321
iload 11 /* t */
aload 0 /* a */
iload 7 /* e2 */
iaload
if_icmpge 62
aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
iaload
iastore
aload 0 /* a */
iload 7 /* e2 */
iload 11 /* t */
iastore
61: .line 322
iload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
iaload
if_icmpge 62
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
iaload
iastore
aload 0 /* a */
iload 8 /* e1 */
iload 11 /* t */
iastore
end local 11 // int t
62: .line 328
StackMap locals:
StackMap stack:
iload 1 /* left */
istore 11 /* less */
start local 11 // int less
63: .line 329
iload 2 /* right */
istore 12 /* great */
start local 12 // int great
64: .line 331
aload 0 /* a */
iload 8 /* e1 */
iaload
aload 0 /* a */
iload 7 /* e2 */
iaload
if_icmpeq 128
aload 0 /* a */
iload 7 /* e2 */
iaload
aload 0 /* a */
iload 6 /* e3 */
iaload
if_icmpeq 128
aload 0 /* a */
iload 6 /* e3 */
iaload
aload 0 /* a */
iload 9 /* e4 */
iaload
if_icmpeq 128
aload 0 /* a */
iload 9 /* e4 */
iaload
aload 0 /* a */
iload 10 /* e5 */
iaload
if_icmpeq 128
65: .line 337
aload 0 /* a */
iload 7 /* e2 */
iaload
istore 13 /* pivot1 */
start local 13 // int pivot1
66: .line 338
aload 0 /* a */
iload 9 /* e4 */
iaload
istore 14 /* pivot2 */
start local 14 // int pivot2
67: .line 346
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 1 /* left */
iaload
iastore
68: .line 347
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 2 /* right */
iaload
iastore
69: .line 352
StackMap locals: int[] int int int int int int int int int int int int int int
StackMap stack:
aload 0 /* a */
iinc 11 /* less */ 1
iload 11 /* less */
iaload
iload 13 /* pivot1 */
if_icmplt 69
70: .line 353
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 12 /* great */ -1
iload 12 /* great */
iaload
iload 14 /* pivot2 */
if_icmpgt 70
71: .line 375
iload 11 /* less */
iconst_1
isub
istore 15 /* k */
start local 15 // int k
72: goto 92
73: .line 376
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
iaload
istore 16 /* ak */
start local 16 // int ak
74: .line 377
iload 16 /* ak */
iload 13 /* pivot1 */
if_icmpge 79
75: .line 378
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
iaload
iastore
76: .line 383
aload 0 /* a */
iload 11 /* less */
iload 16 /* ak */
iastore
77: .line 384
iinc 11 /* less */ 1
78: .line 385
goto 92
StackMap locals: int
StackMap stack:
79: iload 16 /* ak */
iload 14 /* pivot2 */
if_icmple 92
80: .line 386
goto 83
81: .line 387
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 15 /* k */
if_icmpne 83
82: .line 388
goto 93
83: .line 386
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iaload
iload 14 /* pivot2 */
if_icmpgt 81
84: .line 391
aload 0 /* a */
iload 12 /* great */
iaload
iload 13 /* pivot1 */
if_icmpge 89
85: .line 392
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
iaload
iastore
86: .line 393
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
iaload
iastore
87: .line 394
iinc 11 /* less */ 1
88: .line 395
goto 90
89: .line 396
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
iaload
iastore
90: .line 402
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 16 /* ak */
iastore
91: .line 403
iinc 12 /* great */ -1
end local 16 // int ak
92: .line 375
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
iload 15 /* k */
iload 12 /* great */
if_icmple 73
end local 15 // int k
93: .line 408
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 1 /* left */
aload 0 /* a */
iload 11 /* less */
iconst_1
isub
iaload
iastore
aload 0 /* a */
iload 11 /* less */
iconst_1
isub
iload 13 /* pivot1 */
iastore
94: .line 409
aload 0 /* a */
iload 2 /* right */
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
iaload
iastore
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
iload 14 /* pivot2 */
iastore
95: .line 412
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_2
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([IIIZ)V
96: .line 413
aload 0 /* a */
iload 12 /* great */
iconst_2
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([IIIZ)V
97: .line 419
iload 11 /* less */
iload 8 /* e1 */
if_icmpge 126
iload 10 /* e5 */
iload 12 /* great */
if_icmpge 126
98: .line 423
goto 100
99: .line 424
StackMap locals:
StackMap stack:
iinc 11 /* less */ 1
100: .line 423
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
iaload
iload 13 /* pivot1 */
if_icmpeq 99
101: .line 427
goto 103
102: .line 428
StackMap locals:
StackMap stack:
iinc 12 /* great */ -1
103: .line 427
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iaload
iload 14 /* pivot2 */
if_icmpeq 102
104: .line 451
iload 11 /* less */
iconst_1
isub
istore 15 /* k */
start local 15 // int k
105: goto 125
106: .line 452
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
iaload
istore 16 /* ak */
start local 16 // int ak
107: .line 453
iload 16 /* ak */
iload 13 /* pivot1 */
if_icmpne 112
108: .line 454
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
iaload
iastore
109: .line 455
aload 0 /* a */
iload 11 /* less */
iload 16 /* ak */
iastore
110: .line 456
iinc 11 /* less */ 1
111: .line 457
goto 125
StackMap locals: int
StackMap stack:
112: iload 16 /* ak */
iload 14 /* pivot2 */
if_icmpne 125
113: .line 458
goto 116
114: .line 459
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 15 /* k */
if_icmpne 116
115: .line 460
goto 126
116: .line 458
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iaload
iload 14 /* pivot2 */
if_icmpeq 114
117: .line 463
aload 0 /* a */
iload 12 /* great */
iaload
iload 13 /* pivot1 */
if_icmpne 122
118: .line 464
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
iaload
iastore
119: .line 473
aload 0 /* a */
iload 11 /* less */
iload 13 /* pivot1 */
iastore
120: .line 474
iinc 11 /* less */ 1
121: .line 475
goto 123
122: .line 476
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
iaload
iastore
123: .line 478
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 16 /* ak */
iastore
124: .line 479
iinc 12 /* great */ -1
end local 16 // int ak
125: .line 451
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
iload 15 /* k */
iload 12 /* great */
if_icmple 106
end local 15 // int k
126: .line 485
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
iload 12 /* great */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([IIIZ)V
end local 14 // int pivot2
end local 13 // int pivot1
127: .line 487
goto 153
128: .line 492
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
iaload
istore 13 /* pivot */
start local 13 // int pivot
129: .line 514
iload 11 /* less */
istore 14 /* k */
start local 14 // int k
130: goto 150
131: .line 515
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 14 /* k */
iaload
iload 13 /* pivot */
if_icmpne 133
132: .line 516
goto 149
133: .line 518
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 14 /* k */
iaload
istore 15 /* ak */
start local 15 // int ak
134: .line 519
iload 15 /* ak */
iload 13 /* pivot */
if_icmpge 140
135: .line 520
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 11 /* less */
iaload
iastore
136: .line 521
aload 0 /* a */
iload 11 /* less */
iload 15 /* ak */
iastore
137: .line 522
iinc 11 /* less */ 1
138: .line 523
goto 149
139: .line 525
StackMap locals: int
StackMap stack:
iinc 12 /* great */ -1
140: .line 524
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iaload
iload 13 /* pivot */
if_icmpgt 139
141: .line 527
aload 0 /* a */
iload 12 /* great */
iaload
iload 13 /* pivot */
if_icmpge 146
142: .line 528
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 11 /* less */
iaload
iastore
143: .line 529
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
iaload
iastore
144: .line 530
iinc 11 /* less */ 1
145: .line 531
goto 147
146: .line 540
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 14 /* k */
iload 13 /* pivot */
iastore
147: .line 542
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 15 /* ak */
iastore
148: .line 543
iinc 12 /* great */ -1
end local 15 // int ak
149: .line 514
StackMap locals:
StackMap stack:
iinc 14 /* k */ 1
StackMap locals:
StackMap stack:
150: iload 14 /* k */
iload 12 /* great */
if_icmple 131
end local 14 // int k
151: .line 552
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_1
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([IIIZ)V
152: .line 553
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([IIIZ)V
end local 13 // int pivot
153: .line 555
StackMap locals:
StackMap stack:
return
end local 12 // int great
end local 11 // int less
end local 10 // int e5
end local 9 // int e4
end local 8 // int e1
end local 7 // int e2
end local 6 // int e3
end local 5 // int seventh
end local 4 // int length
end local 3 // boolean leftmost
end local 2 // int right
end local 1 // int left
end local 0 // int[] a
LocalVariableTable:
Start End Slot Name Signature
0 154 0 a [I
0 154 1 left I
0 154 2 right I
0 154 3 leftmost Z
1 154 4 length I
4 15 5 i I
5 15 6 j I
7 13 7 ai I
21 36 5 k I
23 34 6 a1 I
24 34 7 a2 I
37 41 5 last I
43 154 5 seventh I
44 154 6 e3 I
45 154 7 e2 I
46 154 8 e1 I
47 154 9 e4 I
48 154 10 e5 I
49 50 11 t I
51 53 11 t I
54 57 11 t I
58 62 11 t I
63 154 11 less I
64 154 12 great I
66 127 13 pivot1 I
67 127 14 pivot2 I
72 93 15 k I
74 92 16 ak I
105 126 15 k I
107 125 16 ak I
129 153 13 pivot I
130 151 14 k I
134 149 15 ak I
MethodParameters:
Name Flags
a
left
right
leftmost
static void sort(long[], int, int, long[], int, int);
descriptor: ([JII[JII)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=20, args_size=6
start local 0 // long[] a
start local 1 // int left
start local 2 // int right
start local 3 // long[] work
start local 4 // int workBase
start local 5 // int workLen
0: .line 571
iload 2 /* right */
iload 1 /* left */
isub
sipush 286
if_icmpge 3
1: .line 572
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([JIIZ)V
2: .line 573
return
3: .line 580
StackMap locals:
StackMap stack:
bipush 68
newarray 10
astore 6 /* run */
start local 6 // int[] run
4: .line 581
iconst_0
istore 7 /* count */
start local 7 // int count
5: aload 6 /* run */
iconst_0
iload 1 /* left */
iastore
6: .line 584
iload 1 /* left */
istore 8 /* k */
start local 8 // int k
7: goto 28
8: .line 587
StackMap locals: int[] int int
StackMap stack:
iinc 8 /* k */ 1
9: .line 586
StackMap locals:
StackMap stack:
iload 8 /* k */
iload 2 /* right */
if_icmpge 10
aload 0 /* a */
iload 8 /* k */
laload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
laload
lcmp
ifeq 8
10: .line 588
StackMap locals:
StackMap stack:
iload 8 /* k */
iload 2 /* right */
if_icmpne 11
goto 29
11: .line 589
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 8 /* k */
laload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
laload
lcmp
ifge 14
12: .line 590
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 22
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
laload
aload 0 /* a */
iload 8 /* k */
laload
lcmp
ifle 12
13: .line 591
goto 22
StackMap locals:
StackMap stack:
14: aload 0 /* a */
iload 8 /* k */
laload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
laload
lcmp
ifle 22
15: .line 592
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 16
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
laload
aload 0 /* a */
iload 8 /* k */
laload
lcmp
ifge 15
16: .line 594
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
istore 9 /* lo */
start local 9 // int lo
17: iload 8 /* k */
istore 10 /* hi */
start local 10 // int hi
18: goto 21
19: .line 595
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 9 /* lo */
laload
lstore 11 /* t */
start local 11 // long t
20: aload 0 /* a */
iload 9 /* lo */
aload 0 /* a */
iload 10 /* hi */
laload
lastore
aload 0 /* a */
iload 10 /* hi */
lload 11 /* t */
lastore
end local 11 // long t
21: .line 594
StackMap locals:
StackMap stack:
iinc 9 /* lo */ 1
iload 9 /* lo */
iinc 10 /* hi */ -1
iload 10 /* hi */
if_icmplt 19
end local 10 // int hi
end local 9 // int lo
22: .line 601
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iload 1 /* left */
if_icmple 24
aload 0 /* a */
aload 6 /* run */
iload 7 /* count */
iaload
laload
aload 0 /* a */
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
laload
lcmp
iflt 24
23: .line 602
iinc 7 /* count */ -1
24: .line 609
StackMap locals:
StackMap stack:
iinc 7 /* count */ 1
iload 7 /* count */
bipush 67
if_icmpne 27
25: .line 610
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([JIIZ)V
26: .line 611
return
27: .line 584
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iload 8 /* k */
iastore
StackMap locals:
StackMap stack:
28: iload 8 /* k */
iload 2 /* right */
if_icmplt 9
end local 8 // int k
29: .line 619
StackMap locals:
StackMap stack:
iload 7 /* count */
ifne 31
30: .line 621
return
31: .line 622
StackMap locals:
StackMap stack:
iload 7 /* count */
iconst_1
if_icmpne 33
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
if_icmple 33
32: .line 626
return
33: .line 628
StackMap locals:
StackMap stack:
iinc 2 /* right */ 1
34: .line 629
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
if_icmpge 36
35: .line 634
aload 6 /* run */
iinc 7 /* count */ 1
iload 7 /* count */
iload 2 /* right */
iastore
36: .line 638
StackMap locals:
StackMap stack:
iconst_0
istore 8 /* odd */
start local 8 // byte odd
37: .line 639
iconst_1
istore 9 /* n */
start local 9 // int n
38: goto 40
StackMap locals: int int
StackMap stack:
39: iload 8 /* odd */
iconst_1
ixor
i2b
istore 8 /* odd */
StackMap locals:
StackMap stack:
40: iload 9 /* n */
iconst_1
ishl
dup
istore 9 /* n */
iload 7 /* count */
if_icmplt 39
end local 9 // int n
41: .line 644
iload 2 /* right */
iload 1 /* left */
isub
istore 12 /* blen */
start local 12 // int blen
42: .line 645
aload 3 /* work */
ifnull 43
iload 5 /* workLen */
iload 12 /* blen */
if_icmplt 43
iload 4 /* workBase */
iload 12 /* blen */
iadd
aload 3 /* work */
arraylength
if_icmple 45
43: .line 646
StackMap locals: long[] int int long[] int int int[] int int top top top int
StackMap stack:
iload 12 /* blen */
newarray 11
astore 3 /* work */
44: .line 647
iconst_0
istore 4 /* workBase */
45: .line 649
StackMap locals:
StackMap stack:
iload 8 /* odd */
ifne 52
46: .line 650
aload 0 /* a */
iload 1 /* left */
aload 3 /* work */
iload 4 /* workBase */
iload 12 /* blen */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
47: .line 651
aload 0 /* a */
astore 9 /* b */
start local 9 // long[] b
48: .line 652
iconst_0
istore 11 /* bo */
start local 11 // int bo
49: .line 653
aload 3 /* work */
astore 0 /* a */
50: .line 654
iload 4 /* workBase */
iload 1 /* left */
isub
istore 10 /* ao */
start local 10 // int ao
51: .line 655
goto 86
end local 11 // int bo
end local 10 // int ao
end local 9 // long[] b
52: .line 656
StackMap locals:
StackMap stack:
aload 3 /* work */
astore 9 /* b */
start local 9 // long[] b
53: .line 657
iconst_0
istore 10 /* ao */
start local 10 // int ao
54: .line 658
iload 4 /* workBase */
iload 1 /* left */
isub
istore 11 /* bo */
start local 11 // int bo
55: .line 662
goto 86
56: .line 663
StackMap locals: long[] int int long[] int int int[] int int long[] int int int
StackMap stack:
iconst_0
dup
istore 13 /* last */
start local 13 // int last
57: iconst_2
iadd
istore 14 /* k */
start local 14 // int k
58: goto 73
59: .line 664
StackMap locals: int int
StackMap stack:
aload 6 /* run */
iload 14 /* k */
iaload
istore 15 /* hi */
start local 15 // int hi
60: aload 6 /* run */
iload 14 /* k */
iconst_1
isub
iaload
istore 16 /* mi */
start local 16 // int mi
61: .line 665
aload 6 /* run */
iload 14 /* k */
iconst_2
isub
iaload
istore 17 /* i */
start local 17 // int i
62: iload 17 /* i */
istore 18 /* p */
start local 18 // int p
63: iload 16 /* mi */
istore 19 /* q */
start local 19 // int q
64: goto 70
65: .line 666
StackMap locals: long[] int int long[] int int int[] int int long[] int int int int int int int int int int
StackMap stack:
iload 19 /* q */
iload 15 /* hi */
if_icmpge 66
iload 18 /* p */
iload 16 /* mi */
if_icmpge 68
aload 0 /* a */
iload 18 /* p */
iload 10 /* ao */
iadd
laload
aload 0 /* a */
iload 19 /* q */
iload 10 /* ao */
iadd
laload
lcmp
ifgt 68
66: .line 667
StackMap locals:
StackMap stack:
aload 9 /* b */
iload 17 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 18 /* p */
iinc 18 /* p */ 1
iload 10 /* ao */
iadd
laload
lastore
67: .line 668
goto 69
68: .line 669
StackMap locals:
StackMap stack:
aload 9 /* b */
iload 17 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 19 /* q */
iinc 19 /* q */ 1
iload 10 /* ao */
iadd
laload
lastore
69: .line 665
StackMap locals:
StackMap stack:
iinc 17 /* i */ 1
StackMap locals:
StackMap stack:
70: iload 17 /* i */
iload 15 /* hi */
if_icmplt 65
end local 19 // int q
end local 18 // int p
end local 17 // int i
71: .line 672
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 15 /* hi */
iastore
end local 16 // int mi
end local 15 // int hi
72: .line 663
iinc 14 /* k */ 2
StackMap locals: long[] int int long[] int int int[] int int long[] int int int int int
StackMap stack:
73: iload 14 /* k */
iload 7 /* count */
if_icmple 59
end local 14 // int k
74: .line 674
iload 7 /* count */
iconst_1
iand
ifeq 81
75: .line 675
iload 2 /* right */
istore 14 /* i */
start local 14 // int i
76: aload 6 /* run */
iload 7 /* count */
iconst_1
isub
iaload
istore 15 /* lo */
start local 15 // int lo
77: goto 79
78: .line 676
StackMap locals: int
StackMap stack:
aload 9 /* b */
iload 14 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 14 /* i */
iload 10 /* ao */
iadd
laload
lastore
79: .line 675
StackMap locals:
StackMap stack:
iinc 14 /* i */ -1
iload 14 /* i */
iload 15 /* lo */
if_icmpge 78
end local 15 // int lo
end local 14 // int i
80: .line 678
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 2 /* right */
iastore
81: .line 680
StackMap locals:
StackMap stack:
aload 0 /* a */
astore 14 /* t */
start local 14 // long[] t
82: aload 9 /* b */
astore 0 /* a */
aload 14 /* t */
astore 9 /* b */
83: .line 681
iload 10 /* ao */
istore 15 /* o */
start local 15 // int o
84: iload 11 /* bo */
istore 10 /* ao */
iload 15 /* o */
istore 11 /* bo */
end local 15 // int o
end local 14 // long[] t
85: .line 662
iload 13 /* last */
istore 7 /* count */
end local 13 // int last
StackMap locals:
StackMap stack:
86: iload 7 /* count */
iconst_1
if_icmpgt 56
87: .line 683
return
end local 12 // int blen
end local 11 // int bo
end local 10 // int ao
end local 9 // long[] b
end local 8 // byte odd
end local 7 // int count
end local 6 // int[] run
end local 5 // int workLen
end local 4 // int workBase
end local 3 // long[] work
end local 2 // int right
end local 1 // int left
end local 0 // long[] a
LocalVariableTable:
Start End Slot Name Signature
0 88 0 a [J
0 88 1 left I
0 88 2 right I
0 88 3 work [J
0 88 4 workBase I
0 88 5 workLen I
4 88 6 run [I
5 88 7 count I
7 29 8 k I
17 22 9 lo I
18 22 10 hi I
20 21 11 t J
37 88 8 odd B
38 41 9 n I
48 52 9 b [J
53 88 9 b [J
51 52 10 ao I
54 88 10 ao I
49 52 11 bo I
55 88 11 bo I
42 88 12 blen I
57 86 13 last I
58 74 14 k I
60 72 15 hi I
61 72 16 mi I
62 71 17 i I
63 71 18 p I
64 71 19 q I
76 80 14 i I
77 80 15 lo I
82 85 14 t [J
84 85 15 o I
MethodParameters:
Name Flags
a
left
right
work
workBase
workLen
private static void sort(long[], int, int, boolean);
descriptor: ([JIIZ)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=20, args_size=4
start local 0 // long[] a
start local 1 // int left
start local 2 // int right
start local 3 // boolean leftmost
0: .line 694
iload 2 /* right */
iload 1 /* left */
isub
iconst_1
iadd
istore 4 /* length */
start local 4 // int length
1: .line 697
iload 4 /* length */
bipush 47
if_icmpge 42
2: .line 698
iload 3 /* leftmost */
ifeq 16
3: .line 704
iload 1 /* left */
istore 5 /* i */
start local 5 // int i
4: iload 5 /* i */
istore 6 /* j */
start local 6 // int j
5: goto 14
6: .line 705
StackMap locals: int int int
StackMap stack:
aload 0 /* a */
iload 5 /* i */
iconst_1
iadd
laload
lstore 7 /* ai */
start local 7 // long ai
7: .line 706
goto 11
8: .line 707
StackMap locals: long
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
aload 0 /* a */
iload 6 /* j */
laload
lastore
9: .line 708
iload 6 /* j */
iinc 6 /* j */ -1
iload 1 /* left */
if_icmpne 11
10: .line 709
goto 12
11: .line 706
StackMap locals:
StackMap stack:
lload 7 /* ai */
aload 0 /* a */
iload 6 /* j */
laload
lcmp
iflt 8
12: .line 712
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
lload 7 /* ai */
lastore
end local 7 // long ai
13: .line 704
iinc 5 /* i */ 1
iload 5 /* i */
istore 6 /* j */
StackMap locals:
StackMap stack:
14: iload 5 /* i */
iload 2 /* right */
if_icmplt 6
end local 6 // int j
end local 5 // int i
15: .line 714
goto 41
16: .line 719
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmplt 18
17: .line 720
return
18: .line 722
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 1 /* left */ 1
iload 1 /* left */
laload
aload 0 /* a */
iload 1 /* left */
iconst_1
isub
laload
19: .line 718
lcmp
ifge 16
20: .line 732
iload 1 /* left */
istore 5 /* k */
start local 5 // int k
21: goto 35
22: .line 733
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 5 /* k */
laload
lstore 6 /* a1 */
start local 6 // long a1
23: aload 0 /* a */
iload 1 /* left */
laload
lstore 8 /* a2 */
start local 8 // long a2
24: .line 735
lload 6 /* a1 */
lload 8 /* a2 */
lcmp
ifge 28
25: .line 736
lload 6 /* a1 */
lstore 8 /* a2 */
aload 0 /* a */
iload 1 /* left */
laload
lstore 6 /* a1 */
26: .line 738
goto 28
27: .line 739
StackMap locals: long long
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_2
iadd
aload 0 /* a */
iload 5 /* k */
laload
lastore
28: .line 738
StackMap locals:
StackMap stack:
lload 6 /* a1 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
laload
lcmp
iflt 27
29: .line 741
aload 0 /* a */
iinc 5 /* k */ 1
iload 5 /* k */
iconst_1
iadd
lload 6 /* a1 */
lastore
30: .line 743
goto 32
31: .line 744
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
aload 0 /* a */
iload 5 /* k */
laload
lastore
32: .line 743
StackMap locals:
StackMap stack:
lload 8 /* a2 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
laload
lcmp
iflt 31
33: .line 746
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
lload 8 /* a2 */
lastore
end local 8 // long a2
end local 6 // long a1
34: .line 732
iinc 1 /* left */ 1
iload 1 /* left */
istore 5 /* k */
StackMap locals:
StackMap stack:
35: iinc 1 /* left */ 1
iload 1 /* left */
iload 2 /* right */
if_icmple 22
end local 5 // int k
36: .line 748
aload 0 /* a */
iload 2 /* right */
laload
lstore 5 /* last */
start local 5 // long last
37: .line 750
goto 39
38: .line 751
StackMap locals: long[] int int int int long
StackMap stack:
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
aload 0 /* a */
iload 2 /* right */
laload
lastore
39: .line 750
StackMap locals:
StackMap stack:
lload 5 /* last */
aload 0 /* a */
iinc 2 /* right */ -1
iload 2 /* right */
laload
lcmp
iflt 38
40: .line 753
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
lload 5 /* last */
lastore
end local 5 // long last
41: .line 755
StackMap locals:
StackMap stack:
return
42: .line 759
StackMap locals:
StackMap stack:
iload 4 /* length */
iconst_3
ishr
iload 4 /* length */
bipush 6
ishr
iadd
iconst_1
iadd
istore 5 /* seventh */
start local 5 // int seventh
43: .line 768
iload 1 /* left */
iload 2 /* right */
iadd
iconst_1
iushr
istore 6 /* e3 */
start local 6 // int e3
44: .line 769
iload 6 /* e3 */
iload 5 /* seventh */
isub
istore 7 /* e2 */
start local 7 // int e2
45: .line 770
iload 7 /* e2 */
iload 5 /* seventh */
isub
istore 8 /* e1 */
start local 8 // int e1
46: .line 771
iload 6 /* e3 */
iload 5 /* seventh */
iadd
istore 9 /* e4 */
start local 9 // int e4
47: .line 772
iload 9 /* e4 */
iload 5 /* seventh */
iadd
istore 10 /* e5 */
start local 10 // int e5
48: .line 775
aload 0 /* a */
iload 7 /* e2 */
laload
aload 0 /* a */
iload 8 /* e1 */
laload
lcmp
ifge 50
aload 0 /* a */
iload 7 /* e2 */
laload
lstore 11 /* t */
start local 11 // long t
49: aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
laload
lastore
aload 0 /* a */
iload 8 /* e1 */
lload 11 /* t */
lastore
end local 11 // long t
50: .line 777
StackMap locals: long[] int int int int int int int int int int
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
laload
aload 0 /* a */
iload 7 /* e2 */
laload
lcmp
ifge 53
aload 0 /* a */
iload 6 /* e3 */
laload
lstore 11 /* t */
start local 11 // long t
51: aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
laload
lastore
aload 0 /* a */
iload 7 /* e2 */
lload 11 /* t */
lastore
52: .line 778
lload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
laload
lcmp
ifge 53
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
laload
lastore
aload 0 /* a */
iload 8 /* e1 */
lload 11 /* t */
lastore
end local 11 // long t
53: .line 780
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 9 /* e4 */
laload
aload 0 /* a */
iload 6 /* e3 */
laload
lcmp
ifge 57
aload 0 /* a */
iload 9 /* e4 */
laload
lstore 11 /* t */
start local 11 // long t
54: aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 6 /* e3 */
laload
lastore
aload 0 /* a */
iload 6 /* e3 */
lload 11 /* t */
lastore
55: .line 781
lload 11 /* t */
aload 0 /* a */
iload 7 /* e2 */
laload
lcmp
ifge 57
aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
laload
lastore
aload 0 /* a */
iload 7 /* e2 */
lload 11 /* t */
lastore
56: .line 782
lload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
laload
lcmp
ifge 57
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
laload
lastore
aload 0 /* a */
iload 8 /* e1 */
lload 11 /* t */
lastore
end local 11 // long t
57: .line 785
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 10 /* e5 */
laload
aload 0 /* a */
iload 9 /* e4 */
laload
lcmp
ifge 62
aload 0 /* a */
iload 10 /* e5 */
laload
lstore 11 /* t */
start local 11 // long t
58: aload 0 /* a */
iload 10 /* e5 */
aload 0 /* a */
iload 9 /* e4 */
laload
lastore
aload 0 /* a */
iload 9 /* e4 */
lload 11 /* t */
lastore
59: .line 786
lload 11 /* t */
aload 0 /* a */
iload 6 /* e3 */
laload
lcmp
ifge 62
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 6 /* e3 */
laload
lastore
aload 0 /* a */
iload 6 /* e3 */
lload 11 /* t */
lastore
60: .line 787
lload 11 /* t */
aload 0 /* a */
iload 7 /* e2 */
laload
lcmp
ifge 62
aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
laload
lastore
aload 0 /* a */
iload 7 /* e2 */
lload 11 /* t */
lastore
61: .line 788
lload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
laload
lcmp
ifge 62
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
laload
lastore
aload 0 /* a */
iload 8 /* e1 */
lload 11 /* t */
lastore
end local 11 // long t
62: .line 794
StackMap locals:
StackMap stack:
iload 1 /* left */
istore 11 /* less */
start local 11 // int less
63: .line 795
iload 2 /* right */
istore 12 /* great */
start local 12 // int great
64: .line 797
aload 0 /* a */
iload 8 /* e1 */
laload
aload 0 /* a */
iload 7 /* e2 */
laload
lcmp
ifeq 128
aload 0 /* a */
iload 7 /* e2 */
laload
aload 0 /* a */
iload 6 /* e3 */
laload
lcmp
ifeq 128
aload 0 /* a */
iload 6 /* e3 */
laload
aload 0 /* a */
iload 9 /* e4 */
laload
lcmp
ifeq 128
aload 0 /* a */
iload 9 /* e4 */
laload
aload 0 /* a */
iload 10 /* e5 */
laload
lcmp
ifeq 128
65: .line 803
aload 0 /* a */
iload 7 /* e2 */
laload
lstore 13 /* pivot1 */
start local 13 // long pivot1
66: .line 804
aload 0 /* a */
iload 9 /* e4 */
laload
lstore 15 /* pivot2 */
start local 15 // long pivot2
67: .line 812
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 1 /* left */
laload
lastore
68: .line 813
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 2 /* right */
laload
lastore
69: .line 818
StackMap locals: long[] int int int int int int int int int int int int long long
StackMap stack:
aload 0 /* a */
iinc 11 /* less */ 1
iload 11 /* less */
laload
lload 13 /* pivot1 */
lcmp
iflt 69
70: .line 819
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 12 /* great */ -1
iload 12 /* great */
laload
lload 15 /* pivot2 */
lcmp
ifgt 70
71: .line 841
iload 11 /* less */
iconst_1
isub
istore 17 /* k */
start local 17 // int k
72: goto 92
73: .line 842
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 17 /* k */
laload
lstore 18 /* ak */
start local 18 // long ak
74: .line 843
lload 18 /* ak */
lload 13 /* pivot1 */
lcmp
ifge 79
75: .line 844
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 11 /* less */
laload
lastore
76: .line 849
aload 0 /* a */
iload 11 /* less */
lload 18 /* ak */
lastore
77: .line 850
iinc 11 /* less */ 1
78: .line 851
goto 92
StackMap locals: long
StackMap stack:
79: lload 18 /* ak */
lload 15 /* pivot2 */
lcmp
ifle 92
80: .line 852
goto 83
81: .line 853
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 17 /* k */
if_icmpne 83
82: .line 854
goto 93
83: .line 852
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
laload
lload 15 /* pivot2 */
lcmp
ifgt 81
84: .line 857
aload 0 /* a */
iload 12 /* great */
laload
lload 13 /* pivot1 */
lcmp
ifge 89
85: .line 858
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 11 /* less */
laload
lastore
86: .line 859
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
laload
lastore
87: .line 860
iinc 11 /* less */ 1
88: .line 861
goto 90
89: .line 862
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 12 /* great */
laload
lastore
90: .line 868
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
lload 18 /* ak */
lastore
91: .line 869
iinc 12 /* great */ -1
end local 18 // long ak
92: .line 841
StackMap locals:
StackMap stack:
iinc 17 /* k */ 1
iload 17 /* k */
iload 12 /* great */
if_icmple 73
end local 17 // int k
93: .line 874
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 1 /* left */
aload 0 /* a */
iload 11 /* less */
iconst_1
isub
laload
lastore
aload 0 /* a */
iload 11 /* less */
iconst_1
isub
lload 13 /* pivot1 */
lastore
94: .line 875
aload 0 /* a */
iload 2 /* right */
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
laload
lastore
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
lload 15 /* pivot2 */
lastore
95: .line 878
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_2
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([JIIZ)V
96: .line 879
aload 0 /* a */
iload 12 /* great */
iconst_2
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([JIIZ)V
97: .line 885
iload 11 /* less */
iload 8 /* e1 */
if_icmpge 126
iload 10 /* e5 */
iload 12 /* great */
if_icmpge 126
98: .line 889
goto 100
99: .line 890
StackMap locals:
StackMap stack:
iinc 11 /* less */ 1
100: .line 889
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
laload
lload 13 /* pivot1 */
lcmp
ifeq 99
101: .line 893
goto 103
102: .line 894
StackMap locals:
StackMap stack:
iinc 12 /* great */ -1
103: .line 893
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
laload
lload 15 /* pivot2 */
lcmp
ifeq 102
104: .line 917
iload 11 /* less */
iconst_1
isub
istore 17 /* k */
start local 17 // int k
105: goto 125
106: .line 918
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 17 /* k */
laload
lstore 18 /* ak */
start local 18 // long ak
107: .line 919
lload 18 /* ak */
lload 13 /* pivot1 */
lcmp
ifne 112
108: .line 920
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 11 /* less */
laload
lastore
109: .line 921
aload 0 /* a */
iload 11 /* less */
lload 18 /* ak */
lastore
110: .line 922
iinc 11 /* less */ 1
111: .line 923
goto 125
StackMap locals: long
StackMap stack:
112: lload 18 /* ak */
lload 15 /* pivot2 */
lcmp
ifne 125
113: .line 924
goto 116
114: .line 925
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 17 /* k */
if_icmpne 116
115: .line 926
goto 126
116: .line 924
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
laload
lload 15 /* pivot2 */
lcmp
ifeq 114
117: .line 929
aload 0 /* a */
iload 12 /* great */
laload
lload 13 /* pivot1 */
lcmp
ifne 122
118: .line 930
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 11 /* less */
laload
lastore
119: .line 939
aload 0 /* a */
iload 11 /* less */
lload 13 /* pivot1 */
lastore
120: .line 940
iinc 11 /* less */ 1
121: .line 941
goto 123
122: .line 942
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 12 /* great */
laload
lastore
123: .line 944
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
lload 18 /* ak */
lastore
124: .line 945
iinc 12 /* great */ -1
end local 18 // long ak
125: .line 917
StackMap locals:
StackMap stack:
iinc 17 /* k */ 1
iload 17 /* k */
iload 12 /* great */
if_icmple 106
end local 17 // int k
126: .line 951
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
iload 12 /* great */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([JIIZ)V
end local 15 // long pivot2
end local 13 // long pivot1
127: .line 953
goto 153
128: .line 958
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
laload
lstore 13 /* pivot */
start local 13 // long pivot
129: .line 980
iload 11 /* less */
istore 15 /* k */
start local 15 // int k
130: goto 150
131: .line 981
StackMap locals: long int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
laload
lload 13 /* pivot */
lcmp
ifne 133
132: .line 982
goto 149
133: .line 984
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
laload
lstore 16 /* ak */
start local 16 // long ak
134: .line 985
lload 16 /* ak */
lload 13 /* pivot */
lcmp
ifge 140
135: .line 986
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
laload
lastore
136: .line 987
aload 0 /* a */
iload 11 /* less */
lload 16 /* ak */
lastore
137: .line 988
iinc 11 /* less */ 1
138: .line 989
goto 149
139: .line 991
StackMap locals: long
StackMap stack:
iinc 12 /* great */ -1
140: .line 990
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
laload
lload 13 /* pivot */
lcmp
ifgt 139
141: .line 993
aload 0 /* a */
iload 12 /* great */
laload
lload 13 /* pivot */
lcmp
ifge 146
142: .line 994
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
laload
lastore
143: .line 995
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
laload
lastore
144: .line 996
iinc 11 /* less */ 1
145: .line 997
goto 147
146: .line 1006
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
lload 13 /* pivot */
lastore
147: .line 1008
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
lload 16 /* ak */
lastore
148: .line 1009
iinc 12 /* great */ -1
end local 16 // long ak
149: .line 980
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
StackMap locals:
StackMap stack:
150: iload 15 /* k */
iload 12 /* great */
if_icmple 131
end local 15 // int k
151: .line 1018
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_1
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([JIIZ)V
152: .line 1019
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([JIIZ)V
end local 13 // long pivot
153: .line 1021
StackMap locals:
StackMap stack:
return
end local 12 // int great
end local 11 // int less
end local 10 // int e5
end local 9 // int e4
end local 8 // int e1
end local 7 // int e2
end local 6 // int e3
end local 5 // int seventh
end local 4 // int length
end local 3 // boolean leftmost
end local 2 // int right
end local 1 // int left
end local 0 // long[] a
LocalVariableTable:
Start End Slot Name Signature
0 154 0 a [J
0 154 1 left I
0 154 2 right I
0 154 3 leftmost Z
1 154 4 length I
4 15 5 i I
5 15 6 j I
7 13 7 ai J
21 36 5 k I
23 34 6 a1 J
24 34 8 a2 J
37 41 5 last J
43 154 5 seventh I
44 154 6 e3 I
45 154 7 e2 I
46 154 8 e1 I
47 154 9 e4 I
48 154 10 e5 I
49 50 11 t J
51 53 11 t J
54 57 11 t J
58 62 11 t J
63 154 11 less I
64 154 12 great I
66 127 13 pivot1 J
67 127 15 pivot2 J
72 93 17 k I
74 92 18 ak J
105 126 17 k I
107 125 18 ak J
129 153 13 pivot J
130 151 15 k I
134 149 16 ak J
MethodParameters:
Name Flags
a
left
right
leftmost
static void sort(short[], int, int, short[], int, int);
descriptor: ([SII[SII)V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=11, args_size=6
start local 0 // short[] a
start local 1 // int left
start local 2 // int right
start local 3 // short[] work
start local 4 // int workBase
start local 5 // int workLen
0: .line 1037
iload 2 /* right */
iload 1 /* left */
isub
sipush 3200
if_icmple 17
1: .line 1038
ldc 65536
newarray 10
astore 6 /* count */
start local 6 // int[] count
2: .line 1040
iload 1 /* left */
iconst_1
isub
istore 7 /* i */
start local 7 // int i
3: goto 5
4: .line 1041
StackMap locals: int[] int
StackMap stack:
aload 6 /* count */
aload 0 /* a */
iload 7 /* i */
saload
sipush -32768
isub
dup2
iaload
iconst_1
iadd
iastore
5: .line 1040
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
iload 7 /* i */
iload 2 /* right */
if_icmple 4
end local 7 // int i
6: .line 1043
ldc 65536
istore 7 /* i */
start local 7 // int i
7: iload 2 /* right */
iconst_1
iadd
istore 8 /* k */
start local 8 // int k
8: goto 15
9: .line 1044
StackMap locals: int
StackMap stack:
aload 6 /* count */
iinc 7 /* i */ -1
iload 7 /* i */
iaload
ifeq 9
10: .line 1045
iload 7 /* i */
sipush -32768
iadd
i2s
istore 9 /* value */
start local 9 // short value
11: .line 1046
aload 6 /* count */
iload 7 /* i */
iaload
istore 10 /* s */
start local 10 // int s
12: .line 1049
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iinc 8 /* k */ -1
iload 8 /* k */
iload 9 /* value */
sastore
13: .line 1050
iinc 10 /* s */ -1
iload 10 /* s */
14: .line 1048
ifgt 12
end local 10 // int s
end local 9 // short value
15: .line 1043
StackMap locals:
StackMap stack:
iload 8 /* k */
iload 1 /* left */
if_icmpgt 9
end local 8 // int k
end local 7 // int i
end local 6 // int[] count
16: .line 1052
goto 18
17: .line 1053
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
aload 3 /* work */
iload 4 /* workBase */
iload 5 /* workLen */
invokestatic java.util.DualPivotQuicksort.doSort:([SII[SII)V
18: .line 1055
StackMap locals:
StackMap stack:
return
end local 5 // int workLen
end local 4 // int workBase
end local 3 // short[] work
end local 2 // int right
end local 1 // int left
end local 0 // short[] a
LocalVariableTable:
Start End Slot Name Signature
0 19 0 a [S
0 19 1 left I
0 19 2 right I
0 19 3 work [S
0 19 4 workBase I
0 19 5 workLen I
2 16 6 count [I
3 6 7 i I
7 16 7 i I
8 16 8 k I
11 15 9 value S
12 15 10 s I
MethodParameters:
Name Flags
a
left
right
work
workBase
workLen
private static void doSort(short[], int, int, short[], int, int);
descriptor: ([SII[SII)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=20, args_size=6
start local 0 // short[] a
start local 1 // int left
start local 2 // int right
start local 3 // short[] work
start local 4 // int workBase
start local 5 // int workLen
0: .line 1073
iload 2 /* right */
iload 1 /* left */
isub
sipush 286
if_icmpge 3
1: .line 1074
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([SIIZ)V
2: .line 1075
return
3: .line 1082
StackMap locals:
StackMap stack:
bipush 68
newarray 10
astore 6 /* run */
start local 6 // int[] run
4: .line 1083
iconst_0
istore 7 /* count */
start local 7 // int count
5: aload 6 /* run */
iconst_0
iload 1 /* left */
iastore
6: .line 1086
iload 1 /* left */
istore 8 /* k */
start local 8 // int k
7: goto 28
8: .line 1089
StackMap locals: int[] int int
StackMap stack:
iinc 8 /* k */ 1
9: .line 1088
StackMap locals:
StackMap stack:
iload 8 /* k */
iload 2 /* right */
if_icmpge 10
aload 0 /* a */
iload 8 /* k */
saload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
saload
if_icmpeq 8
10: .line 1090
StackMap locals:
StackMap stack:
iload 8 /* k */
iload 2 /* right */
if_icmpne 11
goto 29
11: .line 1091
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 8 /* k */
saload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
saload
if_icmpge 14
12: .line 1092
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 22
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
saload
aload 0 /* a */
iload 8 /* k */
saload
if_icmple 12
13: .line 1093
goto 22
StackMap locals:
StackMap stack:
14: aload 0 /* a */
iload 8 /* k */
saload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
saload
if_icmple 22
15: .line 1094
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 16
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
saload
aload 0 /* a */
iload 8 /* k */
saload
if_icmpge 15
16: .line 1096
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
istore 9 /* lo */
start local 9 // int lo
17: iload 8 /* k */
istore 10 /* hi */
start local 10 // int hi
18: goto 21
19: .line 1097
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 9 /* lo */
saload
istore 11 /* t */
start local 11 // short t
20: aload 0 /* a */
iload 9 /* lo */
aload 0 /* a */
iload 10 /* hi */
saload
sastore
aload 0 /* a */
iload 10 /* hi */
iload 11 /* t */
sastore
end local 11 // short t
21: .line 1096
StackMap locals:
StackMap stack:
iinc 9 /* lo */ 1
iload 9 /* lo */
iinc 10 /* hi */ -1
iload 10 /* hi */
if_icmplt 19
end local 10 // int hi
end local 9 // int lo
22: .line 1103
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iload 1 /* left */
if_icmple 24
aload 0 /* a */
aload 6 /* run */
iload 7 /* count */
iaload
saload
aload 0 /* a */
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
saload
if_icmplt 24
23: .line 1104
iinc 7 /* count */ -1
24: .line 1111
StackMap locals:
StackMap stack:
iinc 7 /* count */ 1
iload 7 /* count */
bipush 67
if_icmpne 27
25: .line 1112
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([SIIZ)V
26: .line 1113
return
27: .line 1086
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iload 8 /* k */
iastore
StackMap locals:
StackMap stack:
28: iload 8 /* k */
iload 2 /* right */
if_icmplt 9
end local 8 // int k
29: .line 1121
StackMap locals:
StackMap stack:
iload 7 /* count */
ifne 31
30: .line 1123
return
31: .line 1124
StackMap locals:
StackMap stack:
iload 7 /* count */
iconst_1
if_icmpne 33
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
if_icmple 33
32: .line 1128
return
33: .line 1130
StackMap locals:
StackMap stack:
iinc 2 /* right */ 1
34: .line 1131
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
if_icmpge 36
35: .line 1136
aload 6 /* run */
iinc 7 /* count */ 1
iload 7 /* count */
iload 2 /* right */
iastore
36: .line 1140
StackMap locals:
StackMap stack:
iconst_0
istore 8 /* odd */
start local 8 // byte odd
37: .line 1141
iconst_1
istore 9 /* n */
start local 9 // int n
38: goto 40
StackMap locals: int int
StackMap stack:
39: iload 8 /* odd */
iconst_1
ixor
i2b
istore 8 /* odd */
StackMap locals:
StackMap stack:
40: iload 9 /* n */
iconst_1
ishl
dup
istore 9 /* n */
iload 7 /* count */
if_icmplt 39
end local 9 // int n
41: .line 1146
iload 2 /* right */
iload 1 /* left */
isub
istore 12 /* blen */
start local 12 // int blen
42: .line 1147
aload 3 /* work */
ifnull 43
iload 5 /* workLen */
iload 12 /* blen */
if_icmplt 43
iload 4 /* workBase */
iload 12 /* blen */
iadd
aload 3 /* work */
arraylength
if_icmple 45
43: .line 1148
StackMap locals: short[] int int short[] int int int[] int int top top top int
StackMap stack:
iload 12 /* blen */
newarray 9
astore 3 /* work */
44: .line 1149
iconst_0
istore 4 /* workBase */
45: .line 1151
StackMap locals:
StackMap stack:
iload 8 /* odd */
ifne 52
46: .line 1152
aload 0 /* a */
iload 1 /* left */
aload 3 /* work */
iload 4 /* workBase */
iload 12 /* blen */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
47: .line 1153
aload 0 /* a */
astore 9 /* b */
start local 9 // short[] b
48: .line 1154
iconst_0
istore 11 /* bo */
start local 11 // int bo
49: .line 1155
aload 3 /* work */
astore 0 /* a */
50: .line 1156
iload 4 /* workBase */
iload 1 /* left */
isub
istore 10 /* ao */
start local 10 // int ao
51: .line 1157
goto 86
end local 11 // int bo
end local 10 // int ao
end local 9 // short[] b
52: .line 1158
StackMap locals:
StackMap stack:
aload 3 /* work */
astore 9 /* b */
start local 9 // short[] b
53: .line 1159
iconst_0
istore 10 /* ao */
start local 10 // int ao
54: .line 1160
iload 4 /* workBase */
iload 1 /* left */
isub
istore 11 /* bo */
start local 11 // int bo
55: .line 1164
goto 86
56: .line 1165
StackMap locals: short[] int int short[] int int int[] int int short[] int int int
StackMap stack:
iconst_0
dup
istore 13 /* last */
start local 13 // int last
57: iconst_2
iadd
istore 14 /* k */
start local 14 // int k
58: goto 73
59: .line 1166
StackMap locals: int int
StackMap stack:
aload 6 /* run */
iload 14 /* k */
iaload
istore 15 /* hi */
start local 15 // int hi
60: aload 6 /* run */
iload 14 /* k */
iconst_1
isub
iaload
istore 16 /* mi */
start local 16 // int mi
61: .line 1167
aload 6 /* run */
iload 14 /* k */
iconst_2
isub
iaload
istore 17 /* i */
start local 17 // int i
62: iload 17 /* i */
istore 18 /* p */
start local 18 // int p
63: iload 16 /* mi */
istore 19 /* q */
start local 19 // int q
64: goto 70
65: .line 1168
StackMap locals: short[] int int short[] int int int[] int int short[] int int int int int int int int int int
StackMap stack:
iload 19 /* q */
iload 15 /* hi */
if_icmpge 66
iload 18 /* p */
iload 16 /* mi */
if_icmpge 68
aload 0 /* a */
iload 18 /* p */
iload 10 /* ao */
iadd
saload
aload 0 /* a */
iload 19 /* q */
iload 10 /* ao */
iadd
saload
if_icmpgt 68
66: .line 1169
StackMap locals:
StackMap stack:
aload 9 /* b */
iload 17 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 18 /* p */
iinc 18 /* p */ 1
iload 10 /* ao */
iadd
saload
sastore
67: .line 1170
goto 69
68: .line 1171
StackMap locals:
StackMap stack:
aload 9 /* b */
iload 17 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 19 /* q */
iinc 19 /* q */ 1
iload 10 /* ao */
iadd
saload
sastore
69: .line 1167
StackMap locals:
StackMap stack:
iinc 17 /* i */ 1
StackMap locals:
StackMap stack:
70: iload 17 /* i */
iload 15 /* hi */
if_icmplt 65
end local 19 // int q
end local 18 // int p
end local 17 // int i
71: .line 1174
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 15 /* hi */
iastore
end local 16 // int mi
end local 15 // int hi
72: .line 1165
iinc 14 /* k */ 2
StackMap locals: short[] int int short[] int int int[] int int short[] int int int int int
StackMap stack:
73: iload 14 /* k */
iload 7 /* count */
if_icmple 59
end local 14 // int k
74: .line 1176
iload 7 /* count */
iconst_1
iand
ifeq 81
75: .line 1177
iload 2 /* right */
istore 14 /* i */
start local 14 // int i
76: aload 6 /* run */
iload 7 /* count */
iconst_1
isub
iaload
istore 15 /* lo */
start local 15 // int lo
77: goto 79
78: .line 1178
StackMap locals: int
StackMap stack:
aload 9 /* b */
iload 14 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 14 /* i */
iload 10 /* ao */
iadd
saload
sastore
79: .line 1177
StackMap locals:
StackMap stack:
iinc 14 /* i */ -1
iload 14 /* i */
iload 15 /* lo */
if_icmpge 78
end local 15 // int lo
end local 14 // int i
80: .line 1180
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 2 /* right */
iastore
81: .line 1182
StackMap locals:
StackMap stack:
aload 0 /* a */
astore 14 /* t */
start local 14 // short[] t
82: aload 9 /* b */
astore 0 /* a */
aload 14 /* t */
astore 9 /* b */
83: .line 1183
iload 10 /* ao */
istore 15 /* o */
start local 15 // int o
84: iload 11 /* bo */
istore 10 /* ao */
iload 15 /* o */
istore 11 /* bo */
end local 15 // int o
end local 14 // short[] t
85: .line 1164
iload 13 /* last */
istore 7 /* count */
end local 13 // int last
StackMap locals:
StackMap stack:
86: iload 7 /* count */
iconst_1
if_icmpgt 56
87: .line 1185
return
end local 12 // int blen
end local 11 // int bo
end local 10 // int ao
end local 9 // short[] b
end local 8 // byte odd
end local 7 // int count
end local 6 // int[] run
end local 5 // int workLen
end local 4 // int workBase
end local 3 // short[] work
end local 2 // int right
end local 1 // int left
end local 0 // short[] a
LocalVariableTable:
Start End Slot Name Signature
0 88 0 a [S
0 88 1 left I
0 88 2 right I
0 88 3 work [S
0 88 4 workBase I
0 88 5 workLen I
4 88 6 run [I
5 88 7 count I
7 29 8 k I
17 22 9 lo I
18 22 10 hi I
20 21 11 t S
37 88 8 odd B
38 41 9 n I
48 52 9 b [S
53 88 9 b [S
51 52 10 ao I
54 88 10 ao I
49 52 11 bo I
55 88 11 bo I
42 88 12 blen I
57 86 13 last I
58 74 14 k I
60 72 15 hi I
61 72 16 mi I
62 71 17 i I
63 71 18 p I
64 71 19 q I
76 80 14 i I
77 80 15 lo I
82 85 14 t [S
84 85 15 o I
MethodParameters:
Name Flags
a
left
right
work
workBase
workLen
private static void sort(short[], int, int, boolean);
descriptor: ([SIIZ)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=17, args_size=4
start local 0 // short[] a
start local 1 // int left
start local 2 // int right
start local 3 // boolean leftmost
0: .line 1196
iload 2 /* right */
iload 1 /* left */
isub
iconst_1
iadd
istore 4 /* length */
start local 4 // int length
1: .line 1199
iload 4 /* length */
bipush 47
if_icmpge 42
2: .line 1200
iload 3 /* leftmost */
ifeq 16
3: .line 1206
iload 1 /* left */
istore 5 /* i */
start local 5 // int i
4: iload 5 /* i */
istore 6 /* j */
start local 6 // int j
5: goto 14
6: .line 1207
StackMap locals: int int int
StackMap stack:
aload 0 /* a */
iload 5 /* i */
iconst_1
iadd
saload
istore 7 /* ai */
start local 7 // short ai
7: .line 1208
goto 11
8: .line 1209
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
aload 0 /* a */
iload 6 /* j */
saload
sastore
9: .line 1210
iload 6 /* j */
iinc 6 /* j */ -1
iload 1 /* left */
if_icmpne 11
10: .line 1211
goto 12
11: .line 1208
StackMap locals:
StackMap stack:
iload 7 /* ai */
aload 0 /* a */
iload 6 /* j */
saload
if_icmplt 8
12: .line 1214
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
iload 7 /* ai */
sastore
end local 7 // short ai
13: .line 1206
iinc 5 /* i */ 1
iload 5 /* i */
istore 6 /* j */
StackMap locals:
StackMap stack:
14: iload 5 /* i */
iload 2 /* right */
if_icmplt 6
end local 6 // int j
end local 5 // int i
15: .line 1216
goto 41
16: .line 1221
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmplt 18
17: .line 1222
return
18: .line 1224
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 1 /* left */ 1
iload 1 /* left */
saload
aload 0 /* a */
iload 1 /* left */
iconst_1
isub
saload
19: .line 1220
if_icmpge 16
20: .line 1234
iload 1 /* left */
istore 5 /* k */
start local 5 // int k
21: goto 35
22: .line 1235
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 5 /* k */
saload
istore 6 /* a1 */
start local 6 // short a1
23: aload 0 /* a */
iload 1 /* left */
saload
istore 7 /* a2 */
start local 7 // short a2
24: .line 1237
iload 6 /* a1 */
iload 7 /* a2 */
if_icmpge 28
25: .line 1238
iload 6 /* a1 */
istore 7 /* a2 */
aload 0 /* a */
iload 1 /* left */
saload
istore 6 /* a1 */
26: .line 1240
goto 28
27: .line 1241
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_2
iadd
aload 0 /* a */
iload 5 /* k */
saload
sastore
28: .line 1240
StackMap locals:
StackMap stack:
iload 6 /* a1 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
saload
if_icmplt 27
29: .line 1243
aload 0 /* a */
iinc 5 /* k */ 1
iload 5 /* k */
iconst_1
iadd
iload 6 /* a1 */
sastore
30: .line 1245
goto 32
31: .line 1246
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
aload 0 /* a */
iload 5 /* k */
saload
sastore
32: .line 1245
StackMap locals:
StackMap stack:
iload 7 /* a2 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
saload
if_icmplt 31
33: .line 1248
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
iload 7 /* a2 */
sastore
end local 7 // short a2
end local 6 // short a1
34: .line 1234
iinc 1 /* left */ 1
iload 1 /* left */
istore 5 /* k */
StackMap locals:
StackMap stack:
35: iinc 1 /* left */ 1
iload 1 /* left */
iload 2 /* right */
if_icmple 22
end local 5 // int k
36: .line 1250
aload 0 /* a */
iload 2 /* right */
saload
istore 5 /* last */
start local 5 // short last
37: .line 1252
goto 39
38: .line 1253
StackMap locals: short[] int int int int int
StackMap stack:
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
aload 0 /* a */
iload 2 /* right */
saload
sastore
39: .line 1252
StackMap locals:
StackMap stack:
iload 5 /* last */
aload 0 /* a */
iinc 2 /* right */ -1
iload 2 /* right */
saload
if_icmplt 38
40: .line 1255
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
iload 5 /* last */
sastore
end local 5 // short last
41: .line 1257
StackMap locals:
StackMap stack:
return
42: .line 1261
StackMap locals:
StackMap stack:
iload 4 /* length */
iconst_3
ishr
iload 4 /* length */
bipush 6
ishr
iadd
iconst_1
iadd
istore 5 /* seventh */
start local 5 // int seventh
43: .line 1270
iload 1 /* left */
iload 2 /* right */
iadd
iconst_1
iushr
istore 6 /* e3 */
start local 6 // int e3
44: .line 1271
iload 6 /* e3 */
iload 5 /* seventh */
isub
istore 7 /* e2 */
start local 7 // int e2
45: .line 1272
iload 7 /* e2 */
iload 5 /* seventh */
isub
istore 8 /* e1 */
start local 8 // int e1
46: .line 1273
iload 6 /* e3 */
iload 5 /* seventh */
iadd
istore 9 /* e4 */
start local 9 // int e4
47: .line 1274
iload 9 /* e4 */
iload 5 /* seventh */
iadd
istore 10 /* e5 */
start local 10 // int e5
48: .line 1277
aload 0 /* a */
iload 7 /* e2 */
saload
aload 0 /* a */
iload 8 /* e1 */
saload
if_icmpge 50
aload 0 /* a */
iload 7 /* e2 */
saload
istore 11 /* t */
start local 11 // short t
49: aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
saload
sastore
aload 0 /* a */
iload 8 /* e1 */
iload 11 /* t */
sastore
end local 11 // short t
50: .line 1279
StackMap locals: short[] int int int int int int int int int int
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
saload
aload 0 /* a */
iload 7 /* e2 */
saload
if_icmpge 53
aload 0 /* a */
iload 6 /* e3 */
saload
istore 11 /* t */
start local 11 // short t
51: aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
saload
sastore
aload 0 /* a */
iload 7 /* e2 */
iload 11 /* t */
sastore
52: .line 1280
iload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
saload
if_icmpge 53
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
saload
sastore
aload 0 /* a */
iload 8 /* e1 */
iload 11 /* t */
sastore
end local 11 // short t
53: .line 1282
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 9 /* e4 */
saload
aload 0 /* a */
iload 6 /* e3 */
saload
if_icmpge 57
aload 0 /* a */
iload 9 /* e4 */
saload
istore 11 /* t */
start local 11 // short t
54: aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 6 /* e3 */
saload
sastore
aload 0 /* a */
iload 6 /* e3 */
iload 11 /* t */
sastore
55: .line 1283
iload 11 /* t */
aload 0 /* a */
iload 7 /* e2 */
saload
if_icmpge 57
aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
saload
sastore
aload 0 /* a */
iload 7 /* e2 */
iload 11 /* t */
sastore
56: .line 1284
iload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
saload
if_icmpge 57
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
saload
sastore
aload 0 /* a */
iload 8 /* e1 */
iload 11 /* t */
sastore
end local 11 // short t
57: .line 1287
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 10 /* e5 */
saload
aload 0 /* a */
iload 9 /* e4 */
saload
if_icmpge 62
aload 0 /* a */
iload 10 /* e5 */
saload
istore 11 /* t */
start local 11 // short t
58: aload 0 /* a */
iload 10 /* e5 */
aload 0 /* a */
iload 9 /* e4 */
saload
sastore
aload 0 /* a */
iload 9 /* e4 */
iload 11 /* t */
sastore
59: .line 1288
iload 11 /* t */
aload 0 /* a */
iload 6 /* e3 */
saload
if_icmpge 62
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 6 /* e3 */
saload
sastore
aload 0 /* a */
iload 6 /* e3 */
iload 11 /* t */
sastore
60: .line 1289
iload 11 /* t */
aload 0 /* a */
iload 7 /* e2 */
saload
if_icmpge 62
aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
saload
sastore
aload 0 /* a */
iload 7 /* e2 */
iload 11 /* t */
sastore
61: .line 1290
iload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
saload
if_icmpge 62
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
saload
sastore
aload 0 /* a */
iload 8 /* e1 */
iload 11 /* t */
sastore
end local 11 // short t
62: .line 1296
StackMap locals:
StackMap stack:
iload 1 /* left */
istore 11 /* less */
start local 11 // int less
63: .line 1297
iload 2 /* right */
istore 12 /* great */
start local 12 // int great
64: .line 1299
aload 0 /* a */
iload 8 /* e1 */
saload
aload 0 /* a */
iload 7 /* e2 */
saload
if_icmpeq 128
aload 0 /* a */
iload 7 /* e2 */
saload
aload 0 /* a */
iload 6 /* e3 */
saload
if_icmpeq 128
aload 0 /* a */
iload 6 /* e3 */
saload
aload 0 /* a */
iload 9 /* e4 */
saload
if_icmpeq 128
aload 0 /* a */
iload 9 /* e4 */
saload
aload 0 /* a */
iload 10 /* e5 */
saload
if_icmpeq 128
65: .line 1305
aload 0 /* a */
iload 7 /* e2 */
saload
istore 13 /* pivot1 */
start local 13 // short pivot1
66: .line 1306
aload 0 /* a */
iload 9 /* e4 */
saload
istore 14 /* pivot2 */
start local 14 // short pivot2
67: .line 1314
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 1 /* left */
saload
sastore
68: .line 1315
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 2 /* right */
saload
sastore
69: .line 1320
StackMap locals: short[] int int int int int int int int int int int int int int
StackMap stack:
aload 0 /* a */
iinc 11 /* less */ 1
iload 11 /* less */
saload
iload 13 /* pivot1 */
if_icmplt 69
70: .line 1321
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 12 /* great */ -1
iload 12 /* great */
saload
iload 14 /* pivot2 */
if_icmpgt 70
71: .line 1343
iload 11 /* less */
iconst_1
isub
istore 15 /* k */
start local 15 // int k
72: goto 92
73: .line 1344
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
saload
istore 16 /* ak */
start local 16 // short ak
74: .line 1345
iload 16 /* ak */
iload 13 /* pivot1 */
if_icmpge 79
75: .line 1346
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
saload
sastore
76: .line 1351
aload 0 /* a */
iload 11 /* less */
iload 16 /* ak */
sastore
77: .line 1352
iinc 11 /* less */ 1
78: .line 1353
goto 92
StackMap locals: int
StackMap stack:
79: iload 16 /* ak */
iload 14 /* pivot2 */
if_icmple 92
80: .line 1354
goto 83
81: .line 1355
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 15 /* k */
if_icmpne 83
82: .line 1356
goto 93
83: .line 1354
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
saload
iload 14 /* pivot2 */
if_icmpgt 81
84: .line 1359
aload 0 /* a */
iload 12 /* great */
saload
iload 13 /* pivot1 */
if_icmpge 89
85: .line 1360
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
saload
sastore
86: .line 1361
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
saload
sastore
87: .line 1362
iinc 11 /* less */ 1
88: .line 1363
goto 90
89: .line 1364
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
saload
sastore
90: .line 1370
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 16 /* ak */
sastore
91: .line 1371
iinc 12 /* great */ -1
end local 16 // short ak
92: .line 1343
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
iload 15 /* k */
iload 12 /* great */
if_icmple 73
end local 15 // int k
93: .line 1376
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 1 /* left */
aload 0 /* a */
iload 11 /* less */
iconst_1
isub
saload
sastore
aload 0 /* a */
iload 11 /* less */
iconst_1
isub
iload 13 /* pivot1 */
sastore
94: .line 1377
aload 0 /* a */
iload 2 /* right */
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
saload
sastore
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
iload 14 /* pivot2 */
sastore
95: .line 1380
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_2
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([SIIZ)V
96: .line 1381
aload 0 /* a */
iload 12 /* great */
iconst_2
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([SIIZ)V
97: .line 1387
iload 11 /* less */
iload 8 /* e1 */
if_icmpge 126
iload 10 /* e5 */
iload 12 /* great */
if_icmpge 126
98: .line 1391
goto 100
99: .line 1392
StackMap locals:
StackMap stack:
iinc 11 /* less */ 1
100: .line 1391
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
saload
iload 13 /* pivot1 */
if_icmpeq 99
101: .line 1395
goto 103
102: .line 1396
StackMap locals:
StackMap stack:
iinc 12 /* great */ -1
103: .line 1395
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
saload
iload 14 /* pivot2 */
if_icmpeq 102
104: .line 1419
iload 11 /* less */
iconst_1
isub
istore 15 /* k */
start local 15 // int k
105: goto 125
106: .line 1420
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
saload
istore 16 /* ak */
start local 16 // short ak
107: .line 1421
iload 16 /* ak */
iload 13 /* pivot1 */
if_icmpne 112
108: .line 1422
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
saload
sastore
109: .line 1423
aload 0 /* a */
iload 11 /* less */
iload 16 /* ak */
sastore
110: .line 1424
iinc 11 /* less */ 1
111: .line 1425
goto 125
StackMap locals: int
StackMap stack:
112: iload 16 /* ak */
iload 14 /* pivot2 */
if_icmpne 125
113: .line 1426
goto 116
114: .line 1427
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 15 /* k */
if_icmpne 116
115: .line 1428
goto 126
116: .line 1426
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
saload
iload 14 /* pivot2 */
if_icmpeq 114
117: .line 1431
aload 0 /* a */
iload 12 /* great */
saload
iload 13 /* pivot1 */
if_icmpne 122
118: .line 1432
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
saload
sastore
119: .line 1441
aload 0 /* a */
iload 11 /* less */
iload 13 /* pivot1 */
sastore
120: .line 1442
iinc 11 /* less */ 1
121: .line 1443
goto 123
122: .line 1444
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
saload
sastore
123: .line 1446
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 16 /* ak */
sastore
124: .line 1447
iinc 12 /* great */ -1
end local 16 // short ak
125: .line 1419
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
iload 15 /* k */
iload 12 /* great */
if_icmple 106
end local 15 // int k
126: .line 1453
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
iload 12 /* great */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([SIIZ)V
end local 14 // short pivot2
end local 13 // short pivot1
127: .line 1455
goto 153
128: .line 1460
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
saload
istore 13 /* pivot */
start local 13 // short pivot
129: .line 1482
iload 11 /* less */
istore 14 /* k */
start local 14 // int k
130: goto 150
131: .line 1483
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 14 /* k */
saload
iload 13 /* pivot */
if_icmpne 133
132: .line 1484
goto 149
133: .line 1486
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 14 /* k */
saload
istore 15 /* ak */
start local 15 // short ak
134: .line 1487
iload 15 /* ak */
iload 13 /* pivot */
if_icmpge 140
135: .line 1488
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 11 /* less */
saload
sastore
136: .line 1489
aload 0 /* a */
iload 11 /* less */
iload 15 /* ak */
sastore
137: .line 1490
iinc 11 /* less */ 1
138: .line 1491
goto 149
139: .line 1493
StackMap locals: int
StackMap stack:
iinc 12 /* great */ -1
140: .line 1492
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
saload
iload 13 /* pivot */
if_icmpgt 139
141: .line 1495
aload 0 /* a */
iload 12 /* great */
saload
iload 13 /* pivot */
if_icmpge 146
142: .line 1496
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 11 /* less */
saload
sastore
143: .line 1497
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
saload
sastore
144: .line 1498
iinc 11 /* less */ 1
145: .line 1499
goto 147
146: .line 1508
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 14 /* k */
iload 13 /* pivot */
sastore
147: .line 1510
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 15 /* ak */
sastore
148: .line 1511
iinc 12 /* great */ -1
end local 15 // short ak
149: .line 1482
StackMap locals:
StackMap stack:
iinc 14 /* k */ 1
StackMap locals:
StackMap stack:
150: iload 14 /* k */
iload 12 /* great */
if_icmple 131
end local 14 // int k
151: .line 1520
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_1
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([SIIZ)V
152: .line 1521
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([SIIZ)V
end local 13 // short pivot
153: .line 1523
StackMap locals:
StackMap stack:
return
end local 12 // int great
end local 11 // int less
end local 10 // int e5
end local 9 // int e4
end local 8 // int e1
end local 7 // int e2
end local 6 // int e3
end local 5 // int seventh
end local 4 // int length
end local 3 // boolean leftmost
end local 2 // int right
end local 1 // int left
end local 0 // short[] a
LocalVariableTable:
Start End Slot Name Signature
0 154 0 a [S
0 154 1 left I
0 154 2 right I
0 154 3 leftmost Z
1 154 4 length I
4 15 5 i I
5 15 6 j I
7 13 7 ai S
21 36 5 k I
23 34 6 a1 S
24 34 7 a2 S
37 41 5 last S
43 154 5 seventh I
44 154 6 e3 I
45 154 7 e2 I
46 154 8 e1 I
47 154 9 e4 I
48 154 10 e5 I
49 50 11 t S
51 53 11 t S
54 57 11 t S
58 62 11 t S
63 154 11 less I
64 154 12 great I
66 127 13 pivot1 S
67 127 14 pivot2 S
72 93 15 k I
74 92 16 ak S
105 126 15 k I
107 125 16 ak S
129 153 13 pivot S
130 151 14 k I
134 149 15 ak S
MethodParameters:
Name Flags
a
left
right
leftmost
static void sort(char[], int, int, char[], int, int);
descriptor: ([CII[CII)V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=11, args_size=6
start local 0 // char[] a
start local 1 // int left
start local 2 // int right
start local 3 // char[] work
start local 4 // int workBase
start local 5 // int workLen
0: .line 1539
iload 2 /* right */
iload 1 /* left */
isub
sipush 3200
if_icmple 17
1: .line 1540
ldc 65536
newarray 10
astore 6 /* count */
start local 6 // int[] count
2: .line 1542
iload 1 /* left */
iconst_1
isub
istore 7 /* i */
start local 7 // int i
3: goto 5
4: .line 1543
StackMap locals: int[] int
StackMap stack:
aload 6 /* count */
aload 0 /* a */
iload 7 /* i */
caload
dup2
iaload
iconst_1
iadd
iastore
5: .line 1542
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
iload 7 /* i */
iload 2 /* right */
if_icmple 4
end local 7 // int i
6: .line 1545
ldc 65536
istore 7 /* i */
start local 7 // int i
7: iload 2 /* right */
iconst_1
iadd
istore 8 /* k */
start local 8 // int k
8: goto 15
9: .line 1546
StackMap locals: int
StackMap stack:
aload 6 /* count */
iinc 7 /* i */ -1
iload 7 /* i */
iaload
ifeq 9
10: .line 1547
iload 7 /* i */
i2c
istore 9 /* value */
start local 9 // char value
11: .line 1548
aload 6 /* count */
iload 7 /* i */
iaload
istore 10 /* s */
start local 10 // int s
12: .line 1551
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iinc 8 /* k */ -1
iload 8 /* k */
iload 9 /* value */
castore
13: .line 1552
iinc 10 /* s */ -1
iload 10 /* s */
14: .line 1550
ifgt 12
end local 10 // int s
end local 9 // char value
15: .line 1545
StackMap locals:
StackMap stack:
iload 8 /* k */
iload 1 /* left */
if_icmpgt 9
end local 8 // int k
end local 7 // int i
end local 6 // int[] count
16: .line 1554
goto 18
17: .line 1555
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
aload 3 /* work */
iload 4 /* workBase */
iload 5 /* workLen */
invokestatic java.util.DualPivotQuicksort.doSort:([CII[CII)V
18: .line 1557
StackMap locals:
StackMap stack:
return
end local 5 // int workLen
end local 4 // int workBase
end local 3 // char[] work
end local 2 // int right
end local 1 // int left
end local 0 // char[] a
LocalVariableTable:
Start End Slot Name Signature
0 19 0 a [C
0 19 1 left I
0 19 2 right I
0 19 3 work [C
0 19 4 workBase I
0 19 5 workLen I
2 16 6 count [I
3 6 7 i I
7 16 7 i I
8 16 8 k I
11 15 9 value C
12 15 10 s I
MethodParameters:
Name Flags
a
left
right
work
workBase
workLen
private static void doSort(char[], int, int, char[], int, int);
descriptor: ([CII[CII)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=20, args_size=6
start local 0 // char[] a
start local 1 // int left
start local 2 // int right
start local 3 // char[] work
start local 4 // int workBase
start local 5 // int workLen
0: .line 1575
iload 2 /* right */
iload 1 /* left */
isub
sipush 286
if_icmpge 3
1: .line 1576
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([CIIZ)V
2: .line 1577
return
3: .line 1584
StackMap locals:
StackMap stack:
bipush 68
newarray 10
astore 6 /* run */
start local 6 // int[] run
4: .line 1585
iconst_0
istore 7 /* count */
start local 7 // int count
5: aload 6 /* run */
iconst_0
iload 1 /* left */
iastore
6: .line 1588
iload 1 /* left */
istore 8 /* k */
start local 8 // int k
7: goto 28
8: .line 1591
StackMap locals: int[] int int
StackMap stack:
iinc 8 /* k */ 1
9: .line 1590
StackMap locals:
StackMap stack:
iload 8 /* k */
iload 2 /* right */
if_icmpge 10
aload 0 /* a */
iload 8 /* k */
caload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
caload
if_icmpeq 8
10: .line 1592
StackMap locals:
StackMap stack:
iload 8 /* k */
iload 2 /* right */
if_icmpne 11
goto 29
11: .line 1593
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 8 /* k */
caload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
caload
if_icmpge 14
12: .line 1594
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 22
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
caload
aload 0 /* a */
iload 8 /* k */
caload
if_icmple 12
13: .line 1595
goto 22
StackMap locals:
StackMap stack:
14: aload 0 /* a */
iload 8 /* k */
caload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
caload
if_icmple 22
15: .line 1596
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 16
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
caload
aload 0 /* a */
iload 8 /* k */
caload
if_icmpge 15
16: .line 1598
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
istore 9 /* lo */
start local 9 // int lo
17: iload 8 /* k */
istore 10 /* hi */
start local 10 // int hi
18: goto 21
19: .line 1599
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 9 /* lo */
caload
istore 11 /* t */
start local 11 // char t
20: aload 0 /* a */
iload 9 /* lo */
aload 0 /* a */
iload 10 /* hi */
caload
castore
aload 0 /* a */
iload 10 /* hi */
iload 11 /* t */
castore
end local 11 // char t
21: .line 1598
StackMap locals:
StackMap stack:
iinc 9 /* lo */ 1
iload 9 /* lo */
iinc 10 /* hi */ -1
iload 10 /* hi */
if_icmplt 19
end local 10 // int hi
end local 9 // int lo
22: .line 1605
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iload 1 /* left */
if_icmple 24
aload 0 /* a */
aload 6 /* run */
iload 7 /* count */
iaload
caload
aload 0 /* a */
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
caload
if_icmplt 24
23: .line 1606
iinc 7 /* count */ -1
24: .line 1613
StackMap locals:
StackMap stack:
iinc 7 /* count */ 1
iload 7 /* count */
bipush 67
if_icmpne 27
25: .line 1614
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([CIIZ)V
26: .line 1615
return
27: .line 1588
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iload 8 /* k */
iastore
StackMap locals:
StackMap stack:
28: iload 8 /* k */
iload 2 /* right */
if_icmplt 9
end local 8 // int k
29: .line 1623
StackMap locals:
StackMap stack:
iload 7 /* count */
ifne 31
30: .line 1625
return
31: .line 1626
StackMap locals:
StackMap stack:
iload 7 /* count */
iconst_1
if_icmpne 33
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
if_icmple 33
32: .line 1630
return
33: .line 1632
StackMap locals:
StackMap stack:
iinc 2 /* right */ 1
34: .line 1633
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
if_icmpge 36
35: .line 1638
aload 6 /* run */
iinc 7 /* count */ 1
iload 7 /* count */
iload 2 /* right */
iastore
36: .line 1642
StackMap locals:
StackMap stack:
iconst_0
istore 8 /* odd */
start local 8 // byte odd
37: .line 1643
iconst_1
istore 9 /* n */
start local 9 // int n
38: goto 40
StackMap locals: int int
StackMap stack:
39: iload 8 /* odd */
iconst_1
ixor
i2b
istore 8 /* odd */
StackMap locals:
StackMap stack:
40: iload 9 /* n */
iconst_1
ishl
dup
istore 9 /* n */
iload 7 /* count */
if_icmplt 39
end local 9 // int n
41: .line 1648
iload 2 /* right */
iload 1 /* left */
isub
istore 12 /* blen */
start local 12 // int blen
42: .line 1649
aload 3 /* work */
ifnull 43
iload 5 /* workLen */
iload 12 /* blen */
if_icmplt 43
iload 4 /* workBase */
iload 12 /* blen */
iadd
aload 3 /* work */
arraylength
if_icmple 45
43: .line 1650
StackMap locals: char[] int int char[] int int int[] int int top top top int
StackMap stack:
iload 12 /* blen */
newarray 5
astore 3 /* work */
44: .line 1651
iconst_0
istore 4 /* workBase */
45: .line 1653
StackMap locals:
StackMap stack:
iload 8 /* odd */
ifne 52
46: .line 1654
aload 0 /* a */
iload 1 /* left */
aload 3 /* work */
iload 4 /* workBase */
iload 12 /* blen */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
47: .line 1655
aload 0 /* a */
astore 9 /* b */
start local 9 // char[] b
48: .line 1656
iconst_0
istore 11 /* bo */
start local 11 // int bo
49: .line 1657
aload 3 /* work */
astore 0 /* a */
50: .line 1658
iload 4 /* workBase */
iload 1 /* left */
isub
istore 10 /* ao */
start local 10 // int ao
51: .line 1659
goto 86
end local 11 // int bo
end local 10 // int ao
end local 9 // char[] b
52: .line 1660
StackMap locals:
StackMap stack:
aload 3 /* work */
astore 9 /* b */
start local 9 // char[] b
53: .line 1661
iconst_0
istore 10 /* ao */
start local 10 // int ao
54: .line 1662
iload 4 /* workBase */
iload 1 /* left */
isub
istore 11 /* bo */
start local 11 // int bo
55: .line 1666
goto 86
56: .line 1667
StackMap locals: char[] int int char[] int int int[] int int char[] int int int
StackMap stack:
iconst_0
dup
istore 13 /* last */
start local 13 // int last
57: iconst_2
iadd
istore 14 /* k */
start local 14 // int k
58: goto 73
59: .line 1668
StackMap locals: int int
StackMap stack:
aload 6 /* run */
iload 14 /* k */
iaload
istore 15 /* hi */
start local 15 // int hi
60: aload 6 /* run */
iload 14 /* k */
iconst_1
isub
iaload
istore 16 /* mi */
start local 16 // int mi
61: .line 1669
aload 6 /* run */
iload 14 /* k */
iconst_2
isub
iaload
istore 17 /* i */
start local 17 // int i
62: iload 17 /* i */
istore 18 /* p */
start local 18 // int p
63: iload 16 /* mi */
istore 19 /* q */
start local 19 // int q
64: goto 70
65: .line 1670
StackMap locals: char[] int int char[] int int int[] int int char[] int int int int int int int int int int
StackMap stack:
iload 19 /* q */
iload 15 /* hi */
if_icmpge 66
iload 18 /* p */
iload 16 /* mi */
if_icmpge 68
aload 0 /* a */
iload 18 /* p */
iload 10 /* ao */
iadd
caload
aload 0 /* a */
iload 19 /* q */
iload 10 /* ao */
iadd
caload
if_icmpgt 68
66: .line 1671
StackMap locals:
StackMap stack:
aload 9 /* b */
iload 17 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 18 /* p */
iinc 18 /* p */ 1
iload 10 /* ao */
iadd
caload
castore
67: .line 1672
goto 69
68: .line 1673
StackMap locals:
StackMap stack:
aload 9 /* b */
iload 17 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 19 /* q */
iinc 19 /* q */ 1
iload 10 /* ao */
iadd
caload
castore
69: .line 1669
StackMap locals:
StackMap stack:
iinc 17 /* i */ 1
StackMap locals:
StackMap stack:
70: iload 17 /* i */
iload 15 /* hi */
if_icmplt 65
end local 19 // int q
end local 18 // int p
end local 17 // int i
71: .line 1676
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 15 /* hi */
iastore
end local 16 // int mi
end local 15 // int hi
72: .line 1667
iinc 14 /* k */ 2
StackMap locals: char[] int int char[] int int int[] int int char[] int int int int int
StackMap stack:
73: iload 14 /* k */
iload 7 /* count */
if_icmple 59
end local 14 // int k
74: .line 1678
iload 7 /* count */
iconst_1
iand
ifeq 81
75: .line 1679
iload 2 /* right */
istore 14 /* i */
start local 14 // int i
76: aload 6 /* run */
iload 7 /* count */
iconst_1
isub
iaload
istore 15 /* lo */
start local 15 // int lo
77: goto 79
78: .line 1680
StackMap locals: int
StackMap stack:
aload 9 /* b */
iload 14 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 14 /* i */
iload 10 /* ao */
iadd
caload
castore
79: .line 1679
StackMap locals:
StackMap stack:
iinc 14 /* i */ -1
iload 14 /* i */
iload 15 /* lo */
if_icmpge 78
end local 15 // int lo
end local 14 // int i
80: .line 1682
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 2 /* right */
iastore
81: .line 1684
StackMap locals:
StackMap stack:
aload 0 /* a */
astore 14 /* t */
start local 14 // char[] t
82: aload 9 /* b */
astore 0 /* a */
aload 14 /* t */
astore 9 /* b */
83: .line 1685
iload 10 /* ao */
istore 15 /* o */
start local 15 // int o
84: iload 11 /* bo */
istore 10 /* ao */
iload 15 /* o */
istore 11 /* bo */
end local 15 // int o
end local 14 // char[] t
85: .line 1666
iload 13 /* last */
istore 7 /* count */
end local 13 // int last
StackMap locals:
StackMap stack:
86: iload 7 /* count */
iconst_1
if_icmpgt 56
87: .line 1687
return
end local 12 // int blen
end local 11 // int bo
end local 10 // int ao
end local 9 // char[] b
end local 8 // byte odd
end local 7 // int count
end local 6 // int[] run
end local 5 // int workLen
end local 4 // int workBase
end local 3 // char[] work
end local 2 // int right
end local 1 // int left
end local 0 // char[] a
LocalVariableTable:
Start End Slot Name Signature
0 88 0 a [C
0 88 1 left I
0 88 2 right I
0 88 3 work [C
0 88 4 workBase I
0 88 5 workLen I
4 88 6 run [I
5 88 7 count I
7 29 8 k I
17 22 9 lo I
18 22 10 hi I
20 21 11 t C
37 88 8 odd B
38 41 9 n I
48 52 9 b [C
53 88 9 b [C
51 52 10 ao I
54 88 10 ao I
49 52 11 bo I
55 88 11 bo I
42 88 12 blen I
57 86 13 last I
58 74 14 k I
60 72 15 hi I
61 72 16 mi I
62 71 17 i I
63 71 18 p I
64 71 19 q I
76 80 14 i I
77 80 15 lo I
82 85 14 t [C
84 85 15 o I
MethodParameters:
Name Flags
a
left
right
work
workBase
workLen
private static void sort(char[], int, int, boolean);
descriptor: ([CIIZ)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=17, args_size=4
start local 0 // char[] a
start local 1 // int left
start local 2 // int right
start local 3 // boolean leftmost
0: .line 1698
iload 2 /* right */
iload 1 /* left */
isub
iconst_1
iadd
istore 4 /* length */
start local 4 // int length
1: .line 1701
iload 4 /* length */
bipush 47
if_icmpge 42
2: .line 1702
iload 3 /* leftmost */
ifeq 16
3: .line 1708
iload 1 /* left */
istore 5 /* i */
start local 5 // int i
4: iload 5 /* i */
istore 6 /* j */
start local 6 // int j
5: goto 14
6: .line 1709
StackMap locals: int int int
StackMap stack:
aload 0 /* a */
iload 5 /* i */
iconst_1
iadd
caload
istore 7 /* ai */
start local 7 // char ai
7: .line 1710
goto 11
8: .line 1711
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
aload 0 /* a */
iload 6 /* j */
caload
castore
9: .line 1712
iload 6 /* j */
iinc 6 /* j */ -1
iload 1 /* left */
if_icmpne 11
10: .line 1713
goto 12
11: .line 1710
StackMap locals:
StackMap stack:
iload 7 /* ai */
aload 0 /* a */
iload 6 /* j */
caload
if_icmplt 8
12: .line 1716
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
iload 7 /* ai */
castore
end local 7 // char ai
13: .line 1708
iinc 5 /* i */ 1
iload 5 /* i */
istore 6 /* j */
StackMap locals:
StackMap stack:
14: iload 5 /* i */
iload 2 /* right */
if_icmplt 6
end local 6 // int j
end local 5 // int i
15: .line 1718
goto 41
16: .line 1723
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmplt 18
17: .line 1724
return
18: .line 1726
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 1 /* left */ 1
iload 1 /* left */
caload
aload 0 /* a */
iload 1 /* left */
iconst_1
isub
caload
19: .line 1722
if_icmpge 16
20: .line 1736
iload 1 /* left */
istore 5 /* k */
start local 5 // int k
21: goto 35
22: .line 1737
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 5 /* k */
caload
istore 6 /* a1 */
start local 6 // char a1
23: aload 0 /* a */
iload 1 /* left */
caload
istore 7 /* a2 */
start local 7 // char a2
24: .line 1739
iload 6 /* a1 */
iload 7 /* a2 */
if_icmpge 28
25: .line 1740
iload 6 /* a1 */
istore 7 /* a2 */
aload 0 /* a */
iload 1 /* left */
caload
istore 6 /* a1 */
26: .line 1742
goto 28
27: .line 1743
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_2
iadd
aload 0 /* a */
iload 5 /* k */
caload
castore
28: .line 1742
StackMap locals:
StackMap stack:
iload 6 /* a1 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
caload
if_icmplt 27
29: .line 1745
aload 0 /* a */
iinc 5 /* k */ 1
iload 5 /* k */
iconst_1
iadd
iload 6 /* a1 */
castore
30: .line 1747
goto 32
31: .line 1748
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
aload 0 /* a */
iload 5 /* k */
caload
castore
32: .line 1747
StackMap locals:
StackMap stack:
iload 7 /* a2 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
caload
if_icmplt 31
33: .line 1750
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
iload 7 /* a2 */
castore
end local 7 // char a2
end local 6 // char a1
34: .line 1736
iinc 1 /* left */ 1
iload 1 /* left */
istore 5 /* k */
StackMap locals:
StackMap stack:
35: iinc 1 /* left */ 1
iload 1 /* left */
iload 2 /* right */
if_icmple 22
end local 5 // int k
36: .line 1752
aload 0 /* a */
iload 2 /* right */
caload
istore 5 /* last */
start local 5 // char last
37: .line 1754
goto 39
38: .line 1755
StackMap locals: char[] int int int int int
StackMap stack:
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
aload 0 /* a */
iload 2 /* right */
caload
castore
39: .line 1754
StackMap locals:
StackMap stack:
iload 5 /* last */
aload 0 /* a */
iinc 2 /* right */ -1
iload 2 /* right */
caload
if_icmplt 38
40: .line 1757
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
iload 5 /* last */
castore
end local 5 // char last
41: .line 1759
StackMap locals:
StackMap stack:
return
42: .line 1763
StackMap locals:
StackMap stack:
iload 4 /* length */
iconst_3
ishr
iload 4 /* length */
bipush 6
ishr
iadd
iconst_1
iadd
istore 5 /* seventh */
start local 5 // int seventh
43: .line 1772
iload 1 /* left */
iload 2 /* right */
iadd
iconst_1
iushr
istore 6 /* e3 */
start local 6 // int e3
44: .line 1773
iload 6 /* e3 */
iload 5 /* seventh */
isub
istore 7 /* e2 */
start local 7 // int e2
45: .line 1774
iload 7 /* e2 */
iload 5 /* seventh */
isub
istore 8 /* e1 */
start local 8 // int e1
46: .line 1775
iload 6 /* e3 */
iload 5 /* seventh */
iadd
istore 9 /* e4 */
start local 9 // int e4
47: .line 1776
iload 9 /* e4 */
iload 5 /* seventh */
iadd
istore 10 /* e5 */
start local 10 // int e5
48: .line 1779
aload 0 /* a */
iload 7 /* e2 */
caload
aload 0 /* a */
iload 8 /* e1 */
caload
if_icmpge 50
aload 0 /* a */
iload 7 /* e2 */
caload
istore 11 /* t */
start local 11 // char t
49: aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
caload
castore
aload 0 /* a */
iload 8 /* e1 */
iload 11 /* t */
castore
end local 11 // char t
50: .line 1781
StackMap locals: char[] int int int int int int int int int int
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
caload
aload 0 /* a */
iload 7 /* e2 */
caload
if_icmpge 53
aload 0 /* a */
iload 6 /* e3 */
caload
istore 11 /* t */
start local 11 // char t
51: aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
caload
castore
aload 0 /* a */
iload 7 /* e2 */
iload 11 /* t */
castore
52: .line 1782
iload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
caload
if_icmpge 53
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
caload
castore
aload 0 /* a */
iload 8 /* e1 */
iload 11 /* t */
castore
end local 11 // char t
53: .line 1784
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 9 /* e4 */
caload
aload 0 /* a */
iload 6 /* e3 */
caload
if_icmpge 57
aload 0 /* a */
iload 9 /* e4 */
caload
istore 11 /* t */
start local 11 // char t
54: aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 6 /* e3 */
caload
castore
aload 0 /* a */
iload 6 /* e3 */
iload 11 /* t */
castore
55: .line 1785
iload 11 /* t */
aload 0 /* a */
iload 7 /* e2 */
caload
if_icmpge 57
aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
caload
castore
aload 0 /* a */
iload 7 /* e2 */
iload 11 /* t */
castore
56: .line 1786
iload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
caload
if_icmpge 57
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
caload
castore
aload 0 /* a */
iload 8 /* e1 */
iload 11 /* t */
castore
end local 11 // char t
57: .line 1789
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 10 /* e5 */
caload
aload 0 /* a */
iload 9 /* e4 */
caload
if_icmpge 62
aload 0 /* a */
iload 10 /* e5 */
caload
istore 11 /* t */
start local 11 // char t
58: aload 0 /* a */
iload 10 /* e5 */
aload 0 /* a */
iload 9 /* e4 */
caload
castore
aload 0 /* a */
iload 9 /* e4 */
iload 11 /* t */
castore
59: .line 1790
iload 11 /* t */
aload 0 /* a */
iload 6 /* e3 */
caload
if_icmpge 62
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 6 /* e3 */
caload
castore
aload 0 /* a */
iload 6 /* e3 */
iload 11 /* t */
castore
60: .line 1791
iload 11 /* t */
aload 0 /* a */
iload 7 /* e2 */
caload
if_icmpge 62
aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
caload
castore
aload 0 /* a */
iload 7 /* e2 */
iload 11 /* t */
castore
61: .line 1792
iload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
caload
if_icmpge 62
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
caload
castore
aload 0 /* a */
iload 8 /* e1 */
iload 11 /* t */
castore
end local 11 // char t
62: .line 1798
StackMap locals:
StackMap stack:
iload 1 /* left */
istore 11 /* less */
start local 11 // int less
63: .line 1799
iload 2 /* right */
istore 12 /* great */
start local 12 // int great
64: .line 1801
aload 0 /* a */
iload 8 /* e1 */
caload
aload 0 /* a */
iload 7 /* e2 */
caload
if_icmpeq 128
aload 0 /* a */
iload 7 /* e2 */
caload
aload 0 /* a */
iload 6 /* e3 */
caload
if_icmpeq 128
aload 0 /* a */
iload 6 /* e3 */
caload
aload 0 /* a */
iload 9 /* e4 */
caload
if_icmpeq 128
aload 0 /* a */
iload 9 /* e4 */
caload
aload 0 /* a */
iload 10 /* e5 */
caload
if_icmpeq 128
65: .line 1807
aload 0 /* a */
iload 7 /* e2 */
caload
istore 13 /* pivot1 */
start local 13 // char pivot1
66: .line 1808
aload 0 /* a */
iload 9 /* e4 */
caload
istore 14 /* pivot2 */
start local 14 // char pivot2
67: .line 1816
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 1 /* left */
caload
castore
68: .line 1817
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 2 /* right */
caload
castore
69: .line 1822
StackMap locals: char[] int int int int int int int int int int int int int int
StackMap stack:
aload 0 /* a */
iinc 11 /* less */ 1
iload 11 /* less */
caload
iload 13 /* pivot1 */
if_icmplt 69
70: .line 1823
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 12 /* great */ -1
iload 12 /* great */
caload
iload 14 /* pivot2 */
if_icmpgt 70
71: .line 1845
iload 11 /* less */
iconst_1
isub
istore 15 /* k */
start local 15 // int k
72: goto 92
73: .line 1846
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
caload
istore 16 /* ak */
start local 16 // char ak
74: .line 1847
iload 16 /* ak */
iload 13 /* pivot1 */
if_icmpge 79
75: .line 1848
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
caload
castore
76: .line 1853
aload 0 /* a */
iload 11 /* less */
iload 16 /* ak */
castore
77: .line 1854
iinc 11 /* less */ 1
78: .line 1855
goto 92
StackMap locals: int
StackMap stack:
79: iload 16 /* ak */
iload 14 /* pivot2 */
if_icmple 92
80: .line 1856
goto 83
81: .line 1857
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 15 /* k */
if_icmpne 83
82: .line 1858
goto 93
83: .line 1856
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
caload
iload 14 /* pivot2 */
if_icmpgt 81
84: .line 1861
aload 0 /* a */
iload 12 /* great */
caload
iload 13 /* pivot1 */
if_icmpge 89
85: .line 1862
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
caload
castore
86: .line 1863
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
caload
castore
87: .line 1864
iinc 11 /* less */ 1
88: .line 1865
goto 90
89: .line 1866
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
caload
castore
90: .line 1872
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 16 /* ak */
castore
91: .line 1873
iinc 12 /* great */ -1
end local 16 // char ak
92: .line 1845
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
iload 15 /* k */
iload 12 /* great */
if_icmple 73
end local 15 // int k
93: .line 1878
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 1 /* left */
aload 0 /* a */
iload 11 /* less */
iconst_1
isub
caload
castore
aload 0 /* a */
iload 11 /* less */
iconst_1
isub
iload 13 /* pivot1 */
castore
94: .line 1879
aload 0 /* a */
iload 2 /* right */
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
caload
castore
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
iload 14 /* pivot2 */
castore
95: .line 1882
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_2
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([CIIZ)V
96: .line 1883
aload 0 /* a */
iload 12 /* great */
iconst_2
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([CIIZ)V
97: .line 1889
iload 11 /* less */
iload 8 /* e1 */
if_icmpge 126
iload 10 /* e5 */
iload 12 /* great */
if_icmpge 126
98: .line 1893
goto 100
99: .line 1894
StackMap locals:
StackMap stack:
iinc 11 /* less */ 1
100: .line 1893
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
caload
iload 13 /* pivot1 */
if_icmpeq 99
101: .line 1897
goto 103
102: .line 1898
StackMap locals:
StackMap stack:
iinc 12 /* great */ -1
103: .line 1897
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
caload
iload 14 /* pivot2 */
if_icmpeq 102
104: .line 1921
iload 11 /* less */
iconst_1
isub
istore 15 /* k */
start local 15 // int k
105: goto 125
106: .line 1922
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
caload
istore 16 /* ak */
start local 16 // char ak
107: .line 1923
iload 16 /* ak */
iload 13 /* pivot1 */
if_icmpne 112
108: .line 1924
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
caload
castore
109: .line 1925
aload 0 /* a */
iload 11 /* less */
iload 16 /* ak */
castore
110: .line 1926
iinc 11 /* less */ 1
111: .line 1927
goto 125
StackMap locals: int
StackMap stack:
112: iload 16 /* ak */
iload 14 /* pivot2 */
if_icmpne 125
113: .line 1928
goto 116
114: .line 1929
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 15 /* k */
if_icmpne 116
115: .line 1930
goto 126
116: .line 1928
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
caload
iload 14 /* pivot2 */
if_icmpeq 114
117: .line 1933
aload 0 /* a */
iload 12 /* great */
caload
iload 13 /* pivot1 */
if_icmpne 122
118: .line 1934
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
caload
castore
119: .line 1943
aload 0 /* a */
iload 11 /* less */
iload 13 /* pivot1 */
castore
120: .line 1944
iinc 11 /* less */ 1
121: .line 1945
goto 123
122: .line 1946
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
caload
castore
123: .line 1948
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 16 /* ak */
castore
124: .line 1949
iinc 12 /* great */ -1
end local 16 // char ak
125: .line 1921
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
iload 15 /* k */
iload 12 /* great */
if_icmple 106
end local 15 // int k
126: .line 1955
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
iload 12 /* great */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([CIIZ)V
end local 14 // char pivot2
end local 13 // char pivot1
127: .line 1957
goto 153
128: .line 1962
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
caload
istore 13 /* pivot */
start local 13 // char pivot
129: .line 1984
iload 11 /* less */
istore 14 /* k */
start local 14 // int k
130: goto 150
131: .line 1985
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 14 /* k */
caload
iload 13 /* pivot */
if_icmpne 133
132: .line 1986
goto 149
133: .line 1988
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 14 /* k */
caload
istore 15 /* ak */
start local 15 // char ak
134: .line 1989
iload 15 /* ak */
iload 13 /* pivot */
if_icmpge 140
135: .line 1990
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 11 /* less */
caload
castore
136: .line 1991
aload 0 /* a */
iload 11 /* less */
iload 15 /* ak */
castore
137: .line 1992
iinc 11 /* less */ 1
138: .line 1993
goto 149
139: .line 1995
StackMap locals: int
StackMap stack:
iinc 12 /* great */ -1
140: .line 1994
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
caload
iload 13 /* pivot */
if_icmpgt 139
141: .line 1997
aload 0 /* a */
iload 12 /* great */
caload
iload 13 /* pivot */
if_icmpge 146
142: .line 1998
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 11 /* less */
caload
castore
143: .line 1999
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
caload
castore
144: .line 2000
iinc 11 /* less */ 1
145: .line 2001
goto 147
146: .line 2010
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 14 /* k */
iload 13 /* pivot */
castore
147: .line 2012
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 15 /* ak */
castore
148: .line 2013
iinc 12 /* great */ -1
end local 15 // char ak
149: .line 1984
StackMap locals:
StackMap stack:
iinc 14 /* k */ 1
StackMap locals:
StackMap stack:
150: iload 14 /* k */
iload 12 /* great */
if_icmple 131
end local 14 // int k
151: .line 2022
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_1
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([CIIZ)V
152: .line 2023
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([CIIZ)V
end local 13 // char pivot
153: .line 2025
StackMap locals:
StackMap stack:
return
end local 12 // int great
end local 11 // int less
end local 10 // int e5
end local 9 // int e4
end local 8 // int e1
end local 7 // int e2
end local 6 // int e3
end local 5 // int seventh
end local 4 // int length
end local 3 // boolean leftmost
end local 2 // int right
end local 1 // int left
end local 0 // char[] a
LocalVariableTable:
Start End Slot Name Signature
0 154 0 a [C
0 154 1 left I
0 154 2 right I
0 154 3 leftmost Z
1 154 4 length I
4 15 5 i I
5 15 6 j I
7 13 7 ai C
21 36 5 k I
23 34 6 a1 C
24 34 7 a2 C
37 41 5 last C
43 154 5 seventh I
44 154 6 e3 I
45 154 7 e2 I
46 154 8 e1 I
47 154 9 e4 I
48 154 10 e5 I
49 50 11 t C
51 53 11 t C
54 57 11 t C
58 62 11 t C
63 154 11 less I
64 154 12 great I
66 127 13 pivot1 C
67 127 14 pivot2 C
72 93 15 k I
74 92 16 ak C
105 126 15 k I
107 125 16 ak C
129 153 13 pivot C
130 151 14 k I
134 149 15 ak C
MethodParameters:
Name Flags
a
left
right
leftmost
static void sort(byte[], int, int);
descriptor: ([BII)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=8, args_size=3
start local 0 // byte[] a
start local 1 // int left
start local 2 // int right
0: .line 2039
iload 2 /* right */
iload 1 /* left */
isub
bipush 29
if_icmple 17
1: .line 2040
sipush 256
newarray 10
astore 3 /* count */
start local 3 // int[] count
2: .line 2042
iload 1 /* left */
iconst_1
isub
istore 4 /* i */
start local 4 // int i
3: goto 5
4: .line 2043
StackMap locals: int[] int
StackMap stack:
aload 3 /* count */
aload 0 /* a */
iload 4 /* i */
baload
bipush -128
isub
dup2
iaload
iconst_1
iadd
iastore
5: .line 2042
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
iload 4 /* i */
iload 2 /* right */
if_icmple 4
end local 4 // int i
6: .line 2045
sipush 256
istore 4 /* i */
start local 4 // int i
7: iload 2 /* right */
iconst_1
iadd
istore 5 /* k */
start local 5 // int k
8: goto 15
9: .line 2046
StackMap locals: int
StackMap stack:
aload 3 /* count */
iinc 4 /* i */ -1
iload 4 /* i */
iaload
ifeq 9
10: .line 2047
iload 4 /* i */
bipush -128
iadd
i2b
istore 6 /* value */
start local 6 // byte value
11: .line 2048
aload 3 /* count */
iload 4 /* i */
iaload
istore 7 /* s */
start local 7 // int s
12: .line 2051
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
iload 6 /* value */
bastore
13: .line 2052
iinc 7 /* s */ -1
iload 7 /* s */
14: .line 2050
ifgt 12
end local 7 // int s
end local 6 // byte value
15: .line 2045
StackMap locals:
StackMap stack:
iload 5 /* k */
iload 1 /* left */
if_icmpgt 9
end local 5 // int k
end local 4 // int i
end local 3 // int[] count
16: .line 2054
goto 29
17: .line 2055
StackMap locals:
StackMap stack:
iload 1 /* left */
istore 3 /* i */
start local 3 // int i
18: iload 3 /* i */
istore 4 /* j */
start local 4 // int j
19: goto 28
20: .line 2056
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 3 /* i */
iconst_1
iadd
baload
istore 5 /* ai */
start local 5 // byte ai
21: .line 2057
goto 25
22: .line 2058
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 4 /* j */
iconst_1
iadd
aload 0 /* a */
iload 4 /* j */
baload
bastore
23: .line 2059
iload 4 /* j */
iinc 4 /* j */ -1
iload 1 /* left */
if_icmpne 25
24: .line 2060
goto 26
25: .line 2057
StackMap locals:
StackMap stack:
iload 5 /* ai */
aload 0 /* a */
iload 4 /* j */
baload
if_icmplt 22
26: .line 2063
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 4 /* j */
iconst_1
iadd
iload 5 /* ai */
bastore
end local 5 // byte ai
27: .line 2055
iinc 3 /* i */ 1
iload 3 /* i */
istore 4 /* j */
StackMap locals:
StackMap stack:
28: iload 3 /* i */
iload 2 /* right */
if_icmplt 20
end local 4 // int j
end local 3 // int i
29: .line 2066
StackMap locals:
StackMap stack:
return
end local 2 // int right
end local 1 // int left
end local 0 // byte[] a
LocalVariableTable:
Start End Slot Name Signature
0 30 0 a [B
0 30 1 left I
0 30 2 right I
2 16 3 count [I
3 6 4 i I
7 16 4 i I
8 16 5 k I
11 15 6 value B
12 15 7 s I
18 29 3 i I
19 29 4 j I
21 27 5 ai B
MethodParameters:
Name Flags
a
left
right
static void sort(float[], int, int, float[], int, int);
descriptor: ([FII[FII)V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=10, args_size=6
start local 0 // float[] a
start local 1 // int left
start local 2 // int right
start local 3 // float[] work
start local 4 // int workBase
start local 5 // int workLen
0: .line 2084
goto 2
1: .line 2085
StackMap locals:
StackMap stack:
iinc 2 /* right */ -1
2: .line 2084
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmpgt 3
aload 0 /* a */
iload 2 /* right */
faload
invokestatic java.lang.Float.isNaN:(F)Z
ifne 1
3: .line 2087
StackMap locals:
StackMap stack:
iload 2 /* right */
istore 6 /* k */
start local 6 // int k
4: goto 10
5: .line 2088
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 6 /* k */
faload
fstore 7 /* ak */
start local 7 // float ak
6: .line 2089
fload 7 /* ak */
fload 7 /* ak */
fcmpl
ifeq 10
7: .line 2090
aload 0 /* a */
iload 6 /* k */
aload 0 /* a */
iload 2 /* right */
faload
fastore
8: .line 2091
aload 0 /* a */
iload 2 /* right */
fload 7 /* ak */
fastore
9: .line 2092
iinc 2 /* right */ -1
end local 7 // float ak
10: .line 2087
StackMap locals:
StackMap stack:
iinc 6 /* k */ -1
iload 6 /* k */
iload 1 /* left */
if_icmpge 5
end local 6 // int k
11: .line 2099
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
aload 3 /* work */
iload 4 /* workBase */
iload 5 /* workLen */
invokestatic java.util.DualPivotQuicksort.doSort:([FII[FII)V
12: .line 2104
iload 2 /* right */
istore 6 /* hi */
start local 6 // int hi
13: .line 2109
goto 20
14: .line 2110
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 6 /* hi */
iadd
iconst_1
iushr
istore 7 /* middle */
start local 7 // int middle
15: .line 2111
aload 0 /* a */
iload 7 /* middle */
faload
fstore 8 /* middleValue */
start local 8 // float middleValue
16: .line 2113
fload 8 /* middleValue */
fconst_0
fcmpg
ifge 19
17: .line 2114
iload 7 /* middle */
iconst_1
iadd
istore 1 /* left */
18: .line 2115
goto 20
19: .line 2116
StackMap locals: int float
StackMap stack:
iload 7 /* middle */
istore 6 /* hi */
end local 8 // float middleValue
end local 7 // int middle
20: .line 2109
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 6 /* hi */
if_icmplt 14
21: .line 2123
goto 23
22: .line 2124
StackMap locals:
StackMap stack:
iinc 1 /* left */ 1
23: .line 2123
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmpgt 24
aload 0 /* a */
iload 1 /* left */
faload
invokestatic java.lang.Float.floatToRawIntBits:(F)I
iflt 22
24: .line 2148
StackMap locals:
StackMap stack:
iload 1 /* left */
istore 7 /* k */
start local 7 // int k
25: iload 1 /* left */
iconst_1
isub
istore 8 /* p */
start local 8 // int p
26: goto 33
27: .line 2149
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 7 /* k */
faload
fstore 9 /* ak */
start local 9 // float ak
28: .line 2150
fload 9 /* ak */
fconst_0
fcmpl
ifeq 30
29: .line 2151
goto 34
30: .line 2153
StackMap locals: float
StackMap stack:
fload 9 /* ak */
invokestatic java.lang.Float.floatToRawIntBits:(F)I
ifge 33
31: .line 2154
aload 0 /* a */
iload 7 /* k */
fconst_0
fastore
32: .line 2155
aload 0 /* a */
iinc 8 /* p */ 1
iload 8 /* p */
ldc -0.0
fastore
end local 9 // float ak
33: .line 2148
StackMap locals:
StackMap stack:
iinc 7 /* k */ 1
iload 7 /* k */
iload 2 /* right */
if_icmple 27
end local 8 // int p
end local 7 // int k
34: .line 2158
StackMap locals:
StackMap stack:
return
end local 6 // int hi
end local 5 // int workLen
end local 4 // int workBase
end local 3 // float[] work
end local 2 // int right
end local 1 // int left
end local 0 // float[] a
LocalVariableTable:
Start End Slot Name Signature
0 35 0 a [F
0 35 1 left I
0 35 2 right I
0 35 3 work [F
0 35 4 workBase I
0 35 5 workLen I
4 11 6 k I
6 10 7 ak F
13 35 6 hi I
15 20 7 middle I
16 20 8 middleValue F
25 34 7 k I
26 34 8 p I
28 33 9 ak F
MethodParameters:
Name Flags
a
left
right
work
workBase
workLen
private static void doSort(float[], int, int, float[], int, int);
descriptor: ([FII[FII)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=20, args_size=6
start local 0 // float[] a
start local 1 // int left
start local 2 // int right
start local 3 // float[] work
start local 4 // int workBase
start local 5 // int workLen
0: .line 2173
iload 2 /* right */
iload 1 /* left */
isub
sipush 286
if_icmpge 3
1: .line 2174
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([FIIZ)V
2: .line 2175
return
3: .line 2182
StackMap locals:
StackMap stack:
bipush 68
newarray 10
astore 6 /* run */
start local 6 // int[] run
4: .line 2183
iconst_0
istore 7 /* count */
start local 7 // int count
5: aload 6 /* run */
iconst_0
iload 1 /* left */
iastore
6: .line 2186
iload 1 /* left */
istore 8 /* k */
start local 8 // int k
7: goto 28
8: .line 2189
StackMap locals: int[] int int
StackMap stack:
iinc 8 /* k */ 1
9: .line 2188
StackMap locals:
StackMap stack:
iload 8 /* k */
iload 2 /* right */
if_icmpge 10
aload 0 /* a */
iload 8 /* k */
faload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
faload
fcmpl
ifeq 8
10: .line 2190
StackMap locals:
StackMap stack:
iload 8 /* k */
iload 2 /* right */
if_icmpne 11
goto 29
11: .line 2191
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 8 /* k */
faload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
faload
fcmpg
ifge 14
12: .line 2192
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 22
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
faload
aload 0 /* a */
iload 8 /* k */
faload
fcmpg
ifle 12
13: .line 2193
goto 22
StackMap locals:
StackMap stack:
14: aload 0 /* a */
iload 8 /* k */
faload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
faload
fcmpl
ifle 22
15: .line 2194
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 16
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
faload
aload 0 /* a */
iload 8 /* k */
faload
fcmpl
ifge 15
16: .line 2196
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
istore 9 /* lo */
start local 9 // int lo
17: iload 8 /* k */
istore 10 /* hi */
start local 10 // int hi
18: goto 21
19: .line 2197
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 9 /* lo */
faload
fstore 11 /* t */
start local 11 // float t
20: aload 0 /* a */
iload 9 /* lo */
aload 0 /* a */
iload 10 /* hi */
faload
fastore
aload 0 /* a */
iload 10 /* hi */
fload 11 /* t */
fastore
end local 11 // float t
21: .line 2196
StackMap locals:
StackMap stack:
iinc 9 /* lo */ 1
iload 9 /* lo */
iinc 10 /* hi */ -1
iload 10 /* hi */
if_icmplt 19
end local 10 // int hi
end local 9 // int lo
22: .line 2203
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iload 1 /* left */
if_icmple 24
aload 0 /* a */
aload 6 /* run */
iload 7 /* count */
iaload
faload
aload 0 /* a */
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
faload
fcmpl
iflt 24
23: .line 2204
iinc 7 /* count */ -1
24: .line 2211
StackMap locals:
StackMap stack:
iinc 7 /* count */ 1
iload 7 /* count */
bipush 67
if_icmpne 27
25: .line 2212
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([FIIZ)V
26: .line 2213
return
27: .line 2186
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iload 8 /* k */
iastore
StackMap locals:
StackMap stack:
28: iload 8 /* k */
iload 2 /* right */
if_icmplt 9
end local 8 // int k
29: .line 2221
StackMap locals:
StackMap stack:
iload 7 /* count */
ifne 31
30: .line 2223
return
31: .line 2224
StackMap locals:
StackMap stack:
iload 7 /* count */
iconst_1
if_icmpne 33
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
if_icmple 33
32: .line 2228
return
33: .line 2230
StackMap locals:
StackMap stack:
iinc 2 /* right */ 1
34: .line 2231
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
if_icmpge 36
35: .line 2236
aload 6 /* run */
iinc 7 /* count */ 1
iload 7 /* count */
iload 2 /* right */
iastore
36: .line 2240
StackMap locals:
StackMap stack:
iconst_0
istore 8 /* odd */
start local 8 // byte odd
37: .line 2241
iconst_1
istore 9 /* n */
start local 9 // int n
38: goto 40
StackMap locals: int int
StackMap stack:
39: iload 8 /* odd */
iconst_1
ixor
i2b
istore 8 /* odd */
StackMap locals:
StackMap stack:
40: iload 9 /* n */
iconst_1
ishl
dup
istore 9 /* n */
iload 7 /* count */
if_icmplt 39
end local 9 // int n
41: .line 2246
iload 2 /* right */
iload 1 /* left */
isub
istore 12 /* blen */
start local 12 // int blen
42: .line 2247
aload 3 /* work */
ifnull 43
iload 5 /* workLen */
iload 12 /* blen */
if_icmplt 43
iload 4 /* workBase */
iload 12 /* blen */
iadd
aload 3 /* work */
arraylength
if_icmple 45
43: .line 2248
StackMap locals: float[] int int float[] int int int[] int int top top top int
StackMap stack:
iload 12 /* blen */
newarray 6
astore 3 /* work */
44: .line 2249
iconst_0
istore 4 /* workBase */
45: .line 2251
StackMap locals:
StackMap stack:
iload 8 /* odd */
ifne 52
46: .line 2252
aload 0 /* a */
iload 1 /* left */
aload 3 /* work */
iload 4 /* workBase */
iload 12 /* blen */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
47: .line 2253
aload 0 /* a */
astore 9 /* b */
start local 9 // float[] b
48: .line 2254
iconst_0
istore 11 /* bo */
start local 11 // int bo
49: .line 2255
aload 3 /* work */
astore 0 /* a */
50: .line 2256
iload 4 /* workBase */
iload 1 /* left */
isub
istore 10 /* ao */
start local 10 // int ao
51: .line 2257
goto 86
end local 11 // int bo
end local 10 // int ao
end local 9 // float[] b
52: .line 2258
StackMap locals:
StackMap stack:
aload 3 /* work */
astore 9 /* b */
start local 9 // float[] b
53: .line 2259
iconst_0
istore 10 /* ao */
start local 10 // int ao
54: .line 2260
iload 4 /* workBase */
iload 1 /* left */
isub
istore 11 /* bo */
start local 11 // int bo
55: .line 2264
goto 86
56: .line 2265
StackMap locals: float[] int int float[] int int int[] int int float[] int int int
StackMap stack:
iconst_0
dup
istore 13 /* last */
start local 13 // int last
57: iconst_2
iadd
istore 14 /* k */
start local 14 // int k
58: goto 73
59: .line 2266
StackMap locals: int int
StackMap stack:
aload 6 /* run */
iload 14 /* k */
iaload
istore 15 /* hi */
start local 15 // int hi
60: aload 6 /* run */
iload 14 /* k */
iconst_1
isub
iaload
istore 16 /* mi */
start local 16 // int mi
61: .line 2267
aload 6 /* run */
iload 14 /* k */
iconst_2
isub
iaload
istore 17 /* i */
start local 17 // int i
62: iload 17 /* i */
istore 18 /* p */
start local 18 // int p
63: iload 16 /* mi */
istore 19 /* q */
start local 19 // int q
64: goto 70
65: .line 2268
StackMap locals: float[] int int float[] int int int[] int int float[] int int int int int int int int int int
StackMap stack:
iload 19 /* q */
iload 15 /* hi */
if_icmpge 66
iload 18 /* p */
iload 16 /* mi */
if_icmpge 68
aload 0 /* a */
iload 18 /* p */
iload 10 /* ao */
iadd
faload
aload 0 /* a */
iload 19 /* q */
iload 10 /* ao */
iadd
faload
fcmpg
ifgt 68
66: .line 2269
StackMap locals:
StackMap stack:
aload 9 /* b */
iload 17 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 18 /* p */
iinc 18 /* p */ 1
iload 10 /* ao */
iadd
faload
fastore
67: .line 2270
goto 69
68: .line 2271
StackMap locals:
StackMap stack:
aload 9 /* b */
iload 17 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 19 /* q */
iinc 19 /* q */ 1
iload 10 /* ao */
iadd
faload
fastore
69: .line 2267
StackMap locals:
StackMap stack:
iinc 17 /* i */ 1
StackMap locals:
StackMap stack:
70: iload 17 /* i */
iload 15 /* hi */
if_icmplt 65
end local 19 // int q
end local 18 // int p
end local 17 // int i
71: .line 2274
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 15 /* hi */
iastore
end local 16 // int mi
end local 15 // int hi
72: .line 2265
iinc 14 /* k */ 2
StackMap locals: float[] int int float[] int int int[] int int float[] int int int int int
StackMap stack:
73: iload 14 /* k */
iload 7 /* count */
if_icmple 59
end local 14 // int k
74: .line 2276
iload 7 /* count */
iconst_1
iand
ifeq 81
75: .line 2277
iload 2 /* right */
istore 14 /* i */
start local 14 // int i
76: aload 6 /* run */
iload 7 /* count */
iconst_1
isub
iaload
istore 15 /* lo */
start local 15 // int lo
77: goto 79
78: .line 2278
StackMap locals: int
StackMap stack:
aload 9 /* b */
iload 14 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 14 /* i */
iload 10 /* ao */
iadd
faload
fastore
79: .line 2277
StackMap locals:
StackMap stack:
iinc 14 /* i */ -1
iload 14 /* i */
iload 15 /* lo */
if_icmpge 78
end local 15 // int lo
end local 14 // int i
80: .line 2280
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 2 /* right */
iastore
81: .line 2282
StackMap locals:
StackMap stack:
aload 0 /* a */
astore 14 /* t */
start local 14 // float[] t
82: aload 9 /* b */
astore 0 /* a */
aload 14 /* t */
astore 9 /* b */
83: .line 2283
iload 10 /* ao */
istore 15 /* o */
start local 15 // int o
84: iload 11 /* bo */
istore 10 /* ao */
iload 15 /* o */
istore 11 /* bo */
end local 15 // int o
end local 14 // float[] t
85: .line 2264
iload 13 /* last */
istore 7 /* count */
end local 13 // int last
StackMap locals:
StackMap stack:
86: iload 7 /* count */
iconst_1
if_icmpgt 56
87: .line 2285
return
end local 12 // int blen
end local 11 // int bo
end local 10 // int ao
end local 9 // float[] b
end local 8 // byte odd
end local 7 // int count
end local 6 // int[] run
end local 5 // int workLen
end local 4 // int workBase
end local 3 // float[] work
end local 2 // int right
end local 1 // int left
end local 0 // float[] a
LocalVariableTable:
Start End Slot Name Signature
0 88 0 a [F
0 88 1 left I
0 88 2 right I
0 88 3 work [F
0 88 4 workBase I
0 88 5 workLen I
4 88 6 run [I
5 88 7 count I
7 29 8 k I
17 22 9 lo I
18 22 10 hi I
20 21 11 t F
37 88 8 odd B
38 41 9 n I
48 52 9 b [F
53 88 9 b [F
51 52 10 ao I
54 88 10 ao I
49 52 11 bo I
55 88 11 bo I
42 88 12 blen I
57 86 13 last I
58 74 14 k I
60 72 15 hi I
61 72 16 mi I
62 71 17 i I
63 71 18 p I
64 71 19 q I
76 80 14 i I
77 80 15 lo I
82 85 14 t [F
84 85 15 o I
MethodParameters:
Name Flags
a
left
right
work
workBase
workLen
private static void sort(float[], int, int, boolean);
descriptor: ([FIIZ)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=17, args_size=4
start local 0 // float[] a
start local 1 // int left
start local 2 // int right
start local 3 // boolean leftmost
0: .line 2296
iload 2 /* right */
iload 1 /* left */
isub
iconst_1
iadd
istore 4 /* length */
start local 4 // int length
1: .line 2299
iload 4 /* length */
bipush 47
if_icmpge 42
2: .line 2300
iload 3 /* leftmost */
ifeq 16
3: .line 2306
iload 1 /* left */
istore 5 /* i */
start local 5 // int i
4: iload 5 /* i */
istore 6 /* j */
start local 6 // int j
5: goto 14
6: .line 2307
StackMap locals: int int int
StackMap stack:
aload 0 /* a */
iload 5 /* i */
iconst_1
iadd
faload
fstore 7 /* ai */
start local 7 // float ai
7: .line 2308
goto 11
8: .line 2309
StackMap locals: float
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
aload 0 /* a */
iload 6 /* j */
faload
fastore
9: .line 2310
iload 6 /* j */
iinc 6 /* j */ -1
iload 1 /* left */
if_icmpne 11
10: .line 2311
goto 12
11: .line 2308
StackMap locals:
StackMap stack:
fload 7 /* ai */
aload 0 /* a */
iload 6 /* j */
faload
fcmpg
iflt 8
12: .line 2314
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
fload 7 /* ai */
fastore
end local 7 // float ai
13: .line 2306
iinc 5 /* i */ 1
iload 5 /* i */
istore 6 /* j */
StackMap locals:
StackMap stack:
14: iload 5 /* i */
iload 2 /* right */
if_icmplt 6
end local 6 // int j
end local 5 // int i
15: .line 2316
goto 41
16: .line 2321
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmplt 18
17: .line 2322
return
18: .line 2324
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 1 /* left */ 1
iload 1 /* left */
faload
aload 0 /* a */
iload 1 /* left */
iconst_1
isub
faload
19: .line 2320
fcmpl
ifge 16
20: .line 2334
iload 1 /* left */
istore 5 /* k */
start local 5 // int k
21: goto 35
22: .line 2335
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 5 /* k */
faload
fstore 6 /* a1 */
start local 6 // float a1
23: aload 0 /* a */
iload 1 /* left */
faload
fstore 7 /* a2 */
start local 7 // float a2
24: .line 2337
fload 6 /* a1 */
fload 7 /* a2 */
fcmpg
ifge 28
25: .line 2338
fload 6 /* a1 */
fstore 7 /* a2 */
aload 0 /* a */
iload 1 /* left */
faload
fstore 6 /* a1 */
26: .line 2340
goto 28
27: .line 2341
StackMap locals: float float
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_2
iadd
aload 0 /* a */
iload 5 /* k */
faload
fastore
28: .line 2340
StackMap locals:
StackMap stack:
fload 6 /* a1 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
faload
fcmpg
iflt 27
29: .line 2343
aload 0 /* a */
iinc 5 /* k */ 1
iload 5 /* k */
iconst_1
iadd
fload 6 /* a1 */
fastore
30: .line 2345
goto 32
31: .line 2346
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
aload 0 /* a */
iload 5 /* k */
faload
fastore
32: .line 2345
StackMap locals:
StackMap stack:
fload 7 /* a2 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
faload
fcmpg
iflt 31
33: .line 2348
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
fload 7 /* a2 */
fastore
end local 7 // float a2
end local 6 // float a1
34: .line 2334
iinc 1 /* left */ 1
iload 1 /* left */
istore 5 /* k */
StackMap locals:
StackMap stack:
35: iinc 1 /* left */ 1
iload 1 /* left */
iload 2 /* right */
if_icmple 22
end local 5 // int k
36: .line 2350
aload 0 /* a */
iload 2 /* right */
faload
fstore 5 /* last */
start local 5 // float last
37: .line 2352
goto 39
38: .line 2353
StackMap locals: float[] int int int int float
StackMap stack:
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
aload 0 /* a */
iload 2 /* right */
faload
fastore
39: .line 2352
StackMap locals:
StackMap stack:
fload 5 /* last */
aload 0 /* a */
iinc 2 /* right */ -1
iload 2 /* right */
faload
fcmpg
iflt 38
40: .line 2355
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
fload 5 /* last */
fastore
end local 5 // float last
41: .line 2357
StackMap locals:
StackMap stack:
return
42: .line 2361
StackMap locals:
StackMap stack:
iload 4 /* length */
iconst_3
ishr
iload 4 /* length */
bipush 6
ishr
iadd
iconst_1
iadd
istore 5 /* seventh */
start local 5 // int seventh
43: .line 2370
iload 1 /* left */
iload 2 /* right */
iadd
iconst_1
iushr
istore 6 /* e3 */
start local 6 // int e3
44: .line 2371
iload 6 /* e3 */
iload 5 /* seventh */
isub
istore 7 /* e2 */
start local 7 // int e2
45: .line 2372
iload 7 /* e2 */
iload 5 /* seventh */
isub
istore 8 /* e1 */
start local 8 // int e1
46: .line 2373
iload 6 /* e3 */
iload 5 /* seventh */
iadd
istore 9 /* e4 */
start local 9 // int e4
47: .line 2374
iload 9 /* e4 */
iload 5 /* seventh */
iadd
istore 10 /* e5 */
start local 10 // int e5
48: .line 2377
aload 0 /* a */
iload 7 /* e2 */
faload
aload 0 /* a */
iload 8 /* e1 */
faload
fcmpg
ifge 50
aload 0 /* a */
iload 7 /* e2 */
faload
fstore 11 /* t */
start local 11 // float t
49: aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
faload
fastore
aload 0 /* a */
iload 8 /* e1 */
fload 11 /* t */
fastore
end local 11 // float t
50: .line 2379
StackMap locals: float[] int int int int int int int int int int
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
faload
aload 0 /* a */
iload 7 /* e2 */
faload
fcmpg
ifge 53
aload 0 /* a */
iload 6 /* e3 */
faload
fstore 11 /* t */
start local 11 // float t
51: aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
faload
fastore
aload 0 /* a */
iload 7 /* e2 */
fload 11 /* t */
fastore
52: .line 2380
fload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
faload
fcmpg
ifge 53
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
faload
fastore
aload 0 /* a */
iload 8 /* e1 */
fload 11 /* t */
fastore
end local 11 // float t
53: .line 2382
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 9 /* e4 */
faload
aload 0 /* a */
iload 6 /* e3 */
faload
fcmpg
ifge 57
aload 0 /* a */
iload 9 /* e4 */
faload
fstore 11 /* t */
start local 11 // float t
54: aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 6 /* e3 */
faload
fastore
aload 0 /* a */
iload 6 /* e3 */
fload 11 /* t */
fastore
55: .line 2383
fload 11 /* t */
aload 0 /* a */
iload 7 /* e2 */
faload
fcmpg
ifge 57
aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
faload
fastore
aload 0 /* a */
iload 7 /* e2 */
fload 11 /* t */
fastore
56: .line 2384
fload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
faload
fcmpg
ifge 57
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
faload
fastore
aload 0 /* a */
iload 8 /* e1 */
fload 11 /* t */
fastore
end local 11 // float t
57: .line 2387
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 10 /* e5 */
faload
aload 0 /* a */
iload 9 /* e4 */
faload
fcmpg
ifge 62
aload 0 /* a */
iload 10 /* e5 */
faload
fstore 11 /* t */
start local 11 // float t
58: aload 0 /* a */
iload 10 /* e5 */
aload 0 /* a */
iload 9 /* e4 */
faload
fastore
aload 0 /* a */
iload 9 /* e4 */
fload 11 /* t */
fastore
59: .line 2388
fload 11 /* t */
aload 0 /* a */
iload 6 /* e3 */
faload
fcmpg
ifge 62
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 6 /* e3 */
faload
fastore
aload 0 /* a */
iload 6 /* e3 */
fload 11 /* t */
fastore
60: .line 2389
fload 11 /* t */
aload 0 /* a */
iload 7 /* e2 */
faload
fcmpg
ifge 62
aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
faload
fastore
aload 0 /* a */
iload 7 /* e2 */
fload 11 /* t */
fastore
61: .line 2390
fload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
faload
fcmpg
ifge 62
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
faload
fastore
aload 0 /* a */
iload 8 /* e1 */
fload 11 /* t */
fastore
end local 11 // float t
62: .line 2396
StackMap locals:
StackMap stack:
iload 1 /* left */
istore 11 /* less */
start local 11 // int less
63: .line 2397
iload 2 /* right */
istore 12 /* great */
start local 12 // int great
64: .line 2399
aload 0 /* a */
iload 8 /* e1 */
faload
aload 0 /* a */
iload 7 /* e2 */
faload
fcmpl
ifeq 128
aload 0 /* a */
iload 7 /* e2 */
faload
aload 0 /* a */
iload 6 /* e3 */
faload
fcmpl
ifeq 128
aload 0 /* a */
iload 6 /* e3 */
faload
aload 0 /* a */
iload 9 /* e4 */
faload
fcmpl
ifeq 128
aload 0 /* a */
iload 9 /* e4 */
faload
aload 0 /* a */
iload 10 /* e5 */
faload
fcmpl
ifeq 128
65: .line 2405
aload 0 /* a */
iload 7 /* e2 */
faload
fstore 13 /* pivot1 */
start local 13 // float pivot1
66: .line 2406
aload 0 /* a */
iload 9 /* e4 */
faload
fstore 14 /* pivot2 */
start local 14 // float pivot2
67: .line 2414
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 1 /* left */
faload
fastore
68: .line 2415
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 2 /* right */
faload
fastore
69: .line 2420
StackMap locals: float[] int int int int int int int int int int int int float float
StackMap stack:
aload 0 /* a */
iinc 11 /* less */ 1
iload 11 /* less */
faload
fload 13 /* pivot1 */
fcmpg
iflt 69
70: .line 2421
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 12 /* great */ -1
iload 12 /* great */
faload
fload 14 /* pivot2 */
fcmpl
ifgt 70
71: .line 2443
iload 11 /* less */
iconst_1
isub
istore 15 /* k */
start local 15 // int k
72: goto 92
73: .line 2444
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
faload
fstore 16 /* ak */
start local 16 // float ak
74: .line 2445
fload 16 /* ak */
fload 13 /* pivot1 */
fcmpg
ifge 79
75: .line 2446
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
faload
fastore
76: .line 2451
aload 0 /* a */
iload 11 /* less */
fload 16 /* ak */
fastore
77: .line 2452
iinc 11 /* less */ 1
78: .line 2453
goto 92
StackMap locals: float
StackMap stack:
79: fload 16 /* ak */
fload 14 /* pivot2 */
fcmpl
ifle 92
80: .line 2454
goto 83
81: .line 2455
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 15 /* k */
if_icmpne 83
82: .line 2456
goto 93
83: .line 2454
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
faload
fload 14 /* pivot2 */
fcmpl
ifgt 81
84: .line 2459
aload 0 /* a */
iload 12 /* great */
faload
fload 13 /* pivot1 */
fcmpg
ifge 89
85: .line 2460
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
faload
fastore
86: .line 2461
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
faload
fastore
87: .line 2462
iinc 11 /* less */ 1
88: .line 2463
goto 90
89: .line 2464
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
faload
fastore
90: .line 2470
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
fload 16 /* ak */
fastore
91: .line 2471
iinc 12 /* great */ -1
end local 16 // float ak
92: .line 2443
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
iload 15 /* k */
iload 12 /* great */
if_icmple 73
end local 15 // int k
93: .line 2476
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 1 /* left */
aload 0 /* a */
iload 11 /* less */
iconst_1
isub
faload
fastore
aload 0 /* a */
iload 11 /* less */
iconst_1
isub
fload 13 /* pivot1 */
fastore
94: .line 2477
aload 0 /* a */
iload 2 /* right */
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
faload
fastore
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
fload 14 /* pivot2 */
fastore
95: .line 2480
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_2
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([FIIZ)V
96: .line 2481
aload 0 /* a */
iload 12 /* great */
iconst_2
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([FIIZ)V
97: .line 2487
iload 11 /* less */
iload 8 /* e1 */
if_icmpge 126
iload 10 /* e5 */
iload 12 /* great */
if_icmpge 126
98: .line 2491
goto 100
99: .line 2492
StackMap locals:
StackMap stack:
iinc 11 /* less */ 1
100: .line 2491
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
faload
fload 13 /* pivot1 */
fcmpl
ifeq 99
101: .line 2495
goto 103
102: .line 2496
StackMap locals:
StackMap stack:
iinc 12 /* great */ -1
103: .line 2495
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
faload
fload 14 /* pivot2 */
fcmpl
ifeq 102
104: .line 2519
iload 11 /* less */
iconst_1
isub
istore 15 /* k */
start local 15 // int k
105: goto 125
106: .line 2520
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
faload
fstore 16 /* ak */
start local 16 // float ak
107: .line 2521
fload 16 /* ak */
fload 13 /* pivot1 */
fcmpl
ifne 112
108: .line 2522
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
faload
fastore
109: .line 2523
aload 0 /* a */
iload 11 /* less */
fload 16 /* ak */
fastore
110: .line 2524
iinc 11 /* less */ 1
111: .line 2525
goto 125
StackMap locals: float
StackMap stack:
112: fload 16 /* ak */
fload 14 /* pivot2 */
fcmpl
ifne 125
113: .line 2526
goto 116
114: .line 2527
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 15 /* k */
if_icmpne 116
115: .line 2528
goto 126
116: .line 2526
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
faload
fload 14 /* pivot2 */
fcmpl
ifeq 114
117: .line 2531
aload 0 /* a */
iload 12 /* great */
faload
fload 13 /* pivot1 */
fcmpl
ifne 122
118: .line 2532
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
faload
fastore
119: .line 2541
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
faload
fastore
120: .line 2542
iinc 11 /* less */ 1
121: .line 2543
goto 123
122: .line 2544
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
faload
fastore
123: .line 2546
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
fload 16 /* ak */
fastore
124: .line 2547
iinc 12 /* great */ -1
end local 16 // float ak
125: .line 2519
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
iload 15 /* k */
iload 12 /* great */
if_icmple 106
end local 15 // int k
126: .line 2553
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
iload 12 /* great */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([FIIZ)V
end local 14 // float pivot2
end local 13 // float pivot1
127: .line 2555
goto 153
128: .line 2560
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
faload
fstore 13 /* pivot */
start local 13 // float pivot
129: .line 2582
iload 11 /* less */
istore 14 /* k */
start local 14 // int k
130: goto 150
131: .line 2583
StackMap locals: float int
StackMap stack:
aload 0 /* a */
iload 14 /* k */
faload
fload 13 /* pivot */
fcmpl
ifne 133
132: .line 2584
goto 149
133: .line 2586
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 14 /* k */
faload
fstore 15 /* ak */
start local 15 // float ak
134: .line 2587
fload 15 /* ak */
fload 13 /* pivot */
fcmpg
ifge 140
135: .line 2588
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 11 /* less */
faload
fastore
136: .line 2589
aload 0 /* a */
iload 11 /* less */
fload 15 /* ak */
fastore
137: .line 2590
iinc 11 /* less */ 1
138: .line 2591
goto 149
139: .line 2593
StackMap locals: float
StackMap stack:
iinc 12 /* great */ -1
140: .line 2592
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
faload
fload 13 /* pivot */
fcmpl
ifgt 139
141: .line 2595
aload 0 /* a */
iload 12 /* great */
faload
fload 13 /* pivot */
fcmpg
ifge 146
142: .line 2596
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 11 /* less */
faload
fastore
143: .line 2597
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
faload
fastore
144: .line 2598
iinc 11 /* less */ 1
145: .line 2599
goto 147
146: .line 2608
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 12 /* great */
faload
fastore
147: .line 2610
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
fload 15 /* ak */
fastore
148: .line 2611
iinc 12 /* great */ -1
end local 15 // float ak
149: .line 2582
StackMap locals:
StackMap stack:
iinc 14 /* k */ 1
StackMap locals:
StackMap stack:
150: iload 14 /* k */
iload 12 /* great */
if_icmple 131
end local 14 // int k
151: .line 2620
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_1
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([FIIZ)V
152: .line 2621
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([FIIZ)V
end local 13 // float pivot
153: .line 2623
StackMap locals:
StackMap stack:
return
end local 12 // int great
end local 11 // int less
end local 10 // int e5
end local 9 // int e4
end local 8 // int e1
end local 7 // int e2
end local 6 // int e3
end local 5 // int seventh
end local 4 // int length
end local 3 // boolean leftmost
end local 2 // int right
end local 1 // int left
end local 0 // float[] a
LocalVariableTable:
Start End Slot Name Signature
0 154 0 a [F
0 154 1 left I
0 154 2 right I
0 154 3 leftmost Z
1 154 4 length I
4 15 5 i I
5 15 6 j I
7 13 7 ai F
21 36 5 k I
23 34 6 a1 F
24 34 7 a2 F
37 41 5 last F
43 154 5 seventh I
44 154 6 e3 I
45 154 7 e2 I
46 154 8 e1 I
47 154 9 e4 I
48 154 10 e5 I
49 50 11 t F
51 53 11 t F
54 57 11 t F
58 62 11 t F
63 154 11 less I
64 154 12 great I
66 127 13 pivot1 F
67 127 14 pivot2 F
72 93 15 k I
74 92 16 ak F
105 126 15 k I
107 125 16 ak F
129 153 13 pivot F
130 151 14 k I
134 149 15 ak F
MethodParameters:
Name Flags
a
left
right
leftmost
static void sort(double[], int, int, double[], int, int);
descriptor: ([DII[DII)V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=11, args_size=6
start local 0 // double[] a
start local 1 // int left
start local 2 // int right
start local 3 // double[] work
start local 4 // int workBase
start local 5 // int workLen
0: .line 2641
goto 2
1: .line 2642
StackMap locals:
StackMap stack:
iinc 2 /* right */ -1
2: .line 2641
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmpgt 3
aload 0 /* a */
iload 2 /* right */
daload
invokestatic java.lang.Double.isNaN:(D)Z
ifne 1
3: .line 2644
StackMap locals:
StackMap stack:
iload 2 /* right */
istore 6 /* k */
start local 6 // int k
4: goto 10
5: .line 2645
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 6 /* k */
daload
dstore 7 /* ak */
start local 7 // double ak
6: .line 2646
dload 7 /* ak */
dload 7 /* ak */
dcmpl
ifeq 10
7: .line 2647
aload 0 /* a */
iload 6 /* k */
aload 0 /* a */
iload 2 /* right */
daload
dastore
8: .line 2648
aload 0 /* a */
iload 2 /* right */
dload 7 /* ak */
dastore
9: .line 2649
iinc 2 /* right */ -1
end local 7 // double ak
10: .line 2644
StackMap locals:
StackMap stack:
iinc 6 /* k */ -1
iload 6 /* k */
iload 1 /* left */
if_icmpge 5
end local 6 // int k
11: .line 2656
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
aload 3 /* work */
iload 4 /* workBase */
iload 5 /* workLen */
invokestatic java.util.DualPivotQuicksort.doSort:([DII[DII)V
12: .line 2661
iload 2 /* right */
istore 6 /* hi */
start local 6 // int hi
13: .line 2666
goto 20
14: .line 2667
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 6 /* hi */
iadd
iconst_1
iushr
istore 7 /* middle */
start local 7 // int middle
15: .line 2668
aload 0 /* a */
iload 7 /* middle */
daload
dstore 8 /* middleValue */
start local 8 // double middleValue
16: .line 2670
dload 8 /* middleValue */
dconst_0
dcmpg
ifge 19
17: .line 2671
iload 7 /* middle */
iconst_1
iadd
istore 1 /* left */
18: .line 2672
goto 20
19: .line 2673
StackMap locals: int double
StackMap stack:
iload 7 /* middle */
istore 6 /* hi */
end local 8 // double middleValue
end local 7 // int middle
20: .line 2666
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 6 /* hi */
if_icmplt 14
21: .line 2680
goto 23
22: .line 2681
StackMap locals:
StackMap stack:
iinc 1 /* left */ 1
23: .line 2680
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmpgt 24
aload 0 /* a */
iload 1 /* left */
daload
invokestatic java.lang.Double.doubleToRawLongBits:(D)J
lconst_0
lcmp
iflt 22
24: .line 2705
StackMap locals:
StackMap stack:
iload 1 /* left */
istore 7 /* k */
start local 7 // int k
25: iload 1 /* left */
iconst_1
isub
istore 8 /* p */
start local 8 // int p
26: goto 33
27: .line 2706
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 7 /* k */
daload
dstore 9 /* ak */
start local 9 // double ak
28: .line 2707
dload 9 /* ak */
dconst_0
dcmpl
ifeq 30
29: .line 2708
goto 34
30: .line 2710
StackMap locals: double
StackMap stack:
dload 9 /* ak */
invokestatic java.lang.Double.doubleToRawLongBits:(D)J
lconst_0
lcmp
ifge 33
31: .line 2711
aload 0 /* a */
iload 7 /* k */
dconst_0
dastore
32: .line 2712
aload 0 /* a */
iinc 8 /* p */ 1
iload 8 /* p */
ldc -0.0
dastore
end local 9 // double ak
33: .line 2705
StackMap locals:
StackMap stack:
iinc 7 /* k */ 1
iload 7 /* k */
iload 2 /* right */
if_icmple 27
end local 8 // int p
end local 7 // int k
34: .line 2715
StackMap locals:
StackMap stack:
return
end local 6 // int hi
end local 5 // int workLen
end local 4 // int workBase
end local 3 // double[] work
end local 2 // int right
end local 1 // int left
end local 0 // double[] a
LocalVariableTable:
Start End Slot Name Signature
0 35 0 a [D
0 35 1 left I
0 35 2 right I
0 35 3 work [D
0 35 4 workBase I
0 35 5 workLen I
4 11 6 k I
6 10 7 ak D
13 35 6 hi I
15 20 7 middle I
16 20 8 middleValue D
25 34 7 k I
26 34 8 p I
28 33 9 ak D
MethodParameters:
Name Flags
a
left
right
work
workBase
workLen
private static void doSort(double[], int, int, double[], int, int);
descriptor: ([DII[DII)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=20, args_size=6
start local 0 // double[] a
start local 1 // int left
start local 2 // int right
start local 3 // double[] work
start local 4 // int workBase
start local 5 // int workLen
0: .line 2730
iload 2 /* right */
iload 1 /* left */
isub
sipush 286
if_icmpge 3
1: .line 2731
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([DIIZ)V
2: .line 2732
return
3: .line 2739
StackMap locals:
StackMap stack:
bipush 68
newarray 10
astore 6 /* run */
start local 6 // int[] run
4: .line 2740
iconst_0
istore 7 /* count */
start local 7 // int count
5: aload 6 /* run */
iconst_0
iload 1 /* left */
iastore
6: .line 2743
iload 1 /* left */
istore 8 /* k */
start local 8 // int k
7: goto 28
8: .line 2746
StackMap locals: int[] int int
StackMap stack:
iinc 8 /* k */ 1
9: .line 2745
StackMap locals:
StackMap stack:
iload 8 /* k */
iload 2 /* right */
if_icmpge 10
aload 0 /* a */
iload 8 /* k */
daload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
daload
dcmpl
ifeq 8
10: .line 2747
StackMap locals:
StackMap stack:
iload 8 /* k */
iload 2 /* right */
if_icmpne 11
goto 29
11: .line 2748
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 8 /* k */
daload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
daload
dcmpg
ifge 14
12: .line 2749
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 22
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
daload
aload 0 /* a */
iload 8 /* k */
daload
dcmpg
ifle 12
13: .line 2750
goto 22
StackMap locals:
StackMap stack:
14: aload 0 /* a */
iload 8 /* k */
daload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
daload
dcmpl
ifle 22
15: .line 2751
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 16
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
daload
aload 0 /* a */
iload 8 /* k */
daload
dcmpl
ifge 15
16: .line 2753
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
istore 9 /* lo */
start local 9 // int lo
17: iload 8 /* k */
istore 10 /* hi */
start local 10 // int hi
18: goto 21
19: .line 2754
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 9 /* lo */
daload
dstore 11 /* t */
start local 11 // double t
20: aload 0 /* a */
iload 9 /* lo */
aload 0 /* a */
iload 10 /* hi */
daload
dastore
aload 0 /* a */
iload 10 /* hi */
dload 11 /* t */
dastore
end local 11 // double t
21: .line 2753
StackMap locals:
StackMap stack:
iinc 9 /* lo */ 1
iload 9 /* lo */
iinc 10 /* hi */ -1
iload 10 /* hi */
if_icmplt 19
end local 10 // int hi
end local 9 // int lo
22: .line 2760
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iload 1 /* left */
if_icmple 24
aload 0 /* a */
aload 6 /* run */
iload 7 /* count */
iaload
daload
aload 0 /* a */
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
daload
dcmpl
iflt 24
23: .line 2761
iinc 7 /* count */ -1
24: .line 2768
StackMap locals:
StackMap stack:
iinc 7 /* count */ 1
iload 7 /* count */
bipush 67
if_icmpne 27
25: .line 2769
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([DIIZ)V
26: .line 2770
return
27: .line 2743
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iload 8 /* k */
iastore
StackMap locals:
StackMap stack:
28: iload 8 /* k */
iload 2 /* right */
if_icmplt 9
end local 8 // int k
29: .line 2778
StackMap locals:
StackMap stack:
iload 7 /* count */
ifne 31
30: .line 2780
return
31: .line 2781
StackMap locals:
StackMap stack:
iload 7 /* count */
iconst_1
if_icmpne 33
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
if_icmple 33
32: .line 2785
return
33: .line 2787
StackMap locals:
StackMap stack:
iinc 2 /* right */ 1
34: .line 2788
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
if_icmpge 36
35: .line 2793
aload 6 /* run */
iinc 7 /* count */ 1
iload 7 /* count */
iload 2 /* right */
iastore
36: .line 2797
StackMap locals:
StackMap stack:
iconst_0
istore 8 /* odd */
start local 8 // byte odd
37: .line 2798
iconst_1
istore 9 /* n */
start local 9 // int n
38: goto 40
StackMap locals: int int
StackMap stack:
39: iload 8 /* odd */
iconst_1
ixor
i2b
istore 8 /* odd */
StackMap locals:
StackMap stack:
40: iload 9 /* n */
iconst_1
ishl
dup
istore 9 /* n */
iload 7 /* count */
if_icmplt 39
end local 9 // int n
41: .line 2803
iload 2 /* right */
iload 1 /* left */
isub
istore 12 /* blen */
start local 12 // int blen
42: .line 2804
aload 3 /* work */
ifnull 43
iload 5 /* workLen */
iload 12 /* blen */
if_icmplt 43
iload 4 /* workBase */
iload 12 /* blen */
iadd
aload 3 /* work */
arraylength
if_icmple 45
43: .line 2805
StackMap locals: double[] int int double[] int int int[] int int top top top int
StackMap stack:
iload 12 /* blen */
newarray 7
astore 3 /* work */
44: .line 2806
iconst_0
istore 4 /* workBase */
45: .line 2808
StackMap locals:
StackMap stack:
iload 8 /* odd */
ifne 52
46: .line 2809
aload 0 /* a */
iload 1 /* left */
aload 3 /* work */
iload 4 /* workBase */
iload 12 /* blen */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
47: .line 2810
aload 0 /* a */
astore 9 /* b */
start local 9 // double[] b
48: .line 2811
iconst_0
istore 11 /* bo */
start local 11 // int bo
49: .line 2812
aload 3 /* work */
astore 0 /* a */
50: .line 2813
iload 4 /* workBase */
iload 1 /* left */
isub
istore 10 /* ao */
start local 10 // int ao
51: .line 2814
goto 86
end local 11 // int bo
end local 10 // int ao
end local 9 // double[] b
52: .line 2815
StackMap locals:
StackMap stack:
aload 3 /* work */
astore 9 /* b */
start local 9 // double[] b
53: .line 2816
iconst_0
istore 10 /* ao */
start local 10 // int ao
54: .line 2817
iload 4 /* workBase */
iload 1 /* left */
isub
istore 11 /* bo */
start local 11 // int bo
55: .line 2821
goto 86
56: .line 2822
StackMap locals: double[] int int double[] int int int[] int int double[] int int int
StackMap stack:
iconst_0
dup
istore 13 /* last */
start local 13 // int last
57: iconst_2
iadd
istore 14 /* k */
start local 14 // int k
58: goto 73
59: .line 2823
StackMap locals: int int
StackMap stack:
aload 6 /* run */
iload 14 /* k */
iaload
istore 15 /* hi */
start local 15 // int hi
60: aload 6 /* run */
iload 14 /* k */
iconst_1
isub
iaload
istore 16 /* mi */
start local 16 // int mi
61: .line 2824
aload 6 /* run */
iload 14 /* k */
iconst_2
isub
iaload
istore 17 /* i */
start local 17 // int i
62: iload 17 /* i */
istore 18 /* p */
start local 18 // int p
63: iload 16 /* mi */
istore 19 /* q */
start local 19 // int q
64: goto 70
65: .line 2825
StackMap locals: double[] int int double[] int int int[] int int double[] int int int int int int int int int int
StackMap stack:
iload 19 /* q */
iload 15 /* hi */
if_icmpge 66
iload 18 /* p */
iload 16 /* mi */
if_icmpge 68
aload 0 /* a */
iload 18 /* p */
iload 10 /* ao */
iadd
daload
aload 0 /* a */
iload 19 /* q */
iload 10 /* ao */
iadd
daload
dcmpg
ifgt 68
66: .line 2826
StackMap locals:
StackMap stack:
aload 9 /* b */
iload 17 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 18 /* p */
iinc 18 /* p */ 1
iload 10 /* ao */
iadd
daload
dastore
67: .line 2827
goto 69
68: .line 2828
StackMap locals:
StackMap stack:
aload 9 /* b */
iload 17 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 19 /* q */
iinc 19 /* q */ 1
iload 10 /* ao */
iadd
daload
dastore
69: .line 2824
StackMap locals:
StackMap stack:
iinc 17 /* i */ 1
StackMap locals:
StackMap stack:
70: iload 17 /* i */
iload 15 /* hi */
if_icmplt 65
end local 19 // int q
end local 18 // int p
end local 17 // int i
71: .line 2831
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 15 /* hi */
iastore
end local 16 // int mi
end local 15 // int hi
72: .line 2822
iinc 14 /* k */ 2
StackMap locals: double[] int int double[] int int int[] int int double[] int int int int int
StackMap stack:
73: iload 14 /* k */
iload 7 /* count */
if_icmple 59
end local 14 // int k
74: .line 2833
iload 7 /* count */
iconst_1
iand
ifeq 81
75: .line 2834
iload 2 /* right */
istore 14 /* i */
start local 14 // int i
76: aload 6 /* run */
iload 7 /* count */
iconst_1
isub
iaload
istore 15 /* lo */
start local 15 // int lo
77: goto 79
78: .line 2835
StackMap locals: int
StackMap stack:
aload 9 /* b */
iload 14 /* i */
iload 11 /* bo */
iadd
aload 0 /* a */
iload 14 /* i */
iload 10 /* ao */
iadd
daload
dastore
79: .line 2834
StackMap locals:
StackMap stack:
iinc 14 /* i */ -1
iload 14 /* i */
iload 15 /* lo */
if_icmpge 78
end local 15 // int lo
end local 14 // int i
80: .line 2837
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 2 /* right */
iastore
81: .line 2839
StackMap locals:
StackMap stack:
aload 0 /* a */
astore 14 /* t */
start local 14 // double[] t
82: aload 9 /* b */
astore 0 /* a */
aload 14 /* t */
astore 9 /* b */
83: .line 2840
iload 10 /* ao */
istore 15 /* o */
start local 15 // int o
84: iload 11 /* bo */
istore 10 /* ao */
iload 15 /* o */
istore 11 /* bo */
end local 15 // int o
end local 14 // double[] t
85: .line 2821
iload 13 /* last */
istore 7 /* count */
end local 13 // int last
StackMap locals:
StackMap stack:
86: iload 7 /* count */
iconst_1
if_icmpgt 56
87: .line 2842
return
end local 12 // int blen
end local 11 // int bo
end local 10 // int ao
end local 9 // double[] b
end local 8 // byte odd
end local 7 // int count
end local 6 // int[] run
end local 5 // int workLen
end local 4 // int workBase
end local 3 // double[] work
end local 2 // int right
end local 1 // int left
end local 0 // double[] a
LocalVariableTable:
Start End Slot Name Signature
0 88 0 a [D
0 88 1 left I
0 88 2 right I
0 88 3 work [D
0 88 4 workBase I
0 88 5 workLen I
4 88 6 run [I
5 88 7 count I
7 29 8 k I
17 22 9 lo I
18 22 10 hi I
20 21 11 t D
37 88 8 odd B
38 41 9 n I
48 52 9 b [D
53 88 9 b [D
51 52 10 ao I
54 88 10 ao I
49 52 11 bo I
55 88 11 bo I
42 88 12 blen I
57 86 13 last I
58 74 14 k I
60 72 15 hi I
61 72 16 mi I
62 71 17 i I
63 71 18 p I
64 71 19 q I
76 80 14 i I
77 80 15 lo I
82 85 14 t [D
84 85 15 o I
MethodParameters:
Name Flags
a
left
right
work
workBase
workLen
private static void sort(double[], int, int, boolean);
descriptor: ([DIIZ)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=20, args_size=4
start local 0 // double[] a
start local 1 // int left
start local 2 // int right
start local 3 // boolean leftmost
0: .line 2853
iload 2 /* right */
iload 1 /* left */
isub
iconst_1
iadd
istore 4 /* length */
start local 4 // int length
1: .line 2856
iload 4 /* length */
bipush 47
if_icmpge 42
2: .line 2857
iload 3 /* leftmost */
ifeq 16
3: .line 2863
iload 1 /* left */
istore 5 /* i */
start local 5 // int i
4: iload 5 /* i */
istore 6 /* j */
start local 6 // int j
5: goto 14
6: .line 2864
StackMap locals: int int int
StackMap stack:
aload 0 /* a */
iload 5 /* i */
iconst_1
iadd
daload
dstore 7 /* ai */
start local 7 // double ai
7: .line 2865
goto 11
8: .line 2866
StackMap locals: double
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
aload 0 /* a */
iload 6 /* j */
daload
dastore
9: .line 2867
iload 6 /* j */
iinc 6 /* j */ -1
iload 1 /* left */
if_icmpne 11
10: .line 2868
goto 12
11: .line 2865
StackMap locals:
StackMap stack:
dload 7 /* ai */
aload 0 /* a */
iload 6 /* j */
daload
dcmpg
iflt 8
12: .line 2871
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
dload 7 /* ai */
dastore
end local 7 // double ai
13: .line 2863
iinc 5 /* i */ 1
iload 5 /* i */
istore 6 /* j */
StackMap locals:
StackMap stack:
14: iload 5 /* i */
iload 2 /* right */
if_icmplt 6
end local 6 // int j
end local 5 // int i
15: .line 2873
goto 41
16: .line 2878
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmplt 18
17: .line 2879
return
18: .line 2881
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 1 /* left */ 1
iload 1 /* left */
daload
aload 0 /* a */
iload 1 /* left */
iconst_1
isub
daload
19: .line 2877
dcmpl
ifge 16
20: .line 2891
iload 1 /* left */
istore 5 /* k */
start local 5 // int k
21: goto 35
22: .line 2892
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 5 /* k */
daload
dstore 6 /* a1 */
start local 6 // double a1
23: aload 0 /* a */
iload 1 /* left */
daload
dstore 8 /* a2 */
start local 8 // double a2
24: .line 2894
dload 6 /* a1 */
dload 8 /* a2 */
dcmpg
ifge 28
25: .line 2895
dload 6 /* a1 */
dstore 8 /* a2 */
aload 0 /* a */
iload 1 /* left */
daload
dstore 6 /* a1 */
26: .line 2897
goto 28
27: .line 2898
StackMap locals: double double
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_2
iadd
aload 0 /* a */
iload 5 /* k */
daload
dastore
28: .line 2897
StackMap locals:
StackMap stack:
dload 6 /* a1 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
daload
dcmpg
iflt 27
29: .line 2900
aload 0 /* a */
iinc 5 /* k */ 1
iload 5 /* k */
iconst_1
iadd
dload 6 /* a1 */
dastore
30: .line 2902
goto 32
31: .line 2903
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
aload 0 /* a */
iload 5 /* k */
daload
dastore
32: .line 2902
StackMap locals:
StackMap stack:
dload 8 /* a2 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
daload
dcmpg
iflt 31
33: .line 2905
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
dload 8 /* a2 */
dastore
end local 8 // double a2
end local 6 // double a1
34: .line 2891
iinc 1 /* left */ 1
iload 1 /* left */
istore 5 /* k */
StackMap locals:
StackMap stack:
35: iinc 1 /* left */ 1
iload 1 /* left */
iload 2 /* right */
if_icmple 22
end local 5 // int k
36: .line 2907
aload 0 /* a */
iload 2 /* right */
daload
dstore 5 /* last */
start local 5 // double last
37: .line 2909
goto 39
38: .line 2910
StackMap locals: double[] int int int int double
StackMap stack:
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
aload 0 /* a */
iload 2 /* right */
daload
dastore
39: .line 2909
StackMap locals:
StackMap stack:
dload 5 /* last */
aload 0 /* a */
iinc 2 /* right */ -1
iload 2 /* right */
daload
dcmpg
iflt 38
40: .line 2912
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
dload 5 /* last */
dastore
end local 5 // double last
41: .line 2914
StackMap locals:
StackMap stack:
return
42: .line 2918
StackMap locals:
StackMap stack:
iload 4 /* length */
iconst_3
ishr
iload 4 /* length */
bipush 6
ishr
iadd
iconst_1
iadd
istore 5 /* seventh */
start local 5 // int seventh
43: .line 2927
iload 1 /* left */
iload 2 /* right */
iadd
iconst_1
iushr
istore 6 /* e3 */
start local 6 // int e3
44: .line 2928
iload 6 /* e3 */
iload 5 /* seventh */
isub
istore 7 /* e2 */
start local 7 // int e2
45: .line 2929
iload 7 /* e2 */
iload 5 /* seventh */
isub
istore 8 /* e1 */
start local 8 // int e1
46: .line 2930
iload 6 /* e3 */
iload 5 /* seventh */
iadd
istore 9 /* e4 */
start local 9 // int e4
47: .line 2931
iload 9 /* e4 */
iload 5 /* seventh */
iadd
istore 10 /* e5 */
start local 10 // int e5
48: .line 2934
aload 0 /* a */
iload 7 /* e2 */
daload
aload 0 /* a */
iload 8 /* e1 */
daload
dcmpg
ifge 50
aload 0 /* a */
iload 7 /* e2 */
daload
dstore 11 /* t */
start local 11 // double t
49: aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
daload
dastore
aload 0 /* a */
iload 8 /* e1 */
dload 11 /* t */
dastore
end local 11 // double t
50: .line 2936
StackMap locals: double[] int int int int int int int int int int
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
daload
aload 0 /* a */
iload 7 /* e2 */
daload
dcmpg
ifge 53
aload 0 /* a */
iload 6 /* e3 */
daload
dstore 11 /* t */
start local 11 // double t
51: aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
daload
dastore
aload 0 /* a */
iload 7 /* e2 */
dload 11 /* t */
dastore
52: .line 2937
dload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
daload
dcmpg
ifge 53
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
daload
dastore
aload 0 /* a */
iload 8 /* e1 */
dload 11 /* t */
dastore
end local 11 // double t
53: .line 2939
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 9 /* e4 */
daload
aload 0 /* a */
iload 6 /* e3 */
daload
dcmpg
ifge 57
aload 0 /* a */
iload 9 /* e4 */
daload
dstore 11 /* t */
start local 11 // double t
54: aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 6 /* e3 */
daload
dastore
aload 0 /* a */
iload 6 /* e3 */
dload 11 /* t */
dastore
55: .line 2940
dload 11 /* t */
aload 0 /* a */
iload 7 /* e2 */
daload
dcmpg
ifge 57
aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
daload
dastore
aload 0 /* a */
iload 7 /* e2 */
dload 11 /* t */
dastore
56: .line 2941
dload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
daload
dcmpg
ifge 57
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
daload
dastore
aload 0 /* a */
iload 8 /* e1 */
dload 11 /* t */
dastore
end local 11 // double t
57: .line 2944
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 10 /* e5 */
daload
aload 0 /* a */
iload 9 /* e4 */
daload
dcmpg
ifge 62
aload 0 /* a */
iload 10 /* e5 */
daload
dstore 11 /* t */
start local 11 // double t
58: aload 0 /* a */
iload 10 /* e5 */
aload 0 /* a */
iload 9 /* e4 */
daload
dastore
aload 0 /* a */
iload 9 /* e4 */
dload 11 /* t */
dastore
59: .line 2945
dload 11 /* t */
aload 0 /* a */
iload 6 /* e3 */
daload
dcmpg
ifge 62
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 6 /* e3 */
daload
dastore
aload 0 /* a */
iload 6 /* e3 */
dload 11 /* t */
dastore
60: .line 2946
dload 11 /* t */
aload 0 /* a */
iload 7 /* e2 */
daload
dcmpg
ifge 62
aload 0 /* a */
iload 6 /* e3 */
aload 0 /* a */
iload 7 /* e2 */
daload
dastore
aload 0 /* a */
iload 7 /* e2 */
dload 11 /* t */
dastore
61: .line 2947
dload 11 /* t */
aload 0 /* a */
iload 8 /* e1 */
daload
dcmpg
ifge 62
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 8 /* e1 */
daload
dastore
aload 0 /* a */
iload 8 /* e1 */
dload 11 /* t */
dastore
end local 11 // double t
62: .line 2953
StackMap locals:
StackMap stack:
iload 1 /* left */
istore 11 /* less */
start local 11 // int less
63: .line 2954
iload 2 /* right */
istore 12 /* great */
start local 12 // int great
64: .line 2956
aload 0 /* a */
iload 8 /* e1 */
daload
aload 0 /* a */
iload 7 /* e2 */
daload
dcmpl
ifeq 128
aload 0 /* a */
iload 7 /* e2 */
daload
aload 0 /* a */
iload 6 /* e3 */
daload
dcmpl
ifeq 128
aload 0 /* a */
iload 6 /* e3 */
daload
aload 0 /* a */
iload 9 /* e4 */
daload
dcmpl
ifeq 128
aload 0 /* a */
iload 9 /* e4 */
daload
aload 0 /* a */
iload 10 /* e5 */
daload
dcmpl
ifeq 128
65: .line 2962
aload 0 /* a */
iload 7 /* e2 */
daload
dstore 13 /* pivot1 */
start local 13 // double pivot1
66: .line 2963
aload 0 /* a */
iload 9 /* e4 */
daload
dstore 15 /* pivot2 */
start local 15 // double pivot2
67: .line 2971
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 1 /* left */
daload
dastore
68: .line 2972
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 2 /* right */
daload
dastore
69: .line 2977
StackMap locals: double[] int int int int int int int int int int int int double double
StackMap stack:
aload 0 /* a */
iinc 11 /* less */ 1
iload 11 /* less */
daload
dload 13 /* pivot1 */
dcmpg
iflt 69
70: .line 2978
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 12 /* great */ -1
iload 12 /* great */
daload
dload 15 /* pivot2 */
dcmpl
ifgt 70
71: .line 3000
iload 11 /* less */
iconst_1
isub
istore 17 /* k */
start local 17 // int k
72: goto 92
73: .line 3001
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 17 /* k */
daload
dstore 18 /* ak */
start local 18 // double ak
74: .line 3002
dload 18 /* ak */
dload 13 /* pivot1 */
dcmpg
ifge 79
75: .line 3003
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 11 /* less */
daload
dastore
76: .line 3008
aload 0 /* a */
iload 11 /* less */
dload 18 /* ak */
dastore
77: .line 3009
iinc 11 /* less */ 1
78: .line 3010
goto 92
StackMap locals: double
StackMap stack:
79: dload 18 /* ak */
dload 15 /* pivot2 */
dcmpl
ifle 92
80: .line 3011
goto 83
81: .line 3012
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 17 /* k */
if_icmpne 83
82: .line 3013
goto 93
83: .line 3011
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
daload
dload 15 /* pivot2 */
dcmpl
ifgt 81
84: .line 3016
aload 0 /* a */
iload 12 /* great */
daload
dload 13 /* pivot1 */
dcmpg
ifge 89
85: .line 3017
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 11 /* less */
daload
dastore
86: .line 3018
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
daload
dastore
87: .line 3019
iinc 11 /* less */ 1
88: .line 3020
goto 90
89: .line 3021
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 12 /* great */
daload
dastore
90: .line 3027
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
dload 18 /* ak */
dastore
91: .line 3028
iinc 12 /* great */ -1
end local 18 // double ak
92: .line 3000
StackMap locals:
StackMap stack:
iinc 17 /* k */ 1
iload 17 /* k */
iload 12 /* great */
if_icmple 73
end local 17 // int k
93: .line 3033
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 1 /* left */
aload 0 /* a */
iload 11 /* less */
iconst_1
isub
daload
dastore
aload 0 /* a */
iload 11 /* less */
iconst_1
isub
dload 13 /* pivot1 */
dastore
94: .line 3034
aload 0 /* a */
iload 2 /* right */
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
daload
dastore
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
dload 15 /* pivot2 */
dastore
95: .line 3037
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_2
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([DIIZ)V
96: .line 3038
aload 0 /* a */
iload 12 /* great */
iconst_2
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([DIIZ)V
97: .line 3044
iload 11 /* less */
iload 8 /* e1 */
if_icmpge 126
iload 10 /* e5 */
iload 12 /* great */
if_icmpge 126
98: .line 3048
goto 100
99: .line 3049
StackMap locals:
StackMap stack:
iinc 11 /* less */ 1
100: .line 3048
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
daload
dload 13 /* pivot1 */
dcmpl
ifeq 99
101: .line 3052
goto 103
102: .line 3053
StackMap locals:
StackMap stack:
iinc 12 /* great */ -1
103: .line 3052
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
daload
dload 15 /* pivot2 */
dcmpl
ifeq 102
104: .line 3076
iload 11 /* less */
iconst_1
isub
istore 17 /* k */
start local 17 // int k
105: goto 125
106: .line 3077
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 17 /* k */
daload
dstore 18 /* ak */
start local 18 // double ak
107: .line 3078
dload 18 /* ak */
dload 13 /* pivot1 */
dcmpl
ifne 112
108: .line 3079
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 11 /* less */
daload
dastore
109: .line 3080
aload 0 /* a */
iload 11 /* less */
dload 18 /* ak */
dastore
110: .line 3081
iinc 11 /* less */ 1
111: .line 3082
goto 125
StackMap locals: double
StackMap stack:
112: dload 18 /* ak */
dload 15 /* pivot2 */
dcmpl
ifne 125
113: .line 3083
goto 116
114: .line 3084
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 17 /* k */
if_icmpne 116
115: .line 3085
goto 126
116: .line 3083
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
daload
dload 15 /* pivot2 */
dcmpl
ifeq 114
117: .line 3088
aload 0 /* a */
iload 12 /* great */
daload
dload 13 /* pivot1 */
dcmpl
ifne 122
118: .line 3089
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 11 /* less */
daload
dastore
119: .line 3098
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
daload
dastore
120: .line 3099
iinc 11 /* less */ 1
121: .line 3100
goto 123
122: .line 3101
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 12 /* great */
daload
dastore
123: .line 3103
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
dload 18 /* ak */
dastore
124: .line 3104
iinc 12 /* great */ -1
end local 18 // double ak
125: .line 3076
StackMap locals:
StackMap stack:
iinc 17 /* k */ 1
iload 17 /* k */
iload 12 /* great */
if_icmple 106
end local 17 // int k
126: .line 3110
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
iload 12 /* great */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([DIIZ)V
end local 15 // double pivot2
end local 13 // double pivot1
127: .line 3112
goto 153
128: .line 3117
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
daload
dstore 13 /* pivot */
start local 13 // double pivot
129: .line 3139
iload 11 /* less */
istore 15 /* k */
start local 15 // int k
130: goto 150
131: .line 3140
StackMap locals: double int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
daload
dload 13 /* pivot */
dcmpl
ifne 133
132: .line 3141
goto 149
133: .line 3143
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
daload
dstore 16 /* ak */
start local 16 // double ak
134: .line 3144
dload 16 /* ak */
dload 13 /* pivot */
dcmpg
ifge 140
135: .line 3145
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
daload
dastore
136: .line 3146
aload 0 /* a */
iload 11 /* less */
dload 16 /* ak */
dastore
137: .line 3147
iinc 11 /* less */ 1
138: .line 3148
goto 149
139: .line 3150
StackMap locals: double
StackMap stack:
iinc 12 /* great */ -1
140: .line 3149
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
daload
dload 13 /* pivot */
dcmpl
ifgt 139
141: .line 3152
aload 0 /* a */
iload 12 /* great */
daload
dload 13 /* pivot */
dcmpg
ifge 146
142: .line 3153
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
daload
dastore
143: .line 3154
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
daload
dastore
144: .line 3155
iinc 11 /* less */ 1
145: .line 3156
goto 147
146: .line 3165
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
daload
dastore
147: .line 3167
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
dload 16 /* ak */
dastore
148: .line 3168
iinc 12 /* great */ -1
end local 16 // double ak
149: .line 3139
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
StackMap locals:
StackMap stack:
150: iload 15 /* k */
iload 12 /* great */
if_icmple 131
end local 15 // int k
151: .line 3177
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_1
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([DIIZ)V
152: .line 3178
aload 0 /* a */
iload 12 /* great */
iconst_1
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([DIIZ)V
end local 13 // double pivot
153: .line 3180
StackMap locals:
StackMap stack:
return
end local 12 // int great
end local 11 // int less
end local 10 // int e5
end local 9 // int e4
end local 8 // int e1
end local 7 // int e2
end local 6 // int e3
end local 5 // int seventh
end local 4 // int length
end local 3 // boolean leftmost
end local 2 // int right
end local 1 // int left
end local 0 // double[] a
LocalVariableTable:
Start End Slot Name Signature
0 154 0 a [D
0 154 1 left I
0 154 2 right I
0 154 3 leftmost Z
1 154 4 length I
4 15 5 i I
5 15 6 j I
7 13 7 ai D
21 36 5 k I
23 34 6 a1 D
24 34 8 a2 D
37 41 5 last D
43 154 5 seventh I
44 154 6 e3 I
45 154 7 e2 I
46 154 8 e1 I
47 154 9 e4 I
48 154 10 e5 I
49 50 11 t D
51 53 11 t D
54 57 11 t D
58 62 11 t D
63 154 11 less I
64 154 12 great I
66 127 13 pivot1 D
67 127 15 pivot2 D
72 93 17 k I
74 92 18 ak D
105 126 17 k I
107 125 18 ak D
129 153 13 pivot D
130 151 15 k I
134 149 16 ak D
MethodParameters:
Name Flags
a
left
right
leftmost
}
SourceFile: "DualPivotQuicksort.java"