1 reading Blort.class... 2 method <init> ()V 3 first 000c 4 block 000a 5 pred 000c 6 Blort.java:2@0000: move-param-object(0) v0:"this"NffffLBlort; <- . 7 Blort.java:2@0000: goto . <- . 8 next 0000 9 block 0000 10 pred 000a 11 Blort.java:2@0001: Rop{invoke-direct . <- Ljava/lang/Object; call throws <any 12 >}(java.lang.Object.<init>:()V catch) . <- v0:NffffLBlort; 13 next 000b 14 block 000b 15 pred 0000 16 Blort.java:4@0004: return-void . <- . 17 returns 18 block 000c 19 @????: goto . <- . 20 next 000a 21 22 method testNumeric ()V 23 first 005e 24 block 005c 25 pred 005e 26 Blort.java:10@0000: move-param-object(0) v4:"this"LBlort; <- . 27 Blort.java:10@0000: goto . <- . 28 next 0000 29 block 0000 30 pred 005c 31 Blort.java:10@0000: const-int(10) v0:I=10 <- . 32 @????: mark-local-int . <- v0:"foo"I 33 Blort.java:12@0003: const-int(0) v1:I=0 <- . 34 @????: mark-local-int . <- v1:"i"I 35 Blort.java:12@0004: goto . <- . 36 next 0005 37 block 0005 38 pred 0000 39 pred 000b 40 Blort.java:12@0008: if-ge-int . <- v1:I v3:I=10 41 next 000b * 42 next 0018 43 block 000b 44 pred 0005 45 Blort.java:13@000f: mul-const-int(10) v2:I <- v1:I 46 Blort.java:13@0010: add-int v0:I <- v0:I v2:I 47 @????: mark-local-int . <- v0:"foo"I 48 Blort.java:12@0012: add-const-int(1) v1:"i"I <- v1:I 49 Blort.java:12@0015: goto . <- . 50 next 0005 51 block 0018 52 pred 0005 53 Blort.java:16@0018: const-int(0) v1:I=0 <- . 54 @????: mark-local-int . <- v1:"i"I 55 Blort.java:16@0019: goto . <- . 56 next 001a 57 block 001a 58 pred 0018 59 pred 0020 60 Blort.java:16@001d: if-ge-int . <- v1:I v3:I=10 61 next 0020 * 62 next 005d 63 block 0020 64 pred 001a 65 Blort.java:17@0024: add-const-int(10) v2:I <- v1:I 66 Blort.java:17@0025: add-int v0:I <- v0:I v2:I 67 @????: mark-local-int . <- v0:"foo"I 68 Blort.java:16@0027: add-const-int(1) v1:"i"I <- v1:I 69 Blort.java:16@002a: goto . <- . 70 next 001a 71 block 005d 72 pred 001a 73 Blort.java:19@002d: return-void . <- . 74 returns 75 block 005e 76 @????: const-int(10) v3:I=10 <- . 77 @????: goto . <- . 78 next 005c 79 80 method testStrings ()V 81 first 0078 82 block 0064 83 pred 007b 84 Blort.java:22@0000: move-param-object(0) v3:"this"LBlort; <- . 85 Blort.java:22@0000: goto . <- . 86 next 0000 87 block 006b 88 pred 0000 89 Blort.java:22@0000: Rop{move-result-pseudo N0000Ljava/lang/StringBuilder; <- 90 . flows} v0:N0000Ljava/lang/StringBuilder; <- . 91 Blort.java:22@0000: goto . <- . 92 next 0003 93 block 0000 94 pred 0064 95 Blort.java:22@0000: new-instance(java.lang.StringBuilder catch) . <- . 96 next 006b 97 block 0003 98 pred 006b 99 Blort.java:22@0004: Rop{invoke-direct . <- Ljava/lang/StringBuilder; call thr 100 ows <any>}(java.lang.StringBuilder.<init>:()V catch) . <- v0:N0000Ljava/lang/ 101 StringBuilder; 102 next 0007 103 block 006c 104 pred 0007 105 Blort.java:24@0009: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1: 106 Ljava/lang/String;="foo" <- . 107 Blort.java:24@0009: goto . <- . 108 next 000b 109 block 0007 110 pred 0003 111 @????: mark-local-object . <- v0:"sb"Ljava/lang/StringBuilder; 112 Blort.java:24@0009: const-object("foo" catch) . <- . 113 next 006c 114 block 000b 115 pred 006c 116 Blort.java:24@000b: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l 117 ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str 118 ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v2:Lj 119 ava/lang/String;="foo" 120 next 000e 121 block 006e 122 pred 000e 123 Blort.java:25@0010: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1: 124 Ljava/lang/String;="foo" <- . 125 Blort.java:25@0010: goto . <- . 126 next 0012 127 block 000e 128 pred 000b 129 Blort.java:25@0010: const-object("foo" catch) . <- . 130 next 006e 131 block 0012 132 pred 006e 133 Blort.java:25@0012: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l 134 ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str 135 ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v2:Lj 136 ava/lang/String;="foo" 137 next 0015 138 block 0070 139 pred 0015 140 Blort.java:26@0017: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1: 141 Ljava/lang/String;="foo" <- . 142 Blort.java:26@0017: goto . <- . 143 next 0019 144 block 0015 145 pred 0012 146 Blort.java:26@0017: const-object("foo" catch) . <- . 147 next 0070 148 block 0019 149 pred 0070 150 Blort.java:26@0019: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l 151 ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str 152 ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v2:Lj 153 ava/lang/String;="foo" 154 next 001c 155 block 0072 156 pred 001c 157 Blort.java:27@001e: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1: 158 Ljava/lang/String;="foo" <- . 159 Blort.java:27@001e: goto . <- . 160 next 0020 161 block 001c 162 pred 0019 163 Blort.java:27@001e: const-object("foo" catch) . <- . 164 next 0072 165 block 0020 166 pred 0072 167 Blort.java:27@0020: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l 168 ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str 169 ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v2:Lj 170 ava/lang/String;="foo" 171 next 0023 172 block 0074 173 pred 0023 174 Blort.java:28@0025: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1: 175 Ljava/lang/String;="foo" <- . 176 Blort.java:28@0025: goto . <- . 177 next 0027 178 block 0023 179 pred 0020 180 Blort.java:28@0025: const-object("foo" catch) . <- . 181 next 0074 182 block 0027 183 pred 0074 184 Blort.java:28@0027: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l 185 ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str 186 ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v2:Lj 187 ava/lang/String;="foo" 188 next 002a 189 block 0076 190 pred 002a 191 Blort.java:29@002c: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1: 192 Ljava/lang/String;="foo" <- . 193 Blort.java:29@002c: goto . <- . 194 next 002e 195 block 002a 196 pred 0027 197 Blort.java:29@002c: const-object("foo" catch) . <- . 198 next 0076 199 block 002e 200 pred 0076 201 Blort.java:29@002e: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l 202 ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str 203 ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v2:Lj 204 ava/lang/String;="foo" 205 next 0065 206 block 0065 207 pred 002e 208 Blort.java:30@0032: return-void . <- . 209 returns 210 block 0078 211 @????: goto . <- . 212 next 007a 213 block 007a 214 pred 0078 215 @????: const-object("foo" catch) . <- . 216 next 007b 217 block 007b 218 pred 007a 219 @????: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2:Ljava/lang/St 220 ring;="foo" <- . 221 @????: goto . <- . 222 next 0064 223 224 method testCaughtStrings ()V 225 first 0094 226 block 007e 227 pred 009e 228 Blort.java:33@0000: move-param-object(0) v5:"this"LBlort; <- . 229 Blort.java:33@0000: goto . <- . 230 next 0000 231 block 0085 232 pred 0000 233 Blort.java:33@0000: Rop{move-result-pseudo N0000Ljava/lang/StringBuilder; <- 234 . flows} v0:N0000Ljava/lang/StringBuilder; <- . 235 Blort.java:33@0000: goto . <- . 236 next 0003 237 block 0000 238 pred 007e 239 Blort.java:33@0000: new-instance(java.lang.StringBuilder catch) . <- . 240 next 0085 241 block 0003 242 pred 0085 243 Blort.java:33@0004: Rop{invoke-direct . <- Ljava/lang/StringBuilder; call thr 244 ows <any>}(java.lang.StringBuilder.<init>:()V catch) . <- v0:N0000Ljava/lang/ 245 StringBuilder; 246 next 0007 247 block 0086 248 pred 0007 249 Blort.java:35@0009: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2: 250 Ljava/lang/String;="foo" <- . 251 Blort.java:35@0009: goto . <- . 252 next 000b 253 block 0007 254 pred 0003 255 @????: mark-local-object . <- v0:"sb"Ljava/lang/StringBuilder; 256 Blort.java:35@0009: const-object("foo" catch) . <- . 257 next 0086 258 block 000b 259 pred 0086 260 Blort.java:35@000b: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l 261 ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str 262 ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v4:Lj 263 ava/lang/String;="foo" 264 next 000e 265 block 0088 266 pred 000e 267 Blort.java:36@0010: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2: 268 Ljava/lang/String;="foo" <- . 269 Blort.java:36@0010: goto . <- . 270 next 0012 271 block 000e 272 pred 000b 273 Blort.java:36@0010: const-object("foo" catch) . <- . 274 next 0088 275 block 0012 276 pred 0088 277 Blort.java:36@0012: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l 278 ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str 279 ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v4:Lj 280 ava/lang/String;="foo" 281 next 0015 282 block 008a 283 pred 0015 284 Blort.java:37@0017: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2: 285 Ljava/lang/String;="foo" <- . 286 Blort.java:37@0017: goto . <- . 287 next 0019 288 block 0015 289 pred 0012 290 Blort.java:37@0017: const-object("foo" catch) . <- . 291 next 008a 292 block 0019 293 pred 008a 294 Blort.java:37@0019: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l 295 ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str 296 ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v4:Lj 297 ava/lang/String;="foo" 298 next 001d 299 block 008c 300 pred 001d 301 Blort.java:39@001e: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2: 302 Ljava/lang/String;="foo" <- . 303 Blort.java:39@001e: goto . <- . 304 next 0020 305 block 001d 306 pred 0019 307 Blort.java:39@001e: const-object("foo" catch java.lang.Throwable) . <- . 308 next 0095 309 next 008c * 310 block 0020 311 pred 008c 312 Blort.java:39@0020: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l 313 ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str 314 ing;)Ljava/lang/StringBuilder; catch java.lang.Throwable) . <- v0:Ljava/lang/ 315 StringBuilder; v2:Ljava/lang/String;="foo" 316 next 0095 317 next 0023 * 318 block 008e 319 pred 0023 320 Blort.java:40@0025: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2: 321 Ljava/lang/String;="foo" <- . 322 Blort.java:40@0025: goto . <- . 323 next 0027 324 block 0023 325 pred 0020 326 Blort.java:40@0025: const-object("foo" catch java.lang.Throwable) . <- . 327 next 0095 328 next 008e * 329 block 0027 330 pred 008e 331 Blort.java:40@0027: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l 332 ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str 333 ing;)Ljava/lang/StringBuilder; catch java.lang.Throwable) . <- v0:Ljava/lang/ 334 StringBuilder; v2:Ljava/lang/String;="foo" 335 next 0095 336 next 002a * 337 block 0090 338 pred 002a 339 Blort.java:41@002c: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2: 340 Ljava/lang/String;="foo" <- . 341 Blort.java:41@002c: goto . <- . 342 next 002e 343 block 002a 344 pred 0027 345 Blort.java:41@002c: const-object("foo" catch java.lang.Throwable) . <- . 346 next 0095 347 next 0090 * 348 block 002e 349 pred 0090 350 Blort.java:41@002e: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l 351 ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str 352 ing;)Ljava/lang/StringBuilder; catch java.lang.Throwable) . <- v0:Ljava/lang/ 353 StringBuilder; v2:Ljava/lang/String;="foo" 354 next 0095 355 next 007f * 356 block 0092 357 pred 0035 358 Blort.java:43@0036: Rop{move-result-pseudo Ljava/io/PrintStream; <- . flows} 359 v2:Ljava/io/PrintStream; <- . 360 Blort.java:43@0036: goto . <- . 361 next 0039 362 block 0035 363 pred 0095 364 @????: mark-local-object . <- v1:"tr"Ljava/lang/Throwable; 365 Blort.java:43@0036: get-static-object(java.lang.System.out:Ljava/io/PrintStre 366 am; catch) . <- . 367 next 0092 368 block 0093 369 pred 0039 370 Blort.java:43@0039: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v3: 371 Ljava/lang/String;="foo" <- . 372 Blort.java:43@0039: goto . <- . 373 next 003b 374 block 0039 375 pred 0092 376 Blort.java:43@0039: const-object("foo" catch) . <- . 377 next 0093 378 block 003b 379 pred 0093 380 Blort.java:43@003b: Rop{invoke-virtual . <- Ljava/io/PrintStream; Ljava/lang/ 381 String; call throws <any>}(java.io.PrintStream.println:(Ljava/lang/String;)V 382 catch) . <- v2:Ljava/io/PrintStream; v4:Ljava/lang/String;="foo" 383 next 007f 384 block 007f 385 pred 002e 386 pred 003b 387 Blort.java:45@003e: return-void . <- . 388 returns 389 block 0094 390 @????: goto . <- . 391 next 009d 392 block 0095 393 pred 001d 394 pred 0020 395 pred 0023 396 pred 0027 397 pred 002a 398 pred 002e 399 Blort.java:42@0035: Rop{move-exception Ljava/lang/Throwable; <- . flows} v2:L 400 java/lang/Throwable; <- . 401 @????: move-object v1:Ljava/lang/Throwable; <- v2:Ljava/lang/Throwable; 402 @????: goto . <- . 403 next 0035 404 block 009d 405 pred 0094 406 @????: const-object("foo" catch) . <- . 407 next 009e 408 block 009e 409 pred 009d 410 @????: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v4:Ljava/lang/St 411 ring;="foo" <- . 412 @????: goto . <- . 413 next 007e 414 415 method testLocalVars ()V 416 first 0004 417 block 0002 418 pred 0004 419 Blort.java:49@0000: move-param-object(0) v6:"this"LBlort; <- . 420 Blort.java:49@0000: goto . <- . 421 next 0000 422 block 0000 423 pred 0002 424 Blort.java:49@0000: const-int(10) v3:I=10 <- . 425 @????: mark-local-int . <- v3:"i"I 426 Blort.java:50@0003: const-int(10) v4:I=10 <- . 427 @????: mark-local-int . <- v4:"j"I 428 Blort.java:51@0006: const-int(10) v5:I=10 <- . 429 @????: mark-local-int . <- v5:"k"I 430 Blort.java:52@0009: const-int(10) v0:I=10 <- . 431 @????: mark-local-int . <- v0:"a"I 432 Blort.java:53@000d: const-int(10) v1:I=10 <- . 433 @????: mark-local-int . <- v1:"b"I 434 Blort.java:54@0011: const-int(10) v2:I=10 <- . 435 @????: mark-local-int . <- v2:"c"I 436 Blort.java:56@0018: mul-const-int(10) v3:I <- v3:I 437 @????: mark-local-int . <- v3:"i"I=100 438 Blort.java:57@001a: goto . <- . 439 next 0003 440 block 0003 441 pred 0000 442 Blort.java:57@001a: return-void . <- . 443 returns 444 block 0004 445 @????: goto . <- . 446 next 0002 447 448 method testNull (Ljava/lang/Object;)V 449 first 0021 450 block 0018 451 pred 0021 452 Blort.java:60@0000: move-param-object(0) v1:"this"LBlort; <- . 453 Blort.java:60@0000: move-param-object(1) v2:"a"Ljava/lang/Object; <- . 454 Blort.java:60@0000: goto . <- . 455 next 0000 456 block 0000 457 pred 0018 458 Blort.java:60@0002: Rop{invoke-virtual . <- Ljava/lang/Object; Ljava/lang/Obj 459 ect; call throws <any>}(java.lang.Object.equals:(Ljava/lang/Object;)Z catch) 460 . <- v2:Ljava/lang/Object; v0:<null>=null 461 next 0005 462 block 0005 463 pred 0000 464 Blort.java:61@0008: Rop{invoke-virtual . <- Ljava/lang/Object; Ljava/lang/Obj 465 ect; call throws <any>}(java.lang.Object.equals:(Ljava/lang/Object;)Z catch) 466 . <- v2:Ljava/lang/Object; v0:<null>=null 467 next 0019 468 block 0019 469 pred 0005 470 Blort.java:63@000c: return-void . <- . 471 returns 472 block 0021 473 @????: const-object-nothrow(null) v0:<null>=null <- . 474 @????: goto . <- . 475 next 0018 476