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