blob: 26444afce96e77df348e815b9386b8da5e0d1bef [file] [log] [blame]
Generated: ./blort.class
reading blort.class...
method <init> ()V
block 0000: 0000..0004
0000: aload_0 // 00
0001: invokespecial method{java.lang.Object.<init>:()V}
next 0004
block 0004: 0004..0005
0004: return
returns
method test_live_exception ([I)V
block 0000: 0000..0002
0000: nop
0001: nop
next 0002
block 0002: 0002..0004
0002: aload_0 // 00
0003: arraylength
next 0007
next 0006
next 0004
catch java.lang.RuntimeException -> 0007
catch <any> -> 0006
block 0004: 0004..0005
0004: nop
next 0005
block 0005: 0005..0006
0005: return
returns
block 0006: 0006..0007
0006: return
returns
block 0007: 0007..0008
0007: return
returns
method test_dead_exception ()V
block 0000: 0000..0002
0000: nop
0001: nop
next 0002
block 0002: 0002..0003
0002: nop
next 0003
block 0003: 0003..0004
0003: nop
next 0004
block 0004: 0004..0005
0004: return
returns
block 0005: 0005..0006
0005: return
returns
block 0006: 0006..0007
0006: return
returns
method test_ifs ()V
block 0000: 0000..0003
0000: ifeq 0031
next 0003
next 0031
block 0003: 0003..0006
0003: ifne 0032
next 0006
next 0032
block 0006: 0006..0009
0006: iflt 0033
next 0009
next 0033
block 0009: 0009..000c
0009: ifge 0034
next 000c
next 0034
block 000c: 000c..000f
000c: ifgt 0035
next 000f
next 0035
block 000f: 000f..0012
000f: ifle 0036
next 0012
next 0036
block 0012: 0012..0015
0012: if_icmpeq 0037
next 0015
next 0037
block 0015: 0015..0018
0015: if_icmpne 0038
next 0018
next 0038
block 0018: 0018..001b
0018: if_icmplt 0039
next 001b
next 0039
block 001b: 001b..001e
001b: if_icmpge 003a
next 001e
next 003a
block 001e: 001e..0021
001e: if_icmpgt 003b
next 0021
next 003b
block 0021: 0021..0024
0021: if_icmple 003c
next 0024
next 003c
block 0024: 0024..0027
0024: if_acmpeq 003d
next 0027
next 003d
block 0027: 0027..002a
0027: if_acmpne 003e
next 002a
next 003e
block 002a: 002a..002d
002a: ifnull 003f
next 002d
next 003f
block 002d: 002d..0030
002d: ifnonnull 0040
next 0030
next 0040
block 0030: 0030..0031
0030: return
returns
block 0031: 0031..0032
0031: return
returns
block 0032: 0032..0033
0032: return
returns
block 0033: 0033..0034
0033: return
returns
block 0034: 0034..0035
0034: return
returns
block 0035: 0035..0036
0035: return
returns
block 0036: 0036..0037
0036: return
returns
block 0037: 0037..0038
0037: return
returns
block 0038: 0038..0039
0038: return
returns
block 0039: 0039..003a
0039: return
returns
block 003a: 003a..003b
003a: return
returns
block 003b: 003b..003c
003b: return
returns
block 003c: 003c..003d
003c: return
returns
block 003d: 003d..003e
003d: return
returns
block 003e: 003e..003f
003e: return
returns
block 003f: 003f..0040
003f: return
returns
block 0040: 0040..0041
0040: return
returns
method test_jsr ()V
block 0000: 0000..0003
0000: jsr 0009
next 0003
next 0009
block 0003: 0003..0008
0003: jsr_w 0000000c
next 0008
next 000c
block 0008: 0008..0009
0008: return
returns
block 0009: 0009..000c
0009: astore_0 // 00
000a: ret 00
returns
block 000c: 000c..0011
000c: astore_0 // 00
000d: wide ret 0000
returns
method test_tableswitch ()V
block 0000: 0000..0018
0000: tableswitch
+00000010: 0018
+00000011: 0019
default: 001a
next 0018
next 0019
next 001a
block 0018: 0018..0019
0018: return
returns
block 0019: 0019..001a
0019: return
returns
block 001a: 001a..001b
001a: return
returns
method test_lookupswitch ()V
block 0000: 0000..001c
0000: lookupswitch
+00000005: 001c
+00000010: 001d
default: 001e
next 001c
next 001d
next 001e
block 001c: 001c..001d
001c: return
returns
block 001d: 001d..001e
001d: return
returns
block 001e: 001e..001f
001e: return
returns
method test_nonbranch ()V
block 0000: 0000..0017
0000: nop
0001: aconst_null
0002: iconst_m1 // #-01
0003: iconst_0 // #+00
0004: iconst_1 // #+01
0005: iconst_2 // #+02
0006: iconst_3 // #+03
0007: iconst_4 // #+04
0008: iconst_5 // #+05
0009: lconst_0 // +00
000a: lconst_1 // +01
000b: fconst_0 // 0.0
000c: fconst_1 // 1.0
000d: fconst_2 // 2.0
000e: dconst_0 // 0.0
000f: dconst_1 // 1.0
0010: bipush #+10
0012: sipush #+1000
0015: ldc string{"x"}
next 0017
block 0017: 0017..001a
0017: ldc_w string{"y"}
next 001a
block 001a: 001a..003c
001a: ldc2_w #4008000000000000 // 3.0
001d: iload 05
001f: lload 05 // category-2
0021: fload 05
0023: dload 05 // category-2
0025: aload 05
0027: iload_0 // 00
0028: iload_1 // 01
0029: iload_2 // 02
002a: iload_3 // 03
002b: lload_0 // 00, category-2
002c: lload_1 // 01, category-2
002d: lload_2 // 02, category-2
002e: lload_3 // 03, category-2
002f: fload_0 // 00
0030: fload_1 // 01
0031: fload_2 // 02
0032: fload_3 // 03
0033: dload_0 // 00, category-2
0034: dload_1 // 01, category-2
0035: dload_2 // 02, category-2
0036: dload_3 // 03, category-2
0037: aload_0 // 00
0038: aload_1 // 01
0039: aload_2 // 02
003a: aload_3 // 03
003b: iaload
next 003c
block 003c: 003c..003d
003c: laload
next 003d
block 003d: 003d..003e
003d: faload
next 003e
block 003e: 003e..003f
003e: daload
next 003f
block 003f: 003f..0040
003f: aaload
next 0040
block 0040: 0040..0041
0040: baload
next 0041
block 0041: 0041..0042
0041: caload
next 0042
block 0042: 0042..0043
0042: saload
next 0043
block 0043: 0043..0062
0043: istore 05
0045: lstore 05 // category-2
0047: fstore 05
0049: dstore 05 // category-2
004b: astore 05
004d: istore_0 // 00
004e: istore_1 // 01
004f: istore_2 // 02
0050: istore_3 // 03
0051: lstore_0 // 00, category-2
0052: lstore_1 // 01, category-2
0053: lstore_2 // 02, category-2
0054: lstore_3 // 03, category-2
0055: fstore_0 // 00
0056: fstore_1 // 01
0057: fstore_2 // 02
0058: fstore_3 // 03
0059: dstore_0 // 00, category-2
005a: dstore_1 // 01, category-2
005b: dstore_2 // 02, category-2
005c: dstore_3 // 03, category-2
005d: astore_0 // 00
005e: astore_1 // 01
005f: astore_2 // 02
0060: astore_3 // 03
0061: iastore
next 0062
block 0062: 0062..0063
0062: lastore
next 0063
block 0063: 0063..0064
0063: fastore
next 0064
block 0064: 0064..0065
0064: dastore
next 0065
block 0065: 0065..0066
0065: aastore
next 0066
block 0066: 0066..0067
0066: bastore
next 0067
block 0067: 0067..0068
0067: castore
next 0068
block 0068: 0068..0069
0068: sastore
next 0069
block 0069: 0069..007f
0069: pop
006a: pop2
006b: dup
006c: dup_x1
006d: dup_x2
006e: dup2
006f: dup2_x1
0070: dup2_x2
0071: swap
0072: iadd
0073: ladd
0074: fadd
0075: dadd
0076: isub
0077: lsub
0078: fsub
0079: dsub
007a: imul
007b: lmul
007c: fmul
007d: dmul
007e: idiv
next 007f
block 007f: 007f..0080
007f: ldiv
next 0080
block 0080: 0080..0083
0080: fdiv
0081: ddiv
0082: irem
next 0083
block 0083: 0083..0084
0083: lrem
next 0084
block 0084: 0084..00b0
0084: frem
0085: drem
0086: ineg
0087: lneg
0088: fneg
0089: dneg
008a: ishl
008b: lshl
008c: ishr
008d: lshr
008e: iushr
008f: lushr
0090: iand
0091: land
0092: ior
0093: lor
0094: ixor
0095: lxor
0096: iinc 05, #+10
0099: i2l
009a: i2f
009b: i2d
009c: l2i
009d: l2f
009e: l2d
009f: f2i
00a0: f2l
00a1: f2d
00a2: d2i
00a3: d2l
00a4: d2f
00a5: i2b
00a6: i2c
00a7: i2s
00a8: lcmp
00a9: fcmpl
00aa: fcmpg
00ab: dcmpl
00ac: dcmpg
00ad: getstatic field{blort.x:I}
next 00b0
block 00b0: 00b0..00b3
00b0: putstatic field{blort.x:I}
next 00b3
block 00b3: 00b3..00b6
00b3: getfield field{blort.x:I}
next 00b6
block 00b6: 00b6..00b9
00b6: putfield field{blort.x:I}
next 00b9
block 00b9: 00b9..00bc
00b9: invokevirtual method{blort.x:()V}
next 00bc
block 00bc: 00bc..00bf
00bc: invokespecial method{blort.x:()V}
next 00bf
block 00bf: 00bf..00c2
00bf: invokestatic method{blort.x:()V}
next 00c2
block 00c2: 00c2..00c7
00c2: invokeinterface ifaceMethod{blort.x:()V}, 0001
next 00c7
block 00c7: 00c7..00ca
00c7: new type{blort}
next 00ca
block 00ca: 00ca..00cc
00ca: newarray int
next 00cc
block 00cc: 00cc..00cf
00cc: anewarray type{blort}
next 00cf
block 00cf: 00cf..00d0
00cf: arraylength
next 00d0
block 00d0: 00d0..00d3
00d0: checkcast type{blort}
next 00d3
block 00d3: 00d3..00d6
00d3: instanceof type{blort}
next 00d6
block 00d6: 00d6..00d7
00d6: monitorenter
next 00d7
block 00d7: 00d7..00d8
00d7: monitorexit
next 00d8
block 00d8: 00d8..010a
00d8: wide iload 0100
00dc: wide lload 0100 // category-2
00e0: wide fload 0100
00e4: wide dload 0100 // category-2
00e8: wide aload 0100
00ec: wide istore 0100
00f0: wide lstore 0100 // category-2
00f4: wide fstore 0100
00f8: wide dstore 0100 // category-2
00fc: wide astore 0100
0100: wide iinc 0123, #+0321
0106: multianewarray type{int[][][]}, 02
next 010a
block 010a: 010a..010b
010a: return
returns