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