1Generated: ./blort.class
2reading blort.class...
3method <init> ()V
4block 0000: 0000..0004
5  0000: aload_0 // 00
6  0001: invokespecial method{java.lang.Object.<init>:()V}
7  next 0004
8block 0004: 0004..0005
9  0004: return
10  returns
11
12method test_live_exception ([I)V
13block 0000: 0000..0002
14  0000: nop
15  0001: nop
16  next 0002
17block 0002: 0002..0004
18  0002: aload_0 // 00
19  0003: arraylength
20  next 0007
21  next 0006
22  next 0004
23  catch java.lang.RuntimeException -> 0007
24  catch <any> -> 0006
25block 0004: 0004..0005
26  0004: nop
27  next 0005
28block 0005: 0005..0006
29  0005: return
30  returns
31block 0006: 0006..0007
32  0006: return
33  returns
34block 0007: 0007..0008
35  0007: return
36  returns
37
38method test_dead_exception ()V
39block 0000: 0000..0002
40  0000: nop
41  0001: nop
42  next 0002
43block 0002: 0002..0003
44  0002: nop
45  next 0003
46block 0003: 0003..0004
47  0003: nop
48  next 0004
49block 0004: 0004..0005
50  0004: return
51  returns
52block 0005: 0005..0006
53  0005: return
54  returns
55block 0006: 0006..0007
56  0006: return
57  returns
58
59method test_ifs ()V
60block 0000: 0000..0003
61  0000: ifeq 0031
62  next 0003
63  next 0031
64block 0003: 0003..0006
65  0003: ifne 0032
66  next 0006
67  next 0032
68block 0006: 0006..0009
69  0006: iflt 0033
70  next 0009
71  next 0033
72block 0009: 0009..000c
73  0009: ifge 0034
74  next 000c
75  next 0034
76block 000c: 000c..000f
77  000c: ifgt 0035
78  next 000f
79  next 0035
80block 000f: 000f..0012
81  000f: ifle 0036
82  next 0012
83  next 0036
84block 0012: 0012..0015
85  0012: if_icmpeq 0037
86  next 0015
87  next 0037
88block 0015: 0015..0018
89  0015: if_icmpne 0038
90  next 0018
91  next 0038
92block 0018: 0018..001b
93  0018: if_icmplt 0039
94  next 001b
95  next 0039
96block 001b: 001b..001e
97  001b: if_icmpge 003a
98  next 001e
99  next 003a
100block 001e: 001e..0021
101  001e: if_icmpgt 003b
102  next 0021
103  next 003b
104block 0021: 0021..0024
105  0021: if_icmple 003c
106  next 0024
107  next 003c
108block 0024: 0024..0027
109  0024: if_acmpeq 003d
110  next 0027
111  next 003d
112block 0027: 0027..002a
113  0027: if_acmpne 003e
114  next 002a
115  next 003e
116block 002a: 002a..002d
117  002a: ifnull 003f
118  next 002d
119  next 003f
120block 002d: 002d..0030
121  002d: ifnonnull 0040
122  next 0030
123  next 0040
124block 0030: 0030..0031
125  0030: return
126  returns
127block 0031: 0031..0032
128  0031: return
129  returns
130block 0032: 0032..0033
131  0032: return
132  returns
133block 0033: 0033..0034
134  0033: return
135  returns
136block 0034: 0034..0035
137  0034: return
138  returns
139block 0035: 0035..0036
140  0035: return
141  returns
142block 0036: 0036..0037
143  0036: return
144  returns
145block 0037: 0037..0038
146  0037: return
147  returns
148block 0038: 0038..0039
149  0038: return
150  returns
151block 0039: 0039..003a
152  0039: return
153  returns
154block 003a: 003a..003b
155  003a: return
156  returns
157block 003b: 003b..003c
158  003b: return
159  returns
160block 003c: 003c..003d
161  003c: return
162  returns
163block 003d: 003d..003e
164  003d: return
165  returns
166block 003e: 003e..003f
167  003e: return
168  returns
169block 003f: 003f..0040
170  003f: return
171  returns
172block 0040: 0040..0041
173  0040: return
174  returns
175
176method test_jsr ()V
177block 0000: 0000..0003
178  0000: jsr 0009
179  next 0003
180  next 0009
181block 0003: 0003..0008
182  0003: jsr_w 0000000c
183  next 0008
184  next 000c
185block 0008: 0008..0009
186  0008: return
187  returns
188block 0009: 0009..000c
189  0009: astore_0 // 00
190  000a: ret 00
191  returns
192block 000c: 000c..0011
193  000c: astore_0 // 00
194  000d: wide ret 0000
195  returns
196
197method test_tableswitch ()V
198block 0000: 0000..0018
199  0000: tableswitch
200    +00000010: 0018
201    +00000011: 0019
202    default: 001a
203  next 0018
204  next 0019
205  next 001a
206block 0018: 0018..0019
207  0018: return
208  returns
209block 0019: 0019..001a
210  0019: return
211  returns
212block 001a: 001a..001b
213  001a: return
214  returns
215
216method test_lookupswitch ()V
217block 0000: 0000..001c
218  0000: lookupswitch
219    +00000005: 001c
220    +00000010: 001d
221    default: 001e
222  next 001c
223  next 001d
224  next 001e
225block 001c: 001c..001d
226  001c: return
227  returns
228block 001d: 001d..001e
229  001d: return
230  returns
231block 001e: 001e..001f
232  001e: return
233  returns
234
235method test_nonbranch ()V
236block 0000: 0000..0017
237  0000: nop
238  0001: aconst_null
239  0002: iconst_m1 // #-01
240  0003: iconst_0 // #+00
241  0004: iconst_1 // #+01
242  0005: iconst_2 // #+02
243  0006: iconst_3 // #+03
244  0007: iconst_4 // #+04
245  0008: iconst_5 // #+05
246  0009: lconst_0 // +00
247  000a: lconst_1 // +01
248  000b: fconst_0 // 0.0
249  000c: fconst_1 // 1.0
250  000d: fconst_2 // 2.0
251  000e: dconst_0 // 0.0
252  000f: dconst_1 // 1.0
253  0010: bipush #+10
254  0012: sipush #+1000
255  0015: ldc string{"x"}
256  next 0017
257block 0017: 0017..001a
258  0017: ldc_w string{"y"}
259  next 001a
260block 001a: 001a..003c
261  001a: ldc2_w #4008000000000000 // 3.0
262  001d: iload 05
263  001f: lload 05 // category-2
264  0021: fload 05
265  0023: dload 05 // category-2
266  0025: aload 05
267  0027: iload_0 // 00
268  0028: iload_1 // 01
269  0029: iload_2 // 02
270  002a: iload_3 // 03
271  002b: lload_0 // 00, category-2
272  002c: lload_1 // 01, category-2
273  002d: lload_2 // 02, category-2
274  002e: lload_3 // 03, category-2
275  002f: fload_0 // 00
276  0030: fload_1 // 01
277  0031: fload_2 // 02
278  0032: fload_3 // 03
279  0033: dload_0 // 00, category-2
280  0034: dload_1 // 01, category-2
281  0035: dload_2 // 02, category-2
282  0036: dload_3 // 03, category-2
283  0037: aload_0 // 00
284  0038: aload_1 // 01
285  0039: aload_2 // 02
286  003a: aload_3 // 03
287  003b: iaload
288  next 003c
289block 003c: 003c..003d
290  003c: laload
291  next 003d
292block 003d: 003d..003e
293  003d: faload
294  next 003e
295block 003e: 003e..003f
296  003e: daload
297  next 003f
298block 003f: 003f..0040
299  003f: aaload
300  next 0040
301block 0040: 0040..0041
302  0040: baload
303  next 0041
304block 0041: 0041..0042
305  0041: caload
306  next 0042
307block 0042: 0042..0043
308  0042: saload
309  next 0043
310block 0043: 0043..0062
311  0043: istore 05
312  0045: lstore 05 // category-2
313  0047: fstore 05
314  0049: dstore 05 // category-2
315  004b: astore 05
316  004d: istore_0 // 00
317  004e: istore_1 // 01
318  004f: istore_2 // 02
319  0050: istore_3 // 03
320  0051: lstore_0 // 00, category-2
321  0052: lstore_1 // 01, category-2
322  0053: lstore_2 // 02, category-2
323  0054: lstore_3 // 03, category-2
324  0055: fstore_0 // 00
325  0056: fstore_1 // 01
326  0057: fstore_2 // 02
327  0058: fstore_3 // 03
328  0059: dstore_0 // 00, category-2
329  005a: dstore_1 // 01, category-2
330  005b: dstore_2 // 02, category-2
331  005c: dstore_3 // 03, category-2
332  005d: astore_0 // 00
333  005e: astore_1 // 01
334  005f: astore_2 // 02
335  0060: astore_3 // 03
336  0061: iastore
337  next 0062
338block 0062: 0062..0063
339  0062: lastore
340  next 0063
341block 0063: 0063..0064
342  0063: fastore
343  next 0064
344block 0064: 0064..0065
345  0064: dastore
346  next 0065
347block 0065: 0065..0066
348  0065: aastore
349  next 0066
350block 0066: 0066..0067
351  0066: bastore
352  next 0067
353block 0067: 0067..0068
354  0067: castore
355  next 0068
356block 0068: 0068..0069
357  0068: sastore
358  next 0069
359block 0069: 0069..007f
360  0069: pop
361  006a: pop2
362  006b: dup
363  006c: dup_x1
364  006d: dup_x2
365  006e: dup2
366  006f: dup2_x1
367  0070: dup2_x2
368  0071: swap
369  0072: iadd
370  0073: ladd
371  0074: fadd
372  0075: dadd
373  0076: isub
374  0077: lsub
375  0078: fsub
376  0079: dsub
377  007a: imul
378  007b: lmul
379  007c: fmul
380  007d: dmul
381  007e: idiv
382  next 007f
383block 007f: 007f..0080
384  007f: ldiv
385  next 0080
386block 0080: 0080..0083
387  0080: fdiv
388  0081: ddiv
389  0082: irem
390  next 0083
391block 0083: 0083..0084
392  0083: lrem
393  next 0084
394block 0084: 0084..00b0
395  0084: frem
396  0085: drem
397  0086: ineg
398  0087: lneg
399  0088: fneg
400  0089: dneg
401  008a: ishl
402  008b: lshl
403  008c: ishr
404  008d: lshr
405  008e: iushr
406  008f: lushr
407  0090: iand
408  0091: land
409  0092: ior
410  0093: lor
411  0094: ixor
412  0095: lxor
413  0096: iinc 05, #+10
414  0099: i2l
415  009a: i2f
416  009b: i2d
417  009c: l2i
418  009d: l2f
419  009e: l2d
420  009f: f2i
421  00a0: f2l
422  00a1: f2d
423  00a2: d2i
424  00a3: d2l
425  00a4: d2f
426  00a5: i2b
427  00a6: i2c
428  00a7: i2s
429  00a8: lcmp
430  00a9: fcmpl
431  00aa: fcmpg
432  00ab: dcmpl
433  00ac: dcmpg
434  00ad: getstatic field{blort.x:I}
435  next 00b0
436block 00b0: 00b0..00b3
437  00b0: putstatic field{blort.x:I}
438  next 00b3
439block 00b3: 00b3..00b6
440  00b3: getfield field{blort.x:I}
441  next 00b6
442block 00b6: 00b6..00b9
443  00b6: putfield field{blort.x:I}
444  next 00b9
445block 00b9: 00b9..00bc
446  00b9: invokevirtual method{blort.x:()V}
447  next 00bc
448block 00bc: 00bc..00bf
449  00bc: invokespecial method{blort.x:()V}
450  next 00bf
451block 00bf: 00bf..00c2
452  00bf: invokestatic method{blort.x:()V}
453  next 00c2
454block 00c2: 00c2..00c7
455  00c2: invokeinterface ifaceMethod{blort.x:()V}, 0001
456  next 00c7
457block 00c7: 00c7..00ca
458  00c7: new type{blort}
459  next 00ca
460block 00ca: 00ca..00cc
461  00ca: newarray int
462  next 00cc
463block 00cc: 00cc..00cf
464  00cc: anewarray type{blort}
465  next 00cf
466block 00cf: 00cf..00d0
467  00cf: arraylength
468  next 00d0
469block 00d0: 00d0..00d3
470  00d0: checkcast type{blort}
471  next 00d3
472block 00d3: 00d3..00d6
473  00d3: instanceof type{blort}
474  next 00d6
475block 00d6: 00d6..00d7
476  00d6: monitorenter
477  next 00d7
478block 00d7: 00d7..00d8
479  00d7: monitorexit
480  next 00d8
481block 00d8: 00d8..010a
482  00d8: wide iload 0100
483  00dc: wide lload 0100 // category-2
484  00e0: wide fload 0100
485  00e4: wide dload 0100 // category-2
486  00e8: wide aload 0100
487  00ec: wide istore 0100
488  00f0: wide lstore 0100 // category-2
489  00f4: wide fstore 0100
490  00f8: wide dstore 0100 // category-2
491  00fc: wide astore 0100
492  0100: wide iinc 0123, #+0321
493  0106: multianewarray type{int[][][]}, 02
494  next 010a
495block 010a: 010a..010b
496  010a: return
497  returns
498