文本文件  |  498行  |  8.96 KB

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