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