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 MAX_RUN_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 33
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 110
iload 2 /* right */
iload 1 /* left */
isub
sipush 286
if_icmpge 3
1: .line 111
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([IIIZ)V
2: .line 112
return
3: .line 119
StackMap locals:
StackMap stack:
bipush 68
newarray 10
astore 6 /* run */
start local 6 // int[] run
4: .line 120
iconst_0
istore 7 /* count */
start local 7 // int count
5: aload 6 /* run */
iconst_0
iload 1 /* left */
iastore
6: .line 123
iload 1 /* left */
istore 8 /* k */
start local 8 // int k
7: goto 30
8: .line 124
StackMap locals: int[] int int
StackMap stack:
aload 0 /* a */
iload 8 /* k */
iaload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
iaload
if_icmpge 11
9: .line 125
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 26
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
iaload
aload 0 /* a */
iload 8 /* k */
iaload
if_icmple 9
10: .line 126
goto 26
StackMap locals:
StackMap stack:
11: aload 0 /* a */
iload 8 /* k */
iaload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
iaload
if_icmple 20
12: .line 127
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 13
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
iaload
aload 0 /* a */
iload 8 /* k */
iaload
if_icmpge 12
13: .line 128
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
istore 9 /* lo */
start local 9 // int lo
14: iload 8 /* k */
istore 10 /* hi */
start local 10 // int hi
15: goto 18
16: .line 129
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 9 /* lo */
iaload
istore 11 /* t */
start local 11 // int t
17: 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
18: .line 128
StackMap locals:
StackMap stack:
iinc 9 /* lo */ 1
iload 9 /* lo */
iinc 10 /* hi */ -1
iload 10 /* hi */
if_icmplt 16
end local 10 // int hi
end local 9 // int lo
19: .line 131
goto 26
20: .line 132
StackMap locals:
StackMap stack:
bipush 33
istore 9 /* m */
start local 9 // int m
21: goto 25
22: .line 133
StackMap locals: int
StackMap stack:
iinc 9 /* m */ -1
iload 9 /* m */
ifne 25
23: .line 134
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([IIIZ)V
24: .line 135
return
25: .line 132
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 26
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
iaload
aload 0 /* a */
iload 8 /* k */
iaload
if_icmpeq 22
end local 9 // int m
26: .line 144
StackMap locals:
StackMap stack:
iinc 7 /* count */ 1
iload 7 /* count */
bipush 67
if_icmpne 29
27: .line 145
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([IIIZ)V
28: .line 146
return
29: .line 123
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iload 8 /* k */
iastore
StackMap locals:
StackMap stack:
30: iload 8 /* k */
iload 2 /* right */
if_icmplt 8
end local 8 // int k
31: .line 152
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
iinc 2 /* right */ 1
if_icmpne 34
32: .line 153
aload 6 /* run */
iinc 7 /* count */ 1
iload 7 /* count */
iload 2 /* right */
iastore
33: .line 154
goto 36
StackMap locals:
StackMap stack:
34: iload 7 /* count */
iconst_1
if_icmpne 36
35: .line 155
return
36: .line 159
StackMap locals:
StackMap stack:
iconst_0
istore 8 /* odd */
start local 8 // byte odd
37: .line 160
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 165
iload 2 /* right */
iload 1 /* left */
isub
istore 12 /* blen */
start local 12 // int blen
42: .line 166
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 167
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 168
iconst_0
istore 4 /* workBase */
45: .line 170
StackMap locals:
StackMap stack:
iload 8 /* odd */
ifne 52
46: .line 171
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 172
aload 0 /* a */
astore 9 /* b */
start local 9 // int[] b
48: .line 173
iconst_0
istore 11 /* bo */
start local 11 // int bo
49: .line 174
aload 3 /* work */
astore 0 /* a */
50: .line 175
iload 4 /* workBase */
iload 1 /* left */
isub
istore 10 /* ao */
start local 10 // int ao
51: .line 176
goto 86
end local 11 // int bo
end local 10 // int ao
end local 9 // int[] b
52: .line 177
StackMap locals:
StackMap stack:
aload 3 /* work */
astore 9 /* b */
start local 9 // int[] b
53: .line 178
iconst_0
istore 10 /* ao */
start local 10 // int ao
54: .line 179
iload 4 /* workBase */
iload 1 /* left */
isub
istore 11 /* bo */
start local 11 // int bo
55: .line 183
goto 86
56: .line 184
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 185
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 186
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 187
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 188
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 189
goto 69
68: .line 190
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 186
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 193
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 184
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 195
iload 7 /* count */
iconst_1
iand
ifeq 81
75: .line 196
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 197
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 196
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 199
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 2 /* right */
iastore
81: .line 201
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 202
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 183
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 204
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 31 8 k I
14 19 9 lo I
15 19 10 hi I
17 18 11 t I
21 26 9 m 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 215
iload 2 /* right */
iload 1 /* left */
isub
iconst_1
iadd
istore 4 /* length */
start local 4 // int length
1: .line 218
iload 4 /* length */
bipush 47
if_icmpge 42
2: .line 219
iload 3 /* leftmost */
ifeq 16
3: .line 225
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 226
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 227
goto 11
8: .line 228
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
aload 0 /* a */
iload 6 /* j */
iaload
iastore
9: .line 229
iload 6 /* j */
iinc 6 /* j */ -1
iload 1 /* left */
if_icmpne 11
10: .line 230
goto 12
11: .line 227
StackMap locals:
StackMap stack:
iload 7 /* ai */
aload 0 /* a */
iload 6 /* j */
iaload
if_icmplt 8
12: .line 233
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
iload 7 /* ai */
iastore
end local 7 // int ai
13: .line 225
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 235
goto 41
16: .line 240
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmplt 18
17: .line 241
return
18: .line 243
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 239
if_icmpge 16
20: .line 253
iload 1 /* left */
istore 5 /* k */
start local 5 // int k
21: goto 35
22: .line 254
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 256
iload 6 /* a1 */
iload 7 /* a2 */
if_icmpge 28
25: .line 257
iload 6 /* a1 */
istore 7 /* a2 */
aload 0 /* a */
iload 1 /* left */
iaload
istore 6 /* a1 */
26: .line 259
goto 28
27: .line 260
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 259
StackMap locals:
StackMap stack:
iload 6 /* a1 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
iaload
if_icmplt 27
29: .line 262
aload 0 /* a */
iinc 5 /* k */ 1
iload 5 /* k */
iconst_1
iadd
iload 6 /* a1 */
iastore
30: .line 264
goto 32
31: .line 265
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
aload 0 /* a */
iload 5 /* k */
iaload
iastore
32: .line 264
StackMap locals:
StackMap stack:
iload 7 /* a2 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
iaload
if_icmplt 31
33: .line 267
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 253
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 269
aload 0 /* a */
iload 2 /* right */
iaload
istore 5 /* last */
start local 5 // int last
37: .line 271
goto 39
38: .line 272
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
aload 0 /* a */
iload 2 /* right */
iaload
iastore
39: .line 271
StackMap locals:
StackMap stack:
iload 5 /* last */
aload 0 /* a */
iinc 2 /* right */ -1
iload 2 /* right */
iaload
if_icmplt 38
40: .line 274
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
iload 5 /* last */
iastore
end local 5 // int last
41: .line 276
StackMap locals:
StackMap stack:
return
42: .line 280
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 289
iload 1 /* left */
iload 2 /* right */
iadd
iconst_1
iushr
istore 6 /* e3 */
start local 6 // int e3
44: .line 290
iload 6 /* e3 */
iload 5 /* seventh */
isub
istore 7 /* e2 */
start local 7 // int e2
45: .line 291
iload 7 /* e2 */
iload 5 /* seventh */
isub
istore 8 /* e1 */
start local 8 // int e1
46: .line 292
iload 6 /* e3 */
iload 5 /* seventh */
iadd
istore 9 /* e4 */
start local 9 // int e4
47: .line 293
iload 9 /* e4 */
iload 5 /* seventh */
iadd
istore 10 /* e5 */
start local 10 // int e5
48: .line 296
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 298
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 299
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 301
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 302
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 303
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 306
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 307
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 308
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 309
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 315
StackMap locals:
StackMap stack:
iload 1 /* left */
istore 11 /* less */
start local 11 // int less
63: .line 316
iload 2 /* right */
istore 12 /* great */
start local 12 // int great
64: .line 318
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 324
aload 0 /* a */
iload 7 /* e2 */
iaload
istore 13 /* pivot1 */
start local 13 // int pivot1
66: .line 325
aload 0 /* a */
iload 9 /* e4 */
iaload
istore 14 /* pivot2 */
start local 14 // int pivot2
67: .line 333
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 1 /* left */
iaload
iastore
68: .line 334
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 2 /* right */
iaload
iastore
69: .line 339
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 340
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 12 /* great */ -1
iload 12 /* great */
iaload
iload 14 /* pivot2 */
if_icmpgt 70
71: .line 362
iload 11 /* less */
iconst_1
isub
istore 15 /* k */
start local 15 // int k
72: goto 92
73: .line 363
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
iaload
istore 16 /* ak */
start local 16 // int ak
74: .line 364
iload 16 /* ak */
iload 13 /* pivot1 */
if_icmpge 79
75: .line 365
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
iaload
iastore
76: .line 370
aload 0 /* a */
iload 11 /* less */
iload 16 /* ak */
iastore
77: .line 371
iinc 11 /* less */ 1
78: .line 372
goto 92
StackMap locals: int
StackMap stack:
79: iload 16 /* ak */
iload 14 /* pivot2 */
if_icmple 92
80: .line 373
goto 83
81: .line 374
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 15 /* k */
if_icmpne 83
82: .line 375
goto 93
83: .line 373
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iaload
iload 14 /* pivot2 */
if_icmpgt 81
84: .line 378
aload 0 /* a */
iload 12 /* great */
iaload
iload 13 /* pivot1 */
if_icmpge 89
85: .line 379
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
iaload
iastore
86: .line 380
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
iaload
iastore
87: .line 381
iinc 11 /* less */ 1
88: .line 382
goto 90
89: .line 383
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
iaload
iastore
90: .line 389
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 16 /* ak */
iastore
91: .line 390
iinc 12 /* great */ -1
end local 16 // int ak
92: .line 362
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
iload 15 /* k */
iload 12 /* great */
if_icmple 73
end local 15 // int k
93: .line 395
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 396
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 399
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_2
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([IIIZ)V
96: .line 400
aload 0 /* a */
iload 12 /* great */
iconst_2
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([IIIZ)V
97: .line 406
iload 11 /* less */
iload 8 /* e1 */
if_icmpge 126
iload 10 /* e5 */
iload 12 /* great */
if_icmpge 126
98: .line 410
goto 100
99: .line 411
StackMap locals:
StackMap stack:
iinc 11 /* less */ 1
100: .line 410
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
iaload
iload 13 /* pivot1 */
if_icmpeq 99
101: .line 414
goto 103
102: .line 415
StackMap locals:
StackMap stack:
iinc 12 /* great */ -1
103: .line 414
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iaload
iload 14 /* pivot2 */
if_icmpeq 102
104: .line 438
iload 11 /* less */
iconst_1
isub
istore 15 /* k */
start local 15 // int k
105: goto 125
106: .line 439
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
iaload
istore 16 /* ak */
start local 16 // int ak
107: .line 440
iload 16 /* ak */
iload 13 /* pivot1 */
if_icmpne 112
108: .line 441
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
iaload
iastore
109: .line 442
aload 0 /* a */
iload 11 /* less */
iload 16 /* ak */
iastore
110: .line 443
iinc 11 /* less */ 1
111: .line 444
goto 125
StackMap locals: int
StackMap stack:
112: iload 16 /* ak */
iload 14 /* pivot2 */
if_icmpne 125
113: .line 445
goto 116
114: .line 446
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 15 /* k */
if_icmpne 116
115: .line 447
goto 126
116: .line 445
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iaload
iload 14 /* pivot2 */
if_icmpeq 114
117: .line 450
aload 0 /* a */
iload 12 /* great */
iaload
iload 13 /* pivot1 */
if_icmpne 122
118: .line 451
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
iaload
iastore
119: .line 460
aload 0 /* a */
iload 11 /* less */
iload 13 /* pivot1 */
iastore
120: .line 461
iinc 11 /* less */ 1
121: .line 462
goto 123
122: .line 463
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
iaload
iastore
123: .line 465
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 16 /* ak */
iastore
124: .line 466
iinc 12 /* great */ -1
end local 16 // int ak
125: .line 438
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
iload 15 /* k */
iload 12 /* great */
if_icmple 106
end local 15 // int k
126: .line 472
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 474
goto 153
128: .line 479
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
iaload
istore 13 /* pivot */
start local 13 // int pivot
129: .line 501
iload 11 /* less */
istore 14 /* k */
start local 14 // int k
130: goto 150
131: .line 502
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 14 /* k */
iaload
iload 13 /* pivot */
if_icmpne 133
132: .line 503
goto 149
133: .line 505
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 14 /* k */
iaload
istore 15 /* ak */
start local 15 // int ak
134: .line 506
iload 15 /* ak */
iload 13 /* pivot */
if_icmpge 140
135: .line 507
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 11 /* less */
iaload
iastore
136: .line 508
aload 0 /* a */
iload 11 /* less */
iload 15 /* ak */
iastore
137: .line 509
iinc 11 /* less */ 1
138: .line 510
goto 149
139: .line 512
StackMap locals: int
StackMap stack:
iinc 12 /* great */ -1
140: .line 511
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iaload
iload 13 /* pivot */
if_icmpgt 139
141: .line 514
aload 0 /* a */
iload 12 /* great */
iaload
iload 13 /* pivot */
if_icmpge 146
142: .line 515
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 11 /* less */
iaload
iastore
143: .line 516
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
iaload
iastore
144: .line 517
iinc 11 /* less */ 1
145: .line 518
goto 147
146: .line 527
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 14 /* k */
iload 13 /* pivot */
iastore
147: .line 529
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 15 /* ak */
iastore
148: .line 530
iinc 12 /* great */ -1
end local 15 // int ak
149: .line 501
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 539
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_1
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([IIIZ)V
152: .line 540
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 542
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 558
iload 2 /* right */
iload 1 /* left */
isub
sipush 286
if_icmpge 3
1: .line 559
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([JIIZ)V
2: .line 560
return
3: .line 567
StackMap locals:
StackMap stack:
bipush 68
newarray 10
astore 6 /* run */
start local 6 // int[] run
4: .line 568
iconst_0
istore 7 /* count */
start local 7 // int count
5: aload 6 /* run */
iconst_0
iload 1 /* left */
iastore
6: .line 571
iload 1 /* left */
istore 8 /* k */
start local 8 // int k
7: goto 30
8: .line 572
StackMap locals: int[] int int
StackMap stack:
aload 0 /* a */
iload 8 /* k */
laload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
laload
lcmp
ifge 11
9: .line 573
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 26
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
laload
aload 0 /* a */
iload 8 /* k */
laload
lcmp
ifle 9
10: .line 574
goto 26
StackMap locals:
StackMap stack:
11: aload 0 /* a */
iload 8 /* k */
laload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
laload
lcmp
ifle 20
12: .line 575
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 13
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
laload
aload 0 /* a */
iload 8 /* k */
laload
lcmp
ifge 12
13: .line 576
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
istore 9 /* lo */
start local 9 // int lo
14: iload 8 /* k */
istore 10 /* hi */
start local 10 // int hi
15: goto 18
16: .line 577
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 9 /* lo */
laload
lstore 11 /* t */
start local 11 // long t
17: 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
18: .line 576
StackMap locals:
StackMap stack:
iinc 9 /* lo */ 1
iload 9 /* lo */
iinc 10 /* hi */ -1
iload 10 /* hi */
if_icmplt 16
end local 10 // int hi
end local 9 // int lo
19: .line 579
goto 26
20: .line 580
StackMap locals:
StackMap stack:
bipush 33
istore 9 /* m */
start local 9 // int m
21: goto 25
22: .line 581
StackMap locals: int
StackMap stack:
iinc 9 /* m */ -1
iload 9 /* m */
ifne 25
23: .line 582
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([JIIZ)V
24: .line 583
return
25: .line 580
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 26
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
laload
aload 0 /* a */
iload 8 /* k */
laload
lcmp
ifeq 22
end local 9 // int m
26: .line 592
StackMap locals:
StackMap stack:
iinc 7 /* count */ 1
iload 7 /* count */
bipush 67
if_icmpne 29
27: .line 593
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([JIIZ)V
28: .line 594
return
29: .line 571
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iload 8 /* k */
iastore
StackMap locals:
StackMap stack:
30: iload 8 /* k */
iload 2 /* right */
if_icmplt 8
end local 8 // int k
31: .line 600
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
iinc 2 /* right */ 1
if_icmpne 34
32: .line 601
aload 6 /* run */
iinc 7 /* count */ 1
iload 7 /* count */
iload 2 /* right */
iastore
33: .line 602
goto 36
StackMap locals:
StackMap stack:
34: iload 7 /* count */
iconst_1
if_icmpne 36
35: .line 603
return
36: .line 607
StackMap locals:
StackMap stack:
iconst_0
istore 8 /* odd */
start local 8 // byte odd
37: .line 608
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 613
iload 2 /* right */
iload 1 /* left */
isub
istore 12 /* blen */
start local 12 // int blen
42: .line 614
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 615
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 616
iconst_0
istore 4 /* workBase */
45: .line 618
StackMap locals:
StackMap stack:
iload 8 /* odd */
ifne 52
46: .line 619
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 620
aload 0 /* a */
astore 9 /* b */
start local 9 // long[] b
48: .line 621
iconst_0
istore 11 /* bo */
start local 11 // int bo
49: .line 622
aload 3 /* work */
astore 0 /* a */
50: .line 623
iload 4 /* workBase */
iload 1 /* left */
isub
istore 10 /* ao */
start local 10 // int ao
51: .line 624
goto 86
end local 11 // int bo
end local 10 // int ao
end local 9 // long[] b
52: .line 625
StackMap locals:
StackMap stack:
aload 3 /* work */
astore 9 /* b */
start local 9 // long[] b
53: .line 626
iconst_0
istore 10 /* ao */
start local 10 // int ao
54: .line 627
iload 4 /* workBase */
iload 1 /* left */
isub
istore 11 /* bo */
start local 11 // int bo
55: .line 631
goto 86
56: .line 632
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 633
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 634
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 635
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 636
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 637
goto 69
68: .line 638
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 634
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 641
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 632
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 643
iload 7 /* count */
iconst_1
iand
ifeq 81
75: .line 644
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 645
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 644
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 647
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 2 /* right */
iastore
81: .line 649
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 650
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 631
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 652
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 31 8 k I
14 19 9 lo I
15 19 10 hi I
17 18 11 t J
21 26 9 m I
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 663
iload 2 /* right */
iload 1 /* left */
isub
iconst_1
iadd
istore 4 /* length */
start local 4 // int length
1: .line 666
iload 4 /* length */
bipush 47
if_icmpge 42
2: .line 667
iload 3 /* leftmost */
ifeq 16
3: .line 673
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 674
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 675
goto 11
8: .line 676
StackMap locals: long
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
aload 0 /* a */
iload 6 /* j */
laload
lastore
9: .line 677
iload 6 /* j */
iinc 6 /* j */ -1
iload 1 /* left */
if_icmpne 11
10: .line 678
goto 12
11: .line 675
StackMap locals:
StackMap stack:
lload 7 /* ai */
aload 0 /* a */
iload 6 /* j */
laload
lcmp
iflt 8
12: .line 681
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
lload 7 /* ai */
lastore
end local 7 // long ai
13: .line 673
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 683
goto 41
16: .line 688
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmplt 18
17: .line 689
return
18: .line 691
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 687
lcmp
ifge 16
20: .line 701
iload 1 /* left */
istore 5 /* k */
start local 5 // int k
21: goto 35
22: .line 702
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 704
lload 6 /* a1 */
lload 8 /* a2 */
lcmp
ifge 28
25: .line 705
lload 6 /* a1 */
lstore 8 /* a2 */
aload 0 /* a */
iload 1 /* left */
laload
lstore 6 /* a1 */
26: .line 707
goto 28
27: .line 708
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 707
StackMap locals:
StackMap stack:
lload 6 /* a1 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
laload
lcmp
iflt 27
29: .line 710
aload 0 /* a */
iinc 5 /* k */ 1
iload 5 /* k */
iconst_1
iadd
lload 6 /* a1 */
lastore
30: .line 712
goto 32
31: .line 713
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
aload 0 /* a */
iload 5 /* k */
laload
lastore
32: .line 712
StackMap locals:
StackMap stack:
lload 8 /* a2 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
laload
lcmp
iflt 31
33: .line 715
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 701
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 717
aload 0 /* a */
iload 2 /* right */
laload
lstore 5 /* last */
start local 5 // long last
37: .line 719
goto 39
38: .line 720
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 719
StackMap locals:
StackMap stack:
lload 5 /* last */
aload 0 /* a */
iinc 2 /* right */ -1
iload 2 /* right */
laload
lcmp
iflt 38
40: .line 722
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
lload 5 /* last */
lastore
end local 5 // long last
41: .line 724
StackMap locals:
StackMap stack:
return
42: .line 728
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 737
iload 1 /* left */
iload 2 /* right */
iadd
iconst_1
iushr
istore 6 /* e3 */
start local 6 // int e3
44: .line 738
iload 6 /* e3 */
iload 5 /* seventh */
isub
istore 7 /* e2 */
start local 7 // int e2
45: .line 739
iload 7 /* e2 */
iload 5 /* seventh */
isub
istore 8 /* e1 */
start local 8 // int e1
46: .line 740
iload 6 /* e3 */
iload 5 /* seventh */
iadd
istore 9 /* e4 */
start local 9 // int e4
47: .line 741
iload 9 /* e4 */
iload 5 /* seventh */
iadd
istore 10 /* e5 */
start local 10 // int e5
48: .line 744
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 746
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 747
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 749
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 750
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 751
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 754
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 755
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 756
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 757
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 763
StackMap locals:
StackMap stack:
iload 1 /* left */
istore 11 /* less */
start local 11 // int less
63: .line 764
iload 2 /* right */
istore 12 /* great */
start local 12 // int great
64: .line 766
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 772
aload 0 /* a */
iload 7 /* e2 */
laload
lstore 13 /* pivot1 */
start local 13 // long pivot1
66: .line 773
aload 0 /* a */
iload 9 /* e4 */
laload
lstore 15 /* pivot2 */
start local 15 // long pivot2
67: .line 781
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 1 /* left */
laload
lastore
68: .line 782
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 2 /* right */
laload
lastore
69: .line 787
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 788
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 12 /* great */ -1
iload 12 /* great */
laload
lload 15 /* pivot2 */
lcmp
ifgt 70
71: .line 810
iload 11 /* less */
iconst_1
isub
istore 17 /* k */
start local 17 // int k
72: goto 92
73: .line 811
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 17 /* k */
laload
lstore 18 /* ak */
start local 18 // long ak
74: .line 812
lload 18 /* ak */
lload 13 /* pivot1 */
lcmp
ifge 79
75: .line 813
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 11 /* less */
laload
lastore
76: .line 818
aload 0 /* a */
iload 11 /* less */
lload 18 /* ak */
lastore
77: .line 819
iinc 11 /* less */ 1
78: .line 820
goto 92
StackMap locals: long
StackMap stack:
79: lload 18 /* ak */
lload 15 /* pivot2 */
lcmp
ifle 92
80: .line 821
goto 83
81: .line 822
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 17 /* k */
if_icmpne 83
82: .line 823
goto 93
83: .line 821
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
laload
lload 15 /* pivot2 */
lcmp
ifgt 81
84: .line 826
aload 0 /* a */
iload 12 /* great */
laload
lload 13 /* pivot1 */
lcmp
ifge 89
85: .line 827
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 11 /* less */
laload
lastore
86: .line 828
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
laload
lastore
87: .line 829
iinc 11 /* less */ 1
88: .line 830
goto 90
89: .line 831
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 12 /* great */
laload
lastore
90: .line 837
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
lload 18 /* ak */
lastore
91: .line 838
iinc 12 /* great */ -1
end local 18 // long ak
92: .line 810
StackMap locals:
StackMap stack:
iinc 17 /* k */ 1
iload 17 /* k */
iload 12 /* great */
if_icmple 73
end local 17 // int k
93: .line 843
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 844
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 847
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_2
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([JIIZ)V
96: .line 848
aload 0 /* a */
iload 12 /* great */
iconst_2
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([JIIZ)V
97: .line 854
iload 11 /* less */
iload 8 /* e1 */
if_icmpge 126
iload 10 /* e5 */
iload 12 /* great */
if_icmpge 126
98: .line 858
goto 100
99: .line 859
StackMap locals:
StackMap stack:
iinc 11 /* less */ 1
100: .line 858
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
laload
lload 13 /* pivot1 */
lcmp
ifeq 99
101: .line 862
goto 103
102: .line 863
StackMap locals:
StackMap stack:
iinc 12 /* great */ -1
103: .line 862
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
laload
lload 15 /* pivot2 */
lcmp
ifeq 102
104: .line 886
iload 11 /* less */
iconst_1
isub
istore 17 /* k */
start local 17 // int k
105: goto 125
106: .line 887
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 17 /* k */
laload
lstore 18 /* ak */
start local 18 // long ak
107: .line 888
lload 18 /* ak */
lload 13 /* pivot1 */
lcmp
ifne 112
108: .line 889
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 11 /* less */
laload
lastore
109: .line 890
aload 0 /* a */
iload 11 /* less */
lload 18 /* ak */
lastore
110: .line 891
iinc 11 /* less */ 1
111: .line 892
goto 125
StackMap locals: long
StackMap stack:
112: lload 18 /* ak */
lload 15 /* pivot2 */
lcmp
ifne 125
113: .line 893
goto 116
114: .line 894
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 17 /* k */
if_icmpne 116
115: .line 895
goto 126
116: .line 893
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
laload
lload 15 /* pivot2 */
lcmp
ifeq 114
117: .line 898
aload 0 /* a */
iload 12 /* great */
laload
lload 13 /* pivot1 */
lcmp
ifne 122
118: .line 899
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 11 /* less */
laload
lastore
119: .line 908
aload 0 /* a */
iload 11 /* less */
lload 13 /* pivot1 */
lastore
120: .line 909
iinc 11 /* less */ 1
121: .line 910
goto 123
122: .line 911
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 12 /* great */
laload
lastore
123: .line 913
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
lload 18 /* ak */
lastore
124: .line 914
iinc 12 /* great */ -1
end local 18 // long ak
125: .line 886
StackMap locals:
StackMap stack:
iinc 17 /* k */ 1
iload 17 /* k */
iload 12 /* great */
if_icmple 106
end local 17 // int k
126: .line 920
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 922
goto 153
128: .line 927
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
laload
lstore 13 /* pivot */
start local 13 // long pivot
129: .line 949
iload 11 /* less */
istore 15 /* k */
start local 15 // int k
130: goto 150
131: .line 950
StackMap locals: long int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
laload
lload 13 /* pivot */
lcmp
ifne 133
132: .line 951
goto 149
133: .line 953
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
laload
lstore 16 /* ak */
start local 16 // long ak
134: .line 954
lload 16 /* ak */
lload 13 /* pivot */
lcmp
ifge 140
135: .line 955
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
laload
lastore
136: .line 956
aload 0 /* a */
iload 11 /* less */
lload 16 /* ak */
lastore
137: .line 957
iinc 11 /* less */ 1
138: .line 958
goto 149
139: .line 960
StackMap locals: long
StackMap stack:
iinc 12 /* great */ -1
140: .line 959
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
laload
lload 13 /* pivot */
lcmp
ifgt 139
141: .line 962
aload 0 /* a */
iload 12 /* great */
laload
lload 13 /* pivot */
lcmp
ifge 146
142: .line 963
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
laload
lastore
143: .line 964
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
laload
lastore
144: .line 965
iinc 11 /* less */ 1
145: .line 966
goto 147
146: .line 975
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
lload 13 /* pivot */
lastore
147: .line 977
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
lload 16 /* ak */
lastore
148: .line 978
iinc 12 /* great */ -1
end local 16 // long ak
149: .line 949
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 987
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_1
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([JIIZ)V
152: .line 988
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 990
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 1006
iload 2 /* right */
iload 1 /* left */
isub
sipush 3200
if_icmple 17
1: .line 1007
ldc 65536
newarray 10
astore 6 /* count */
start local 6 // int[] count
2: .line 1009
iload 1 /* left */
iconst_1
isub
istore 7 /* i */
start local 7 // int i
3: goto 5
4: .line 1010
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 1009
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
iload 7 /* i */
iload 2 /* right */
if_icmple 4
end local 7 // int i
6: .line 1012
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 1013
StackMap locals: int
StackMap stack:
aload 6 /* count */
iinc 7 /* i */ -1
iload 7 /* i */
iaload
ifeq 9
10: .line 1014
iload 7 /* i */
sipush -32768
iadd
i2s
istore 9 /* value */
start local 9 // short value
11: .line 1015
aload 6 /* count */
iload 7 /* i */
iaload
istore 10 /* s */
start local 10 // int s
12: .line 1018
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iinc 8 /* k */ -1
iload 8 /* k */
iload 9 /* value */
sastore
13: .line 1019
iinc 10 /* s */ -1
iload 10 /* s */
14: .line 1017
ifgt 12
end local 10 // int s
end local 9 // short value
15: .line 1012
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 1021
goto 18
17: .line 1022
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 1024
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 1042
iload 2 /* right */
iload 1 /* left */
isub
sipush 286
if_icmpge 3
1: .line 1043
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([SIIZ)V
2: .line 1044
return
3: .line 1051
StackMap locals:
StackMap stack:
bipush 68
newarray 10
astore 6 /* run */
start local 6 // int[] run
4: .line 1052
iconst_0
istore 7 /* count */
start local 7 // int count
5: aload 6 /* run */
iconst_0
iload 1 /* left */
iastore
6: .line 1055
iload 1 /* left */
istore 8 /* k */
start local 8 // int k
7: goto 30
8: .line 1056
StackMap locals: int[] int int
StackMap stack:
aload 0 /* a */
iload 8 /* k */
saload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
saload
if_icmpge 11
9: .line 1057
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 26
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
saload
aload 0 /* a */
iload 8 /* k */
saload
if_icmple 9
10: .line 1058
goto 26
StackMap locals:
StackMap stack:
11: aload 0 /* a */
iload 8 /* k */
saload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
saload
if_icmple 20
12: .line 1059
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 13
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
saload
aload 0 /* a */
iload 8 /* k */
saload
if_icmpge 12
13: .line 1060
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
istore 9 /* lo */
start local 9 // int lo
14: iload 8 /* k */
istore 10 /* hi */
start local 10 // int hi
15: goto 18
16: .line 1061
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 9 /* lo */
saload
istore 11 /* t */
start local 11 // short t
17: 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
18: .line 1060
StackMap locals:
StackMap stack:
iinc 9 /* lo */ 1
iload 9 /* lo */
iinc 10 /* hi */ -1
iload 10 /* hi */
if_icmplt 16
end local 10 // int hi
end local 9 // int lo
19: .line 1063
goto 26
20: .line 1064
StackMap locals:
StackMap stack:
bipush 33
istore 9 /* m */
start local 9 // int m
21: goto 25
22: .line 1065
StackMap locals: int
StackMap stack:
iinc 9 /* m */ -1
iload 9 /* m */
ifne 25
23: .line 1066
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([SIIZ)V
24: .line 1067
return
25: .line 1064
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 26
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
saload
aload 0 /* a */
iload 8 /* k */
saload
if_icmpeq 22
end local 9 // int m
26: .line 1076
StackMap locals:
StackMap stack:
iinc 7 /* count */ 1
iload 7 /* count */
bipush 67
if_icmpne 29
27: .line 1077
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([SIIZ)V
28: .line 1078
return
29: .line 1055
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iload 8 /* k */
iastore
StackMap locals:
StackMap stack:
30: iload 8 /* k */
iload 2 /* right */
if_icmplt 8
end local 8 // int k
31: .line 1084
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
iinc 2 /* right */ 1
if_icmpne 34
32: .line 1085
aload 6 /* run */
iinc 7 /* count */ 1
iload 7 /* count */
iload 2 /* right */
iastore
33: .line 1086
goto 36
StackMap locals:
StackMap stack:
34: iload 7 /* count */
iconst_1
if_icmpne 36
35: .line 1087
return
36: .line 1091
StackMap locals:
StackMap stack:
iconst_0
istore 8 /* odd */
start local 8 // byte odd
37: .line 1092
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 1097
iload 2 /* right */
iload 1 /* left */
isub
istore 12 /* blen */
start local 12 // int blen
42: .line 1098
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 1099
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 1100
iconst_0
istore 4 /* workBase */
45: .line 1102
StackMap locals:
StackMap stack:
iload 8 /* odd */
ifne 52
46: .line 1103
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 1104
aload 0 /* a */
astore 9 /* b */
start local 9 // short[] b
48: .line 1105
iconst_0
istore 11 /* bo */
start local 11 // int bo
49: .line 1106
aload 3 /* work */
astore 0 /* a */
50: .line 1107
iload 4 /* workBase */
iload 1 /* left */
isub
istore 10 /* ao */
start local 10 // int ao
51: .line 1108
goto 86
end local 11 // int bo
end local 10 // int ao
end local 9 // short[] b
52: .line 1109
StackMap locals:
StackMap stack:
aload 3 /* work */
astore 9 /* b */
start local 9 // short[] b
53: .line 1110
iconst_0
istore 10 /* ao */
start local 10 // int ao
54: .line 1111
iload 4 /* workBase */
iload 1 /* left */
isub
istore 11 /* bo */
start local 11 // int bo
55: .line 1115
goto 86
56: .line 1116
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 1117
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 1118
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 1119
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 1120
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 1121
goto 69
68: .line 1122
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 1118
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 1125
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 1116
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 1127
iload 7 /* count */
iconst_1
iand
ifeq 81
75: .line 1128
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 1129
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 1128
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 1131
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 2 /* right */
iastore
81: .line 1133
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 1134
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 1115
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 1136
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 31 8 k I
14 19 9 lo I
15 19 10 hi I
17 18 11 t S
21 26 9 m I
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 1147
iload 2 /* right */
iload 1 /* left */
isub
iconst_1
iadd
istore 4 /* length */
start local 4 // int length
1: .line 1150
iload 4 /* length */
bipush 47
if_icmpge 42
2: .line 1151
iload 3 /* leftmost */
ifeq 16
3: .line 1157
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 1158
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 1159
goto 11
8: .line 1160
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
aload 0 /* a */
iload 6 /* j */
saload
sastore
9: .line 1161
iload 6 /* j */
iinc 6 /* j */ -1
iload 1 /* left */
if_icmpne 11
10: .line 1162
goto 12
11: .line 1159
StackMap locals:
StackMap stack:
iload 7 /* ai */
aload 0 /* a */
iload 6 /* j */
saload
if_icmplt 8
12: .line 1165
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
iload 7 /* ai */
sastore
end local 7 // short ai
13: .line 1157
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 1167
goto 41
16: .line 1172
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmplt 18
17: .line 1173
return
18: .line 1175
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 1171
if_icmpge 16
20: .line 1185
iload 1 /* left */
istore 5 /* k */
start local 5 // int k
21: goto 35
22: .line 1186
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 1188
iload 6 /* a1 */
iload 7 /* a2 */
if_icmpge 28
25: .line 1189
iload 6 /* a1 */
istore 7 /* a2 */
aload 0 /* a */
iload 1 /* left */
saload
istore 6 /* a1 */
26: .line 1191
goto 28
27: .line 1192
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 1191
StackMap locals:
StackMap stack:
iload 6 /* a1 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
saload
if_icmplt 27
29: .line 1194
aload 0 /* a */
iinc 5 /* k */ 1
iload 5 /* k */
iconst_1
iadd
iload 6 /* a1 */
sastore
30: .line 1196
goto 32
31: .line 1197
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
aload 0 /* a */
iload 5 /* k */
saload
sastore
32: .line 1196
StackMap locals:
StackMap stack:
iload 7 /* a2 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
saload
if_icmplt 31
33: .line 1199
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 1185
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 1201
aload 0 /* a */
iload 2 /* right */
saload
istore 5 /* last */
start local 5 // short last
37: .line 1203
goto 39
38: .line 1204
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 1203
StackMap locals:
StackMap stack:
iload 5 /* last */
aload 0 /* a */
iinc 2 /* right */ -1
iload 2 /* right */
saload
if_icmplt 38
40: .line 1206
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
iload 5 /* last */
sastore
end local 5 // short last
41: .line 1208
StackMap locals:
StackMap stack:
return
42: .line 1212
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 1221
iload 1 /* left */
iload 2 /* right */
iadd
iconst_1
iushr
istore 6 /* e3 */
start local 6 // int e3
44: .line 1222
iload 6 /* e3 */
iload 5 /* seventh */
isub
istore 7 /* e2 */
start local 7 // int e2
45: .line 1223
iload 7 /* e2 */
iload 5 /* seventh */
isub
istore 8 /* e1 */
start local 8 // int e1
46: .line 1224
iload 6 /* e3 */
iload 5 /* seventh */
iadd
istore 9 /* e4 */
start local 9 // int e4
47: .line 1225
iload 9 /* e4 */
iload 5 /* seventh */
iadd
istore 10 /* e5 */
start local 10 // int e5
48: .line 1228
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 1230
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 1231
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 1233
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 1234
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 1235
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 1238
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 1239
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 1240
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 1241
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 1247
StackMap locals:
StackMap stack:
iload 1 /* left */
istore 11 /* less */
start local 11 // int less
63: .line 1248
iload 2 /* right */
istore 12 /* great */
start local 12 // int great
64: .line 1250
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 1256
aload 0 /* a */
iload 7 /* e2 */
saload
istore 13 /* pivot1 */
start local 13 // short pivot1
66: .line 1257
aload 0 /* a */
iload 9 /* e4 */
saload
istore 14 /* pivot2 */
start local 14 // short pivot2
67: .line 1265
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 1 /* left */
saload
sastore
68: .line 1266
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 2 /* right */
saload
sastore
69: .line 1271
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 1272
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 12 /* great */ -1
iload 12 /* great */
saload
iload 14 /* pivot2 */
if_icmpgt 70
71: .line 1294
iload 11 /* less */
iconst_1
isub
istore 15 /* k */
start local 15 // int k
72: goto 92
73: .line 1295
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
saload
istore 16 /* ak */
start local 16 // short ak
74: .line 1296
iload 16 /* ak */
iload 13 /* pivot1 */
if_icmpge 79
75: .line 1297
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
saload
sastore
76: .line 1302
aload 0 /* a */
iload 11 /* less */
iload 16 /* ak */
sastore
77: .line 1303
iinc 11 /* less */ 1
78: .line 1304
goto 92
StackMap locals: int
StackMap stack:
79: iload 16 /* ak */
iload 14 /* pivot2 */
if_icmple 92
80: .line 1305
goto 83
81: .line 1306
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 15 /* k */
if_icmpne 83
82: .line 1307
goto 93
83: .line 1305
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
saload
iload 14 /* pivot2 */
if_icmpgt 81
84: .line 1310
aload 0 /* a */
iload 12 /* great */
saload
iload 13 /* pivot1 */
if_icmpge 89
85: .line 1311
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
saload
sastore
86: .line 1312
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
saload
sastore
87: .line 1313
iinc 11 /* less */ 1
88: .line 1314
goto 90
89: .line 1315
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
saload
sastore
90: .line 1321
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 16 /* ak */
sastore
91: .line 1322
iinc 12 /* great */ -1
end local 16 // short ak
92: .line 1294
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
iload 15 /* k */
iload 12 /* great */
if_icmple 73
end local 15 // int k
93: .line 1327
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 1328
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 1331
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_2
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([SIIZ)V
96: .line 1332
aload 0 /* a */
iload 12 /* great */
iconst_2
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([SIIZ)V
97: .line 1338
iload 11 /* less */
iload 8 /* e1 */
if_icmpge 126
iload 10 /* e5 */
iload 12 /* great */
if_icmpge 126
98: .line 1342
goto 100
99: .line 1343
StackMap locals:
StackMap stack:
iinc 11 /* less */ 1
100: .line 1342
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
saload
iload 13 /* pivot1 */
if_icmpeq 99
101: .line 1346
goto 103
102: .line 1347
StackMap locals:
StackMap stack:
iinc 12 /* great */ -1
103: .line 1346
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
saload
iload 14 /* pivot2 */
if_icmpeq 102
104: .line 1370
iload 11 /* less */
iconst_1
isub
istore 15 /* k */
start local 15 // int k
105: goto 125
106: .line 1371
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
saload
istore 16 /* ak */
start local 16 // short ak
107: .line 1372
iload 16 /* ak */
iload 13 /* pivot1 */
if_icmpne 112
108: .line 1373
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
saload
sastore
109: .line 1374
aload 0 /* a */
iload 11 /* less */
iload 16 /* ak */
sastore
110: .line 1375
iinc 11 /* less */ 1
111: .line 1376
goto 125
StackMap locals: int
StackMap stack:
112: iload 16 /* ak */
iload 14 /* pivot2 */
if_icmpne 125
113: .line 1377
goto 116
114: .line 1378
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 15 /* k */
if_icmpne 116
115: .line 1379
goto 126
116: .line 1377
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
saload
iload 14 /* pivot2 */
if_icmpeq 114
117: .line 1382
aload 0 /* a */
iload 12 /* great */
saload
iload 13 /* pivot1 */
if_icmpne 122
118: .line 1383
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
saload
sastore
119: .line 1392
aload 0 /* a */
iload 11 /* less */
iload 13 /* pivot1 */
sastore
120: .line 1393
iinc 11 /* less */ 1
121: .line 1394
goto 123
122: .line 1395
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
saload
sastore
123: .line 1397
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 16 /* ak */
sastore
124: .line 1398
iinc 12 /* great */ -1
end local 16 // short ak
125: .line 1370
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
iload 15 /* k */
iload 12 /* great */
if_icmple 106
end local 15 // int k
126: .line 1404
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 1406
goto 153
128: .line 1411
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
saload
istore 13 /* pivot */
start local 13 // short pivot
129: .line 1433
iload 11 /* less */
istore 14 /* k */
start local 14 // int k
130: goto 150
131: .line 1434
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 14 /* k */
saload
iload 13 /* pivot */
if_icmpne 133
132: .line 1435
goto 149
133: .line 1437
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 14 /* k */
saload
istore 15 /* ak */
start local 15 // short ak
134: .line 1438
iload 15 /* ak */
iload 13 /* pivot */
if_icmpge 140
135: .line 1439
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 11 /* less */
saload
sastore
136: .line 1440
aload 0 /* a */
iload 11 /* less */
iload 15 /* ak */
sastore
137: .line 1441
iinc 11 /* less */ 1
138: .line 1442
goto 149
139: .line 1444
StackMap locals: int
StackMap stack:
iinc 12 /* great */ -1
140: .line 1443
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
saload
iload 13 /* pivot */
if_icmpgt 139
141: .line 1446
aload 0 /* a */
iload 12 /* great */
saload
iload 13 /* pivot */
if_icmpge 146
142: .line 1447
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 11 /* less */
saload
sastore
143: .line 1448
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
saload
sastore
144: .line 1449
iinc 11 /* less */ 1
145: .line 1450
goto 147
146: .line 1459
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 14 /* k */
iload 13 /* pivot */
sastore
147: .line 1461
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 15 /* ak */
sastore
148: .line 1462
iinc 12 /* great */ -1
end local 15 // short ak
149: .line 1433
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 1471
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_1
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([SIIZ)V
152: .line 1472
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 1474
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 1490
iload 2 /* right */
iload 1 /* left */
isub
sipush 3200
if_icmple 17
1: .line 1491
ldc 65536
newarray 10
astore 6 /* count */
start local 6 // int[] count
2: .line 1493
iload 1 /* left */
iconst_1
isub
istore 7 /* i */
start local 7 // int i
3: goto 5
4: .line 1494
StackMap locals: int[] int
StackMap stack:
aload 6 /* count */
aload 0 /* a */
iload 7 /* i */
caload
dup2
iaload
iconst_1
iadd
iastore
5: .line 1493
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
iload 7 /* i */
iload 2 /* right */
if_icmple 4
end local 7 // int i
6: .line 1496
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 1497
StackMap locals: int
StackMap stack:
aload 6 /* count */
iinc 7 /* i */ -1
iload 7 /* i */
iaload
ifeq 9
10: .line 1498
iload 7 /* i */
i2c
istore 9 /* value */
start local 9 // char value
11: .line 1499
aload 6 /* count */
iload 7 /* i */
iaload
istore 10 /* s */
start local 10 // int s
12: .line 1502
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iinc 8 /* k */ -1
iload 8 /* k */
iload 9 /* value */
castore
13: .line 1503
iinc 10 /* s */ -1
iload 10 /* s */
14: .line 1501
ifgt 12
end local 10 // int s
end local 9 // char value
15: .line 1496
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 1505
goto 18
17: .line 1506
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 1508
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 1526
iload 2 /* right */
iload 1 /* left */
isub
sipush 286
if_icmpge 3
1: .line 1527
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([CIIZ)V
2: .line 1528
return
3: .line 1535
StackMap locals:
StackMap stack:
bipush 68
newarray 10
astore 6 /* run */
start local 6 // int[] run
4: .line 1536
iconst_0
istore 7 /* count */
start local 7 // int count
5: aload 6 /* run */
iconst_0
iload 1 /* left */
iastore
6: .line 1539
iload 1 /* left */
istore 8 /* k */
start local 8 // int k
7: goto 30
8: .line 1540
StackMap locals: int[] int int
StackMap stack:
aload 0 /* a */
iload 8 /* k */
caload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
caload
if_icmpge 11
9: .line 1541
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 26
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
caload
aload 0 /* a */
iload 8 /* k */
caload
if_icmple 9
10: .line 1542
goto 26
StackMap locals:
StackMap stack:
11: aload 0 /* a */
iload 8 /* k */
caload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
caload
if_icmple 20
12: .line 1543
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 13
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
caload
aload 0 /* a */
iload 8 /* k */
caload
if_icmpge 12
13: .line 1544
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
istore 9 /* lo */
start local 9 // int lo
14: iload 8 /* k */
istore 10 /* hi */
start local 10 // int hi
15: goto 18
16: .line 1545
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 9 /* lo */
caload
istore 11 /* t */
start local 11 // char t
17: 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
18: .line 1544
StackMap locals:
StackMap stack:
iinc 9 /* lo */ 1
iload 9 /* lo */
iinc 10 /* hi */ -1
iload 10 /* hi */
if_icmplt 16
end local 10 // int hi
end local 9 // int lo
19: .line 1547
goto 26
20: .line 1548
StackMap locals:
StackMap stack:
bipush 33
istore 9 /* m */
start local 9 // int m
21: goto 25
22: .line 1549
StackMap locals: int
StackMap stack:
iinc 9 /* m */ -1
iload 9 /* m */
ifne 25
23: .line 1550
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([CIIZ)V
24: .line 1551
return
25: .line 1548
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 26
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
caload
aload 0 /* a */
iload 8 /* k */
caload
if_icmpeq 22
end local 9 // int m
26: .line 1560
StackMap locals:
StackMap stack:
iinc 7 /* count */ 1
iload 7 /* count */
bipush 67
if_icmpne 29
27: .line 1561
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([CIIZ)V
28: .line 1562
return
29: .line 1539
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iload 8 /* k */
iastore
StackMap locals:
StackMap stack:
30: iload 8 /* k */
iload 2 /* right */
if_icmplt 8
end local 8 // int k
31: .line 1568
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
iinc 2 /* right */ 1
if_icmpne 34
32: .line 1569
aload 6 /* run */
iinc 7 /* count */ 1
iload 7 /* count */
iload 2 /* right */
iastore
33: .line 1570
goto 36
StackMap locals:
StackMap stack:
34: iload 7 /* count */
iconst_1
if_icmpne 36
35: .line 1571
return
36: .line 1575
StackMap locals:
StackMap stack:
iconst_0
istore 8 /* odd */
start local 8 // byte odd
37: .line 1576
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 1581
iload 2 /* right */
iload 1 /* left */
isub
istore 12 /* blen */
start local 12 // int blen
42: .line 1582
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 1583
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 1584
iconst_0
istore 4 /* workBase */
45: .line 1586
StackMap locals:
StackMap stack:
iload 8 /* odd */
ifne 52
46: .line 1587
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 1588
aload 0 /* a */
astore 9 /* b */
start local 9 // char[] b
48: .line 1589
iconst_0
istore 11 /* bo */
start local 11 // int bo
49: .line 1590
aload 3 /* work */
astore 0 /* a */
50: .line 1591
iload 4 /* workBase */
iload 1 /* left */
isub
istore 10 /* ao */
start local 10 // int ao
51: .line 1592
goto 86
end local 11 // int bo
end local 10 // int ao
end local 9 // char[] b
52: .line 1593
StackMap locals:
StackMap stack:
aload 3 /* work */
astore 9 /* b */
start local 9 // char[] b
53: .line 1594
iconst_0
istore 10 /* ao */
start local 10 // int ao
54: .line 1595
iload 4 /* workBase */
iload 1 /* left */
isub
istore 11 /* bo */
start local 11 // int bo
55: .line 1599
goto 86
56: .line 1600
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 1601
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 1602
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 1603
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 1604
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 1605
goto 69
68: .line 1606
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 1602
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 1609
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 1600
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 1611
iload 7 /* count */
iconst_1
iand
ifeq 81
75: .line 1612
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 1613
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 1612
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 1615
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 2 /* right */
iastore
81: .line 1617
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 1618
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 1599
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 1620
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 31 8 k I
14 19 9 lo I
15 19 10 hi I
17 18 11 t C
21 26 9 m I
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 1631
iload 2 /* right */
iload 1 /* left */
isub
iconst_1
iadd
istore 4 /* length */
start local 4 // int length
1: .line 1634
iload 4 /* length */
bipush 47
if_icmpge 42
2: .line 1635
iload 3 /* leftmost */
ifeq 16
3: .line 1641
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 1642
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 1643
goto 11
8: .line 1644
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
aload 0 /* a */
iload 6 /* j */
caload
castore
9: .line 1645
iload 6 /* j */
iinc 6 /* j */ -1
iload 1 /* left */
if_icmpne 11
10: .line 1646
goto 12
11: .line 1643
StackMap locals:
StackMap stack:
iload 7 /* ai */
aload 0 /* a */
iload 6 /* j */
caload
if_icmplt 8
12: .line 1649
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
iload 7 /* ai */
castore
end local 7 // char ai
13: .line 1641
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 1651
goto 41
16: .line 1656
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmplt 18
17: .line 1657
return
18: .line 1659
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 1655
if_icmpge 16
20: .line 1669
iload 1 /* left */
istore 5 /* k */
start local 5 // int k
21: goto 35
22: .line 1670
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 1672
iload 6 /* a1 */
iload 7 /* a2 */
if_icmpge 28
25: .line 1673
iload 6 /* a1 */
istore 7 /* a2 */
aload 0 /* a */
iload 1 /* left */
caload
istore 6 /* a1 */
26: .line 1675
goto 28
27: .line 1676
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 1675
StackMap locals:
StackMap stack:
iload 6 /* a1 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
caload
if_icmplt 27
29: .line 1678
aload 0 /* a */
iinc 5 /* k */ 1
iload 5 /* k */
iconst_1
iadd
iload 6 /* a1 */
castore
30: .line 1680
goto 32
31: .line 1681
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
aload 0 /* a */
iload 5 /* k */
caload
castore
32: .line 1680
StackMap locals:
StackMap stack:
iload 7 /* a2 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
caload
if_icmplt 31
33: .line 1683
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 1669
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 1685
aload 0 /* a */
iload 2 /* right */
caload
istore 5 /* last */
start local 5 // char last
37: .line 1687
goto 39
38: .line 1688
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 1687
StackMap locals:
StackMap stack:
iload 5 /* last */
aload 0 /* a */
iinc 2 /* right */ -1
iload 2 /* right */
caload
if_icmplt 38
40: .line 1690
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
iload 5 /* last */
castore
end local 5 // char last
41: .line 1692
StackMap locals:
StackMap stack:
return
42: .line 1696
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 1705
iload 1 /* left */
iload 2 /* right */
iadd
iconst_1
iushr
istore 6 /* e3 */
start local 6 // int e3
44: .line 1706
iload 6 /* e3 */
iload 5 /* seventh */
isub
istore 7 /* e2 */
start local 7 // int e2
45: .line 1707
iload 7 /* e2 */
iload 5 /* seventh */
isub
istore 8 /* e1 */
start local 8 // int e1
46: .line 1708
iload 6 /* e3 */
iload 5 /* seventh */
iadd
istore 9 /* e4 */
start local 9 // int e4
47: .line 1709
iload 9 /* e4 */
iload 5 /* seventh */
iadd
istore 10 /* e5 */
start local 10 // int e5
48: .line 1712
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 1714
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 1715
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 1717
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 1718
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 1719
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 1722
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 1723
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 1724
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 1725
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 1731
StackMap locals:
StackMap stack:
iload 1 /* left */
istore 11 /* less */
start local 11 // int less
63: .line 1732
iload 2 /* right */
istore 12 /* great */
start local 12 // int great
64: .line 1734
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 1740
aload 0 /* a */
iload 7 /* e2 */
caload
istore 13 /* pivot1 */
start local 13 // char pivot1
66: .line 1741
aload 0 /* a */
iload 9 /* e4 */
caload
istore 14 /* pivot2 */
start local 14 // char pivot2
67: .line 1749
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 1 /* left */
caload
castore
68: .line 1750
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 2 /* right */
caload
castore
69: .line 1755
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 1756
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 12 /* great */ -1
iload 12 /* great */
caload
iload 14 /* pivot2 */
if_icmpgt 70
71: .line 1778
iload 11 /* less */
iconst_1
isub
istore 15 /* k */
start local 15 // int k
72: goto 92
73: .line 1779
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
caload
istore 16 /* ak */
start local 16 // char ak
74: .line 1780
iload 16 /* ak */
iload 13 /* pivot1 */
if_icmpge 79
75: .line 1781
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
caload
castore
76: .line 1786
aload 0 /* a */
iload 11 /* less */
iload 16 /* ak */
castore
77: .line 1787
iinc 11 /* less */ 1
78: .line 1788
goto 92
StackMap locals: int
StackMap stack:
79: iload 16 /* ak */
iload 14 /* pivot2 */
if_icmple 92
80: .line 1789
goto 83
81: .line 1790
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 15 /* k */
if_icmpne 83
82: .line 1791
goto 93
83: .line 1789
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
caload
iload 14 /* pivot2 */
if_icmpgt 81
84: .line 1794
aload 0 /* a */
iload 12 /* great */
caload
iload 13 /* pivot1 */
if_icmpge 89
85: .line 1795
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
caload
castore
86: .line 1796
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
caload
castore
87: .line 1797
iinc 11 /* less */ 1
88: .line 1798
goto 90
89: .line 1799
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
caload
castore
90: .line 1805
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 16 /* ak */
castore
91: .line 1806
iinc 12 /* great */ -1
end local 16 // char ak
92: .line 1778
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
iload 15 /* k */
iload 12 /* great */
if_icmple 73
end local 15 // int k
93: .line 1811
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 1812
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 1815
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_2
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([CIIZ)V
96: .line 1816
aload 0 /* a */
iload 12 /* great */
iconst_2
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([CIIZ)V
97: .line 1822
iload 11 /* less */
iload 8 /* e1 */
if_icmpge 126
iload 10 /* e5 */
iload 12 /* great */
if_icmpge 126
98: .line 1826
goto 100
99: .line 1827
StackMap locals:
StackMap stack:
iinc 11 /* less */ 1
100: .line 1826
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
caload
iload 13 /* pivot1 */
if_icmpeq 99
101: .line 1830
goto 103
102: .line 1831
StackMap locals:
StackMap stack:
iinc 12 /* great */ -1
103: .line 1830
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
caload
iload 14 /* pivot2 */
if_icmpeq 102
104: .line 1854
iload 11 /* less */
iconst_1
isub
istore 15 /* k */
start local 15 // int k
105: goto 125
106: .line 1855
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
caload
istore 16 /* ak */
start local 16 // char ak
107: .line 1856
iload 16 /* ak */
iload 13 /* pivot1 */
if_icmpne 112
108: .line 1857
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
caload
castore
109: .line 1858
aload 0 /* a */
iload 11 /* less */
iload 16 /* ak */
castore
110: .line 1859
iinc 11 /* less */ 1
111: .line 1860
goto 125
StackMap locals: int
StackMap stack:
112: iload 16 /* ak */
iload 14 /* pivot2 */
if_icmpne 125
113: .line 1861
goto 116
114: .line 1862
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 15 /* k */
if_icmpne 116
115: .line 1863
goto 126
116: .line 1861
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
caload
iload 14 /* pivot2 */
if_icmpeq 114
117: .line 1866
aload 0 /* a */
iload 12 /* great */
caload
iload 13 /* pivot1 */
if_icmpne 122
118: .line 1867
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
caload
castore
119: .line 1876
aload 0 /* a */
iload 11 /* less */
iload 13 /* pivot1 */
castore
120: .line 1877
iinc 11 /* less */ 1
121: .line 1878
goto 123
122: .line 1879
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
caload
castore
123: .line 1881
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 16 /* ak */
castore
124: .line 1882
iinc 12 /* great */ -1
end local 16 // char ak
125: .line 1854
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
iload 15 /* k */
iload 12 /* great */
if_icmple 106
end local 15 // int k
126: .line 1888
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 1890
goto 153
128: .line 1895
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
caload
istore 13 /* pivot */
start local 13 // char pivot
129: .line 1917
iload 11 /* less */
istore 14 /* k */
start local 14 // int k
130: goto 150
131: .line 1918
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 14 /* k */
caload
iload 13 /* pivot */
if_icmpne 133
132: .line 1919
goto 149
133: .line 1921
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 14 /* k */
caload
istore 15 /* ak */
start local 15 // char ak
134: .line 1922
iload 15 /* ak */
iload 13 /* pivot */
if_icmpge 140
135: .line 1923
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 11 /* less */
caload
castore
136: .line 1924
aload 0 /* a */
iload 11 /* less */
iload 15 /* ak */
castore
137: .line 1925
iinc 11 /* less */ 1
138: .line 1926
goto 149
139: .line 1928
StackMap locals: int
StackMap stack:
iinc 12 /* great */ -1
140: .line 1927
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
caload
iload 13 /* pivot */
if_icmpgt 139
141: .line 1930
aload 0 /* a */
iload 12 /* great */
caload
iload 13 /* pivot */
if_icmpge 146
142: .line 1931
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 11 /* less */
caload
castore
143: .line 1932
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
caload
castore
144: .line 1933
iinc 11 /* less */ 1
145: .line 1934
goto 147
146: .line 1943
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 14 /* k */
iload 13 /* pivot */
castore
147: .line 1945
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
iload 15 /* ak */
castore
148: .line 1946
iinc 12 /* great */ -1
end local 15 // char ak
149: .line 1917
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 1955
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_1
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([CIIZ)V
152: .line 1956
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 1958
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 1972
iload 2 /* right */
iload 1 /* left */
isub
bipush 29
if_icmple 17
1: .line 1973
sipush 256
newarray 10
astore 3 /* count */
start local 3 // int[] count
2: .line 1975
iload 1 /* left */
iconst_1
isub
istore 4 /* i */
start local 4 // int i
3: goto 5
4: .line 1976
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 1975
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
iload 4 /* i */
iload 2 /* right */
if_icmple 4
end local 4 // int i
6: .line 1978
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 1979
StackMap locals: int
StackMap stack:
aload 3 /* count */
iinc 4 /* i */ -1
iload 4 /* i */
iaload
ifeq 9
10: .line 1980
iload 4 /* i */
bipush -128
iadd
i2b
istore 6 /* value */
start local 6 // byte value
11: .line 1981
aload 3 /* count */
iload 4 /* i */
iaload
istore 7 /* s */
start local 7 // int s
12: .line 1984
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
iload 6 /* value */
bastore
13: .line 1985
iinc 7 /* s */ -1
iload 7 /* s */
14: .line 1983
ifgt 12
end local 7 // int s
end local 6 // byte value
15: .line 1978
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 1987
goto 29
17: .line 1988
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 1989
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 1990
goto 25
22: .line 1991
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 4 /* j */
iconst_1
iadd
aload 0 /* a */
iload 4 /* j */
baload
bastore
23: .line 1992
iload 4 /* j */
iinc 4 /* j */ -1
iload 1 /* left */
if_icmpne 25
24: .line 1993
goto 26
25: .line 1990
StackMap locals:
StackMap stack:
iload 5 /* ai */
aload 0 /* a */
iload 4 /* j */
baload
if_icmplt 22
26: .line 1996
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 4 /* j */
iconst_1
iadd
iload 5 /* ai */
bastore
end local 5 // byte ai
27: .line 1988
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 1999
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 2017
goto 2
1: .line 2018
StackMap locals:
StackMap stack:
iinc 2 /* right */ -1
2: .line 2017
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 2020
StackMap locals:
StackMap stack:
iload 2 /* right */
istore 6 /* k */
start local 6 // int k
4: goto 10
5: .line 2021
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 6 /* k */
faload
fstore 7 /* ak */
start local 7 // float ak
6: .line 2022
fload 7 /* ak */
fload 7 /* ak */
fcmpl
ifeq 10
7: .line 2023
aload 0 /* a */
iload 6 /* k */
aload 0 /* a */
iload 2 /* right */
faload
fastore
8: .line 2024
aload 0 /* a */
iload 2 /* right */
fload 7 /* ak */
fastore
9: .line 2025
iinc 2 /* right */ -1
end local 7 // float ak
10: .line 2020
StackMap locals:
StackMap stack:
iinc 6 /* k */ -1
iload 6 /* k */
iload 1 /* left */
if_icmpge 5
end local 6 // int k
11: .line 2032
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 2037
iload 2 /* right */
istore 6 /* hi */
start local 6 // int hi
13: .line 2042
goto 20
14: .line 2043
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 6 /* hi */
iadd
iconst_1
iushr
istore 7 /* middle */
start local 7 // int middle
15: .line 2044
aload 0 /* a */
iload 7 /* middle */
faload
fstore 8 /* middleValue */
start local 8 // float middleValue
16: .line 2046
fload 8 /* middleValue */
fconst_0
fcmpg
ifge 19
17: .line 2047
iload 7 /* middle */
iconst_1
iadd
istore 1 /* left */
18: .line 2048
goto 20
19: .line 2049
StackMap locals: int float
StackMap stack:
iload 7 /* middle */
istore 6 /* hi */
end local 8 // float middleValue
end local 7 // int middle
20: .line 2042
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 6 /* hi */
if_icmplt 14
21: .line 2056
goto 23
22: .line 2057
StackMap locals:
StackMap stack:
iinc 1 /* left */ 1
23: .line 2056
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 2081
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 2082
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 7 /* k */
faload
fstore 9 /* ak */
start local 9 // float ak
28: .line 2083
fload 9 /* ak */
fconst_0
fcmpl
ifeq 30
29: .line 2084
goto 34
30: .line 2086
StackMap locals: float
StackMap stack:
fload 9 /* ak */
invokestatic java.lang.Float.floatToRawIntBits:(F)I
ifge 33
31: .line 2087
aload 0 /* a */
iload 7 /* k */
fconst_0
fastore
32: .line 2088
aload 0 /* a */
iinc 8 /* p */ 1
iload 8 /* p */
ldc -0.0
fastore
end local 9 // float ak
33: .line 2081
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 2091
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 2106
iload 2 /* right */
iload 1 /* left */
isub
sipush 286
if_icmpge 3
1: .line 2107
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([FIIZ)V
2: .line 2108
return
3: .line 2115
StackMap locals:
StackMap stack:
bipush 68
newarray 10
astore 6 /* run */
start local 6 // int[] run
4: .line 2116
iconst_0
istore 7 /* count */
start local 7 // int count
5: aload 6 /* run */
iconst_0
iload 1 /* left */
iastore
6: .line 2119
iload 1 /* left */
istore 8 /* k */
start local 8 // int k
7: goto 30
8: .line 2120
StackMap locals: int[] int int
StackMap stack:
aload 0 /* a */
iload 8 /* k */
faload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
faload
fcmpg
ifge 11
9: .line 2121
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 26
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
faload
aload 0 /* a */
iload 8 /* k */
faload
fcmpg
ifle 9
10: .line 2122
goto 26
StackMap locals:
StackMap stack:
11: aload 0 /* a */
iload 8 /* k */
faload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
faload
fcmpl
ifle 20
12: .line 2123
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 13
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
faload
aload 0 /* a */
iload 8 /* k */
faload
fcmpl
ifge 12
13: .line 2124
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
istore 9 /* lo */
start local 9 // int lo
14: iload 8 /* k */
istore 10 /* hi */
start local 10 // int hi
15: goto 18
16: .line 2125
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 9 /* lo */
faload
fstore 11 /* t */
start local 11 // float t
17: 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
18: .line 2124
StackMap locals:
StackMap stack:
iinc 9 /* lo */ 1
iload 9 /* lo */
iinc 10 /* hi */ -1
iload 10 /* hi */
if_icmplt 16
end local 10 // int hi
end local 9 // int lo
19: .line 2127
goto 26
20: .line 2128
StackMap locals:
StackMap stack:
bipush 33
istore 9 /* m */
start local 9 // int m
21: goto 25
22: .line 2129
StackMap locals: int
StackMap stack:
iinc 9 /* m */ -1
iload 9 /* m */
ifne 25
23: .line 2130
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([FIIZ)V
24: .line 2131
return
25: .line 2128
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 26
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
faload
aload 0 /* a */
iload 8 /* k */
faload
fcmpl
ifeq 22
end local 9 // int m
26: .line 2140
StackMap locals:
StackMap stack:
iinc 7 /* count */ 1
iload 7 /* count */
bipush 67
if_icmpne 29
27: .line 2141
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([FIIZ)V
28: .line 2142
return
29: .line 2119
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iload 8 /* k */
iastore
StackMap locals:
StackMap stack:
30: iload 8 /* k */
iload 2 /* right */
if_icmplt 8
end local 8 // int k
31: .line 2148
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
iinc 2 /* right */ 1
if_icmpne 34
32: .line 2149
aload 6 /* run */
iinc 7 /* count */ 1
iload 7 /* count */
iload 2 /* right */
iastore
33: .line 2150
goto 36
StackMap locals:
StackMap stack:
34: iload 7 /* count */
iconst_1
if_icmpne 36
35: .line 2151
return
36: .line 2155
StackMap locals:
StackMap stack:
iconst_0
istore 8 /* odd */
start local 8 // byte odd
37: .line 2156
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 2161
iload 2 /* right */
iload 1 /* left */
isub
istore 12 /* blen */
start local 12 // int blen
42: .line 2162
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 2163
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 2164
iconst_0
istore 4 /* workBase */
45: .line 2166
StackMap locals:
StackMap stack:
iload 8 /* odd */
ifne 52
46: .line 2167
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 2168
aload 0 /* a */
astore 9 /* b */
start local 9 // float[] b
48: .line 2169
iconst_0
istore 11 /* bo */
start local 11 // int bo
49: .line 2170
aload 3 /* work */
astore 0 /* a */
50: .line 2171
iload 4 /* workBase */
iload 1 /* left */
isub
istore 10 /* ao */
start local 10 // int ao
51: .line 2172
goto 86
end local 11 // int bo
end local 10 // int ao
end local 9 // float[] b
52: .line 2173
StackMap locals:
StackMap stack:
aload 3 /* work */
astore 9 /* b */
start local 9 // float[] b
53: .line 2174
iconst_0
istore 10 /* ao */
start local 10 // int ao
54: .line 2175
iload 4 /* workBase */
iload 1 /* left */
isub
istore 11 /* bo */
start local 11 // int bo
55: .line 2179
goto 86
56: .line 2180
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 2181
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 2182
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 2183
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 2184
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 2185
goto 69
68: .line 2186
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 2182
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 2189
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 2180
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 2191
iload 7 /* count */
iconst_1
iand
ifeq 81
75: .line 2192
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 2193
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 2192
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 2195
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 2 /* right */
iastore
81: .line 2197
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 2198
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 2179
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 2200
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 31 8 k I
14 19 9 lo I
15 19 10 hi I
17 18 11 t F
21 26 9 m I
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 2211
iload 2 /* right */
iload 1 /* left */
isub
iconst_1
iadd
istore 4 /* length */
start local 4 // int length
1: .line 2214
iload 4 /* length */
bipush 47
if_icmpge 42
2: .line 2215
iload 3 /* leftmost */
ifeq 16
3: .line 2221
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 2222
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 2223
goto 11
8: .line 2224
StackMap locals: float
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
aload 0 /* a */
iload 6 /* j */
faload
fastore
9: .line 2225
iload 6 /* j */
iinc 6 /* j */ -1
iload 1 /* left */
if_icmpne 11
10: .line 2226
goto 12
11: .line 2223
StackMap locals:
StackMap stack:
fload 7 /* ai */
aload 0 /* a */
iload 6 /* j */
faload
fcmpg
iflt 8
12: .line 2229
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
fload 7 /* ai */
fastore
end local 7 // float ai
13: .line 2221
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 2231
goto 41
16: .line 2236
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmplt 18
17: .line 2237
return
18: .line 2239
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 2235
fcmpl
ifge 16
20: .line 2249
iload 1 /* left */
istore 5 /* k */
start local 5 // int k
21: goto 35
22: .line 2250
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 2252
fload 6 /* a1 */
fload 7 /* a2 */
fcmpg
ifge 28
25: .line 2253
fload 6 /* a1 */
fstore 7 /* a2 */
aload 0 /* a */
iload 1 /* left */
faload
fstore 6 /* a1 */
26: .line 2255
goto 28
27: .line 2256
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 2255
StackMap locals:
StackMap stack:
fload 6 /* a1 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
faload
fcmpg
iflt 27
29: .line 2258
aload 0 /* a */
iinc 5 /* k */ 1
iload 5 /* k */
iconst_1
iadd
fload 6 /* a1 */
fastore
30: .line 2260
goto 32
31: .line 2261
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
aload 0 /* a */
iload 5 /* k */
faload
fastore
32: .line 2260
StackMap locals:
StackMap stack:
fload 7 /* a2 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
faload
fcmpg
iflt 31
33: .line 2263
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 2249
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 2265
aload 0 /* a */
iload 2 /* right */
faload
fstore 5 /* last */
start local 5 // float last
37: .line 2267
goto 39
38: .line 2268
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 2267
StackMap locals:
StackMap stack:
fload 5 /* last */
aload 0 /* a */
iinc 2 /* right */ -1
iload 2 /* right */
faload
fcmpg
iflt 38
40: .line 2270
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
fload 5 /* last */
fastore
end local 5 // float last
41: .line 2272
StackMap locals:
StackMap stack:
return
42: .line 2276
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 2285
iload 1 /* left */
iload 2 /* right */
iadd
iconst_1
iushr
istore 6 /* e3 */
start local 6 // int e3
44: .line 2286
iload 6 /* e3 */
iload 5 /* seventh */
isub
istore 7 /* e2 */
start local 7 // int e2
45: .line 2287
iload 7 /* e2 */
iload 5 /* seventh */
isub
istore 8 /* e1 */
start local 8 // int e1
46: .line 2288
iload 6 /* e3 */
iload 5 /* seventh */
iadd
istore 9 /* e4 */
start local 9 // int e4
47: .line 2289
iload 9 /* e4 */
iload 5 /* seventh */
iadd
istore 10 /* e5 */
start local 10 // int e5
48: .line 2292
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 2294
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 2295
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 2297
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 2298
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 2299
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 2302
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 2303
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 2304
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 2305
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 2311
StackMap locals:
StackMap stack:
iload 1 /* left */
istore 11 /* less */
start local 11 // int less
63: .line 2312
iload 2 /* right */
istore 12 /* great */
start local 12 // int great
64: .line 2314
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 2320
aload 0 /* a */
iload 7 /* e2 */
faload
fstore 13 /* pivot1 */
start local 13 // float pivot1
66: .line 2321
aload 0 /* a */
iload 9 /* e4 */
faload
fstore 14 /* pivot2 */
start local 14 // float pivot2
67: .line 2329
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 1 /* left */
faload
fastore
68: .line 2330
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 2 /* right */
faload
fastore
69: .line 2335
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 2336
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 12 /* great */ -1
iload 12 /* great */
faload
fload 14 /* pivot2 */
fcmpl
ifgt 70
71: .line 2358
iload 11 /* less */
iconst_1
isub
istore 15 /* k */
start local 15 // int k
72: goto 92
73: .line 2359
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
faload
fstore 16 /* ak */
start local 16 // float ak
74: .line 2360
fload 16 /* ak */
fload 13 /* pivot1 */
fcmpg
ifge 79
75: .line 2361
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
faload
fastore
76: .line 2366
aload 0 /* a */
iload 11 /* less */
fload 16 /* ak */
fastore
77: .line 2367
iinc 11 /* less */ 1
78: .line 2368
goto 92
StackMap locals: float
StackMap stack:
79: fload 16 /* ak */
fload 14 /* pivot2 */
fcmpl
ifle 92
80: .line 2369
goto 83
81: .line 2370
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 15 /* k */
if_icmpne 83
82: .line 2371
goto 93
83: .line 2369
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
faload
fload 14 /* pivot2 */
fcmpl
ifgt 81
84: .line 2374
aload 0 /* a */
iload 12 /* great */
faload
fload 13 /* pivot1 */
fcmpg
ifge 89
85: .line 2375
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
faload
fastore
86: .line 2376
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
faload
fastore
87: .line 2377
iinc 11 /* less */ 1
88: .line 2378
goto 90
89: .line 2379
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
faload
fastore
90: .line 2385
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
fload 16 /* ak */
fastore
91: .line 2386
iinc 12 /* great */ -1
end local 16 // float ak
92: .line 2358
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
iload 15 /* k */
iload 12 /* great */
if_icmple 73
end local 15 // int k
93: .line 2391
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 2392
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 2395
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_2
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([FIIZ)V
96: .line 2396
aload 0 /* a */
iload 12 /* great */
iconst_2
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([FIIZ)V
97: .line 2402
iload 11 /* less */
iload 8 /* e1 */
if_icmpge 126
iload 10 /* e5 */
iload 12 /* great */
if_icmpge 126
98: .line 2406
goto 100
99: .line 2407
StackMap locals:
StackMap stack:
iinc 11 /* less */ 1
100: .line 2406
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
faload
fload 13 /* pivot1 */
fcmpl
ifeq 99
101: .line 2410
goto 103
102: .line 2411
StackMap locals:
StackMap stack:
iinc 12 /* great */ -1
103: .line 2410
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
faload
fload 14 /* pivot2 */
fcmpl
ifeq 102
104: .line 2434
iload 11 /* less */
iconst_1
isub
istore 15 /* k */
start local 15 // int k
105: goto 125
106: .line 2435
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
faload
fstore 16 /* ak */
start local 16 // float ak
107: .line 2436
fload 16 /* ak */
fload 13 /* pivot1 */
fcmpl
ifne 112
108: .line 2437
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
faload
fastore
109: .line 2438
aload 0 /* a */
iload 11 /* less */
fload 16 /* ak */
fastore
110: .line 2439
iinc 11 /* less */ 1
111: .line 2440
goto 125
StackMap locals: float
StackMap stack:
112: fload 16 /* ak */
fload 14 /* pivot2 */
fcmpl
ifne 125
113: .line 2441
goto 116
114: .line 2442
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 15 /* k */
if_icmpne 116
115: .line 2443
goto 126
116: .line 2441
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
faload
fload 14 /* pivot2 */
fcmpl
ifeq 114
117: .line 2446
aload 0 /* a */
iload 12 /* great */
faload
fload 13 /* pivot1 */
fcmpl
ifne 122
118: .line 2447
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
faload
fastore
119: .line 2456
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
faload
fastore
120: .line 2457
iinc 11 /* less */ 1
121: .line 2458
goto 123
122: .line 2459
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
faload
fastore
123: .line 2461
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
fload 16 /* ak */
fastore
124: .line 2462
iinc 12 /* great */ -1
end local 16 // float ak
125: .line 2434
StackMap locals:
StackMap stack:
iinc 15 /* k */ 1
iload 15 /* k */
iload 12 /* great */
if_icmple 106
end local 15 // int k
126: .line 2468
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 2470
goto 153
128: .line 2475
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
faload
fstore 13 /* pivot */
start local 13 // float pivot
129: .line 2497
iload 11 /* less */
istore 14 /* k */
start local 14 // int k
130: goto 150
131: .line 2498
StackMap locals: float int
StackMap stack:
aload 0 /* a */
iload 14 /* k */
faload
fload 13 /* pivot */
fcmpl
ifne 133
132: .line 2499
goto 149
133: .line 2501
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 14 /* k */
faload
fstore 15 /* ak */
start local 15 // float ak
134: .line 2502
fload 15 /* ak */
fload 13 /* pivot */
fcmpg
ifge 140
135: .line 2503
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 11 /* less */
faload
fastore
136: .line 2504
aload 0 /* a */
iload 11 /* less */
fload 15 /* ak */
fastore
137: .line 2505
iinc 11 /* less */ 1
138: .line 2506
goto 149
139: .line 2508
StackMap locals: float
StackMap stack:
iinc 12 /* great */ -1
140: .line 2507
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
faload
fload 13 /* pivot */
fcmpl
ifgt 139
141: .line 2510
aload 0 /* a */
iload 12 /* great */
faload
fload 13 /* pivot */
fcmpg
ifge 146
142: .line 2511
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 11 /* less */
faload
fastore
143: .line 2512
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
faload
fastore
144: .line 2513
iinc 11 /* less */ 1
145: .line 2514
goto 147
146: .line 2523
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 14 /* k */
aload 0 /* a */
iload 12 /* great */
faload
fastore
147: .line 2525
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
fload 15 /* ak */
fastore
148: .line 2526
iinc 12 /* great */ -1
end local 15 // float ak
149: .line 2497
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 2535
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_1
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([FIIZ)V
152: .line 2536
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 2538
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 2556
goto 2
1: .line 2557
StackMap locals:
StackMap stack:
iinc 2 /* right */ -1
2: .line 2556
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 2559
StackMap locals:
StackMap stack:
iload 2 /* right */
istore 6 /* k */
start local 6 // int k
4: goto 10
5: .line 2560
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 6 /* k */
daload
dstore 7 /* ak */
start local 7 // double ak
6: .line 2561
dload 7 /* ak */
dload 7 /* ak */
dcmpl
ifeq 10
7: .line 2562
aload 0 /* a */
iload 6 /* k */
aload 0 /* a */
iload 2 /* right */
daload
dastore
8: .line 2563
aload 0 /* a */
iload 2 /* right */
dload 7 /* ak */
dastore
9: .line 2564
iinc 2 /* right */ -1
end local 7 // double ak
10: .line 2559
StackMap locals:
StackMap stack:
iinc 6 /* k */ -1
iload 6 /* k */
iload 1 /* left */
if_icmpge 5
end local 6 // int k
11: .line 2571
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 2576
iload 2 /* right */
istore 6 /* hi */
start local 6 // int hi
13: .line 2581
goto 20
14: .line 2582
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 6 /* hi */
iadd
iconst_1
iushr
istore 7 /* middle */
start local 7 // int middle
15: .line 2583
aload 0 /* a */
iload 7 /* middle */
daload
dstore 8 /* middleValue */
start local 8 // double middleValue
16: .line 2585
dload 8 /* middleValue */
dconst_0
dcmpg
ifge 19
17: .line 2586
iload 7 /* middle */
iconst_1
iadd
istore 1 /* left */
18: .line 2587
goto 20
19: .line 2588
StackMap locals: int double
StackMap stack:
iload 7 /* middle */
istore 6 /* hi */
end local 8 // double middleValue
end local 7 // int middle
20: .line 2581
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 6 /* hi */
if_icmplt 14
21: .line 2595
goto 23
22: .line 2596
StackMap locals:
StackMap stack:
iinc 1 /* left */ 1
23: .line 2595
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 2620
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 2621
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 7 /* k */
daload
dstore 9 /* ak */
start local 9 // double ak
28: .line 2622
dload 9 /* ak */
dconst_0
dcmpl
ifeq 30
29: .line 2623
goto 34
30: .line 2625
StackMap locals: double
StackMap stack:
dload 9 /* ak */
invokestatic java.lang.Double.doubleToRawLongBits:(D)J
lconst_0
lcmp
ifge 33
31: .line 2626
aload 0 /* a */
iload 7 /* k */
dconst_0
dastore
32: .line 2627
aload 0 /* a */
iinc 8 /* p */ 1
iload 8 /* p */
ldc -0.0
dastore
end local 9 // double ak
33: .line 2620
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 2630
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 2645
iload 2 /* right */
iload 1 /* left */
isub
sipush 286
if_icmpge 3
1: .line 2646
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([DIIZ)V
2: .line 2647
return
3: .line 2654
StackMap locals:
StackMap stack:
bipush 68
newarray 10
astore 6 /* run */
start local 6 // int[] run
4: .line 2655
iconst_0
istore 7 /* count */
start local 7 // int count
5: aload 6 /* run */
iconst_0
iload 1 /* left */
iastore
6: .line 2658
iload 1 /* left */
istore 8 /* k */
start local 8 // int k
7: goto 30
8: .line 2659
StackMap locals: int[] int int
StackMap stack:
aload 0 /* a */
iload 8 /* k */
daload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
daload
dcmpg
ifge 11
9: .line 2660
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 26
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
daload
aload 0 /* a */
iload 8 /* k */
daload
dcmpg
ifle 9
10: .line 2661
goto 26
StackMap locals:
StackMap stack:
11: aload 0 /* a */
iload 8 /* k */
daload
aload 0 /* a */
iload 8 /* k */
iconst_1
iadd
daload
dcmpl
ifle 20
12: .line 2662
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 13
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
daload
aload 0 /* a */
iload 8 /* k */
daload
dcmpl
ifge 12
13: .line 2663
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iaload
iconst_1
isub
istore 9 /* lo */
start local 9 // int lo
14: iload 8 /* k */
istore 10 /* hi */
start local 10 // int hi
15: goto 18
16: .line 2664
StackMap locals: int int
StackMap stack:
aload 0 /* a */
iload 9 /* lo */
daload
dstore 11 /* t */
start local 11 // double t
17: 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
18: .line 2663
StackMap locals:
StackMap stack:
iinc 9 /* lo */ 1
iload 9 /* lo */
iinc 10 /* hi */ -1
iload 10 /* hi */
if_icmplt 16
end local 10 // int hi
end local 9 // int lo
19: .line 2666
goto 26
20: .line 2667
StackMap locals:
StackMap stack:
bipush 33
istore 9 /* m */
start local 9 // int m
21: goto 25
22: .line 2668
StackMap locals: int
StackMap stack:
iinc 9 /* m */ -1
iload 9 /* m */
ifne 25
23: .line 2669
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([DIIZ)V
24: .line 2670
return
25: .line 2667
StackMap locals:
StackMap stack:
iinc 8 /* k */ 1
iload 8 /* k */
iload 2 /* right */
if_icmpgt 26
aload 0 /* a */
iload 8 /* k */
iconst_1
isub
daload
aload 0 /* a */
iload 8 /* k */
daload
dcmpl
ifeq 22
end local 9 // int m
26: .line 2679
StackMap locals:
StackMap stack:
iinc 7 /* count */ 1
iload 7 /* count */
bipush 67
if_icmpne 29
27: .line 2680
aload 0 /* a */
iload 1 /* left */
iload 2 /* right */
iconst_1
invokestatic java.util.DualPivotQuicksort.sort:([DIIZ)V
28: .line 2681
return
29: .line 2658
StackMap locals:
StackMap stack:
aload 6 /* run */
iload 7 /* count */
iload 8 /* k */
iastore
StackMap locals:
StackMap stack:
30: iload 8 /* k */
iload 2 /* right */
if_icmplt 8
end local 8 // int k
31: .line 2687
aload 6 /* run */
iload 7 /* count */
iaload
iload 2 /* right */
iinc 2 /* right */ 1
if_icmpne 34
32: .line 2688
aload 6 /* run */
iinc 7 /* count */ 1
iload 7 /* count */
iload 2 /* right */
iastore
33: .line 2689
goto 36
StackMap locals:
StackMap stack:
34: iload 7 /* count */
iconst_1
if_icmpne 36
35: .line 2690
return
36: .line 2694
StackMap locals:
StackMap stack:
iconst_0
istore 8 /* odd */
start local 8 // byte odd
37: .line 2695
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 2700
iload 2 /* right */
iload 1 /* left */
isub
istore 12 /* blen */
start local 12 // int blen
42: .line 2701
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 2702
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 2703
iconst_0
istore 4 /* workBase */
45: .line 2705
StackMap locals:
StackMap stack:
iload 8 /* odd */
ifne 52
46: .line 2706
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 2707
aload 0 /* a */
astore 9 /* b */
start local 9 // double[] b
48: .line 2708
iconst_0
istore 11 /* bo */
start local 11 // int bo
49: .line 2709
aload 3 /* work */
astore 0 /* a */
50: .line 2710
iload 4 /* workBase */
iload 1 /* left */
isub
istore 10 /* ao */
start local 10 // int ao
51: .line 2711
goto 86
end local 11 // int bo
end local 10 // int ao
end local 9 // double[] b
52: .line 2712
StackMap locals:
StackMap stack:
aload 3 /* work */
astore 9 /* b */
start local 9 // double[] b
53: .line 2713
iconst_0
istore 10 /* ao */
start local 10 // int ao
54: .line 2714
iload 4 /* workBase */
iload 1 /* left */
isub
istore 11 /* bo */
start local 11 // int bo
55: .line 2718
goto 86
56: .line 2719
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 2720
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 2721
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 2722
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 2723
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 2724
goto 69
68: .line 2725
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 2721
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 2728
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 2719
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 2730
iload 7 /* count */
iconst_1
iand
ifeq 81
75: .line 2731
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 2732
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 2731
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 2734
aload 6 /* run */
iinc 13 /* last */ 1
iload 13 /* last */
iload 2 /* right */
iastore
81: .line 2736
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 2737
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 2718
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 2739
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 31 8 k I
14 19 9 lo I
15 19 10 hi I
17 18 11 t D
21 26 9 m I
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 2750
iload 2 /* right */
iload 1 /* left */
isub
iconst_1
iadd
istore 4 /* length */
start local 4 // int length
1: .line 2753
iload 4 /* length */
bipush 47
if_icmpge 42
2: .line 2754
iload 3 /* leftmost */
ifeq 16
3: .line 2760
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 2761
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 2762
goto 11
8: .line 2763
StackMap locals: double
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
aload 0 /* a */
iload 6 /* j */
daload
dastore
9: .line 2764
iload 6 /* j */
iinc 6 /* j */ -1
iload 1 /* left */
if_icmpne 11
10: .line 2765
goto 12
11: .line 2762
StackMap locals:
StackMap stack:
dload 7 /* ai */
aload 0 /* a */
iload 6 /* j */
daload
dcmpg
iflt 8
12: .line 2768
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* j */
iconst_1
iadd
dload 7 /* ai */
dastore
end local 7 // double ai
13: .line 2760
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 2770
goto 41
16: .line 2775
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmplt 18
17: .line 2776
return
18: .line 2778
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 2774
dcmpl
ifge 16
20: .line 2788
iload 1 /* left */
istore 5 /* k */
start local 5 // int k
21: goto 35
22: .line 2789
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 2791
dload 6 /* a1 */
dload 8 /* a2 */
dcmpg
ifge 28
25: .line 2792
dload 6 /* a1 */
dstore 8 /* a2 */
aload 0 /* a */
iload 1 /* left */
daload
dstore 6 /* a1 */
26: .line 2794
goto 28
27: .line 2795
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 2794
StackMap locals:
StackMap stack:
dload 6 /* a1 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
daload
dcmpg
iflt 27
29: .line 2797
aload 0 /* a */
iinc 5 /* k */ 1
iload 5 /* k */
iconst_1
iadd
dload 6 /* a1 */
dastore
30: .line 2799
goto 32
31: .line 2800
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 5 /* k */
iconst_1
iadd
aload 0 /* a */
iload 5 /* k */
daload
dastore
32: .line 2799
StackMap locals:
StackMap stack:
dload 8 /* a2 */
aload 0 /* a */
iinc 5 /* k */ -1
iload 5 /* k */
daload
dcmpg
iflt 31
33: .line 2802
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 2788
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 2804
aload 0 /* a */
iload 2 /* right */
daload
dstore 5 /* last */
start local 5 // double last
37: .line 2806
goto 39
38: .line 2807
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 2806
StackMap locals:
StackMap stack:
dload 5 /* last */
aload 0 /* a */
iinc 2 /* right */ -1
iload 2 /* right */
daload
dcmpg
iflt 38
40: .line 2809
aload 0 /* a */
iload 2 /* right */
iconst_1
iadd
dload 5 /* last */
dastore
end local 5 // double last
41: .line 2811
StackMap locals:
StackMap stack:
return
42: .line 2815
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 2824
iload 1 /* left */
iload 2 /* right */
iadd
iconst_1
iushr
istore 6 /* e3 */
start local 6 // int e3
44: .line 2825
iload 6 /* e3 */
iload 5 /* seventh */
isub
istore 7 /* e2 */
start local 7 // int e2
45: .line 2826
iload 7 /* e2 */
iload 5 /* seventh */
isub
istore 8 /* e1 */
start local 8 // int e1
46: .line 2827
iload 6 /* e3 */
iload 5 /* seventh */
iadd
istore 9 /* e4 */
start local 9 // int e4
47: .line 2828
iload 9 /* e4 */
iload 5 /* seventh */
iadd
istore 10 /* e5 */
start local 10 // int e5
48: .line 2831
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 2833
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 2834
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 2836
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 2837
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 2838
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 2841
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 2842
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 2843
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 2844
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 2850
StackMap locals:
StackMap stack:
iload 1 /* left */
istore 11 /* less */
start local 11 // int less
63: .line 2851
iload 2 /* right */
istore 12 /* great */
start local 12 // int great
64: .line 2853
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 2859
aload 0 /* a */
iload 7 /* e2 */
daload
dstore 13 /* pivot1 */
start local 13 // double pivot1
66: .line 2860
aload 0 /* a */
iload 9 /* e4 */
daload
dstore 15 /* pivot2 */
start local 15 // double pivot2
67: .line 2868
aload 0 /* a */
iload 7 /* e2 */
aload 0 /* a */
iload 1 /* left */
daload
dastore
68: .line 2869
aload 0 /* a */
iload 9 /* e4 */
aload 0 /* a */
iload 2 /* right */
daload
dastore
69: .line 2874
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 2875
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 12 /* great */ -1
iload 12 /* great */
daload
dload 15 /* pivot2 */
dcmpl
ifgt 70
71: .line 2897
iload 11 /* less */
iconst_1
isub
istore 17 /* k */
start local 17 // int k
72: goto 92
73: .line 2898
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 17 /* k */
daload
dstore 18 /* ak */
start local 18 // double ak
74: .line 2899
dload 18 /* ak */
dload 13 /* pivot1 */
dcmpg
ifge 79
75: .line 2900
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 11 /* less */
daload
dastore
76: .line 2905
aload 0 /* a */
iload 11 /* less */
dload 18 /* ak */
dastore
77: .line 2906
iinc 11 /* less */ 1
78: .line 2907
goto 92
StackMap locals: double
StackMap stack:
79: dload 18 /* ak */
dload 15 /* pivot2 */
dcmpl
ifle 92
80: .line 2908
goto 83
81: .line 2909
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 17 /* k */
if_icmpne 83
82: .line 2910
goto 93
83: .line 2908
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
daload
dload 15 /* pivot2 */
dcmpl
ifgt 81
84: .line 2913
aload 0 /* a */
iload 12 /* great */
daload
dload 13 /* pivot1 */
dcmpg
ifge 89
85: .line 2914
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 11 /* less */
daload
dastore
86: .line 2915
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
daload
dastore
87: .line 2916
iinc 11 /* less */ 1
88: .line 2917
goto 90
89: .line 2918
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 12 /* great */
daload
dastore
90: .line 2924
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
dload 18 /* ak */
dastore
91: .line 2925
iinc 12 /* great */ -1
end local 18 // double ak
92: .line 2897
StackMap locals:
StackMap stack:
iinc 17 /* k */ 1
iload 17 /* k */
iload 12 /* great */
if_icmple 73
end local 17 // int k
93: .line 2930
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 2931
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 2934
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_2
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([DIIZ)V
96: .line 2935
aload 0 /* a */
iload 12 /* great */
iconst_2
iadd
iload 2 /* right */
iconst_0
invokestatic java.util.DualPivotQuicksort.sort:([DIIZ)V
97: .line 2941
iload 11 /* less */
iload 8 /* e1 */
if_icmpge 126
iload 10 /* e5 */
iload 12 /* great */
if_icmpge 126
98: .line 2945
goto 100
99: .line 2946
StackMap locals:
StackMap stack:
iinc 11 /* less */ 1
100: .line 2945
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 11 /* less */
daload
dload 13 /* pivot1 */
dcmpl
ifeq 99
101: .line 2949
goto 103
102: .line 2950
StackMap locals:
StackMap stack:
iinc 12 /* great */ -1
103: .line 2949
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
daload
dload 15 /* pivot2 */
dcmpl
ifeq 102
104: .line 2973
iload 11 /* less */
iconst_1
isub
istore 17 /* k */
start local 17 // int k
105: goto 125
106: .line 2974
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 17 /* k */
daload
dstore 18 /* ak */
start local 18 // double ak
107: .line 2975
dload 18 /* ak */
dload 13 /* pivot1 */
dcmpl
ifne 112
108: .line 2976
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 11 /* less */
daload
dastore
109: .line 2977
aload 0 /* a */
iload 11 /* less */
dload 18 /* ak */
dastore
110: .line 2978
iinc 11 /* less */ 1
111: .line 2979
goto 125
StackMap locals: double
StackMap stack:
112: dload 18 /* ak */
dload 15 /* pivot2 */
dcmpl
ifne 125
113: .line 2980
goto 116
114: .line 2981
StackMap locals:
StackMap stack:
iload 12 /* great */
iinc 12 /* great */ -1
iload 17 /* k */
if_icmpne 116
115: .line 2982
goto 126
116: .line 2980
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
daload
dload 15 /* pivot2 */
dcmpl
ifeq 114
117: .line 2985
aload 0 /* a */
iload 12 /* great */
daload
dload 13 /* pivot1 */
dcmpl
ifne 122
118: .line 2986
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 11 /* less */
daload
dastore
119: .line 2995
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
daload
dastore
120: .line 2996
iinc 11 /* less */ 1
121: .line 2997
goto 123
122: .line 2998
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 17 /* k */
aload 0 /* a */
iload 12 /* great */
daload
dastore
123: .line 3000
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
dload 18 /* ak */
dastore
124: .line 3001
iinc 12 /* great */ -1
end local 18 // double ak
125: .line 2973
StackMap locals:
StackMap stack:
iinc 17 /* k */ 1
iload 17 /* k */
iload 12 /* great */
if_icmple 106
end local 17 // int k
126: .line 3007
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 3009
goto 153
128: .line 3014
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* e3 */
daload
dstore 13 /* pivot */
start local 13 // double pivot
129: .line 3036
iload 11 /* less */
istore 15 /* k */
start local 15 // int k
130: goto 150
131: .line 3037
StackMap locals: double int
StackMap stack:
aload 0 /* a */
iload 15 /* k */
daload
dload 13 /* pivot */
dcmpl
ifne 133
132: .line 3038
goto 149
133: .line 3040
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
daload
dstore 16 /* ak */
start local 16 // double ak
134: .line 3041
dload 16 /* ak */
dload 13 /* pivot */
dcmpg
ifge 140
135: .line 3042
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
daload
dastore
136: .line 3043
aload 0 /* a */
iload 11 /* less */
dload 16 /* ak */
dastore
137: .line 3044
iinc 11 /* less */ 1
138: .line 3045
goto 149
139: .line 3047
StackMap locals: double
StackMap stack:
iinc 12 /* great */ -1
140: .line 3046
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
daload
dload 13 /* pivot */
dcmpl
ifgt 139
141: .line 3049
aload 0 /* a */
iload 12 /* great */
daload
dload 13 /* pivot */
dcmpg
ifge 146
142: .line 3050
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 11 /* less */
daload
dastore
143: .line 3051
aload 0 /* a */
iload 11 /* less */
aload 0 /* a */
iload 12 /* great */
daload
dastore
144: .line 3052
iinc 11 /* less */ 1
145: .line 3053
goto 147
146: .line 3062
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 15 /* k */
aload 0 /* a */
iload 12 /* great */
daload
dastore
147: .line 3064
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 12 /* great */
dload 16 /* ak */
dastore
148: .line 3065
iinc 12 /* great */ -1
end local 16 // double ak
149: .line 3036
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 3074
aload 0 /* a */
iload 1 /* left */
iload 11 /* less */
iconst_1
isub
iload 3 /* leftmost */
invokestatic java.util.DualPivotQuicksort.sort:([DIIZ)V
152: .line 3075
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 3077
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"