You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
497 lines
8.9 KiB
497 lines
8.9 KiB
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
|