1 reading Blort.class... 2 method <init> ()V 3 first 000c 4 block 000a 5 pred 000c 6 live in:{} 7 Blort.java:17@0000: move-param-object(0) v0:NffffLBlort; <- . 8 Blort.java:17@0000: goto . <- . 9 next 0000 10 live out:{} 11 block 0000 12 pred 000a 13 live in:{} 14 Blort.java:17@0000: move-object v1:NffffLBlort; <- v0:NffffLBlort; 15 Blort.java:17@0001: Rop{invoke-direct . <- Ljava/lang/Object; call throws <an 16 y>}(java.lang.Object.<init>:()V catch) . <- v1:NffffLBlort; 17 next 0004 18 live out:{} 19 block 0004 20 pred 0000 21 live in:{} 22 Blort.java:17@0004: goto . <- . 23 next 000b 24 live out:{} 25 block 000b 26 pred 0004 27 live in:{} 28 Blort.java:17@0004: return-void . <- . 29 returns 30 live out:{} 31 block 000c 32 live in:{} 33 @????: goto . <- . 34 next 000a 35 live out:{} 36 37 method phiTest ()I 38 first 0048 39 block 0046 40 pred 0048 41 live in:{} 42 Blort.java:21@0000: move-param-object(0) v0:LBlort; <- . 43 Blort.java:21@0000: goto . <- . 44 next 0000 45 live out:{} 46 block 0000 47 pred 0046 48 live in:{} 49 Blort.java:21@0000: const-int(1) v4:I=1 <- . 50 Blort.java:21@0001: move-int v1:I <- v4:I=1 51 Blort.java:22@0002: const-int(1) v4:I=1 <- . 52 Blort.java:22@0003: move-int v2:I <- v4:I=1 53 Blort.java:23@0004: const-int(0) v4:I=0 <- . 54 Blort.java:23@0005: move-int v3:I <- v4:I=0 55 Blort.java:23@0005: goto . <- . 56 next 0049 57 live out:{} 58 block 0006 59 pred 0049 60 live in:{} 61 Blort.java:25@0006: move-int v4:I <- v3:I 62 Blort.java:25@0007: const-int(100) v5:I=100 <- . 63 Blort.java:25@0009: if-ge-int . <- v4:I v5:I=100 64 next 000c * 65 next 0022 66 live out:{} 67 block 000c 68 pred 0006 69 live in:{} 70 Blort.java:26@000c: move-int v4:I <- v2:I 71 Blort.java:26@000d: const-int(20) v5:I=20 <- . 72 Blort.java:26@000f: if-ge-int . <- v4:I v5:I=20 73 next 0012 * 74 next 001a 75 live out:{} 76 block 0012 77 pred 000c 78 live in:{} 79 Blort.java:27@0012: move-int v4:I <- v1:I 80 Blort.java:27@0013: move-int v2:I <- v4:I 81 Blort.java:28@0014: add-const-int(1) v3:I <- v3:I 82 Blort.java:28@0017: goto . <- . 83 next 0049 84 live out:{} 85 block 001a 86 pred 000c 87 live in:{} 88 Blort.java:30@001a: move-int v4:I <- v3:I 89 Blort.java:30@001b: move-int v2:I <- v4:I 90 Blort.java:31@001c: add-const-int(2) v3:I <- v3:I 91 Blort.java:31@001f: goto . <- . 92 next 0049 93 live out:{} 94 block 0022 95 pred 0006 96 live in:{} 97 Blort.java:35@0022: move-int v4:I <- v2:I 98 Blort.java:35@0023: move-int v0:I <- v4:I 99 Blort.java:35@0023: goto . <- . 100 next 0047 101 live out:{} 102 block 0047 103 pred 0022 104 live in:{} 105 Blort.java:35@0023: return-int . <- v0:I 106 returns 107 live out:{} 108 block 0048 109 live in:{} 110 @????: goto . <- . 111 next 0046 112 live out:{} 113 block 0049 114 pred 0000 115 pred 0012 116 pred 001a 117 live in:{} 118 @????: phi v5:V <- . 119 @????: phi v4:V <- . 120 @????: phi v3:V <- . 121 @????: phi v2:V <- . 122 @????: goto . <- . 123 next 0006 124 live out:{} 125 126 method noVars ()V 127 first 0004 128 block 0002 129 pred 0004 130 live in:{} 131 Blort.java:42@0000: goto . <- . 132 next 0000 133 live out:{} 134 block 0000 135 pred 0002 136 live in:{} 137 Blort.java:42@0000: goto . <- . 138 next 0003 139 live out:{} 140 block 0003 141 pred 0000 142 live in:{} 143 Blort.java:42@0000: return-void . <- . 144 returns 145 live out:{} 146 block 0004 147 live in:{} 148 @????: goto . <- . 149 next 0002 150 live out:{} 151 152 method getOption (I)Ljava/lang/Object; 153 first 0098 154 block 008c 155 pred 0098 156 live in:{} 157 Blort.java:51@0000: move-param-object(0) v0:LBlort; <- . 158 Blort.java:51@0000: move-param-int(1) v1:I <- . 159 Blort.java:51@0000: goto . <- . 160 next 0000 161 live out:{} 162 block 0093 163 pred 0000 164 live in:{} 165 Blort.java:51@0001: Rop{move-result-pseudo Ljava/lang/Object; <- . flows} v3: 166 Ljava/lang/Object; <- . 167 Blort.java:51@0001: goto . <- . 168 next 0004 169 live out:{} 170 block 0000 171 pred 008c 172 live in:{} 173 Blort.java:51@0000: move-object v3:LBlort; <- v0:LBlort; 174 Blort.java:51@0001: get-field-object(Blort.fd:Ljava/lang/Object; catch) . <- 175 v3:LBlort; 176 next 0093 177 live out:{} 178 block 0004 179 pred 0093 180 live in:{} 181 Blort.java:51@0004: if-nez-object . <- v3:Ljava/lang/Object; 182 next 0007 * 183 next 0011 184 live out:{} 185 block 0094 186 pred 0007 187 live in:{} 188 Blort.java:52@0007: Rop{move-result-pseudo N0007Ljava/lang/RuntimeException; 189 <- . flows} v3:N0007Ljava/lang/RuntimeException; <- . 190 Blort.java:52@0007: goto . <- . 191 next 000a 192 live out:{} 193 block 0007 194 pred 0004 195 live in:{} 196 Blort.java:52@0007: new-instance(java.lang.RuntimeException catch) . <- . 197 next 0094 198 live out:{} 199 block 0095 200 pred 000a 201 live in:{} 202 Blort.java:52@000b: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v5: 203 Ljava/lang/String;="socket not created" <- . 204 Blort.java:52@000b: goto . <- . 205 next 000d 206 live out:{} 207 block 000a 208 pred 0094 209 live in:{} 210 Blort.java:52@000a: move-object v6:N0007Ljava/lang/RuntimeException; <- v3:N0 211 007Ljava/lang/RuntimeException; 212 Blort.java:52@000a: move-object v3:N0007Ljava/lang/RuntimeException; <- v6:N0 213 007Ljava/lang/RuntimeException; 214 Blort.java:52@000a: move-object v4:N0007Ljava/lang/RuntimeException; <- v6:N0 215 007Ljava/lang/RuntimeException; 216 Blort.java:52@000b: const-object("socket not created" catch) . <- . 217 next 0095 218 live out:{} 219 block 000d 220 pred 0095 221 live in:{} 222 Blort.java:52@000d: Rop{invoke-direct . <- Ljava/lang/RuntimeException; Ljava 223 /lang/String; call throws <any>}(java.lang.RuntimeException.<init>:(Ljava/lan 224 g/String;)V catch) . <- v4:N0007Ljava/lang/RuntimeException; v5:Ljava/lang/St 225 ring;="socket not created" 226 next 0010 227 live out:{} 228 block 0010 229 pred 000d 230 live in:{} 231 Blort.java:52@0010: throw(catch) . <- v3:Ljava/lang/RuntimeException; 232 returns 233 live out:{} 234 block 0011 235 pred 0004 236 live in:{} 237 Blort.java:55@0011: const-int(0) v3:I=0 <- . 238 Blort.java:55@0012: move-int v2:I <- v3:I=0 239 Blort.java:56@0013: move-int v3:I <- v1:I 240 Blort.java:56@0014: switch({1, 2}) . <- v3:I 241 next 0030 242 next 0030 243 next 0039 * 244 live out:{} 245 block 0096 246 pred 0030 247 live in:{} 248 Blort.java:60@0030: Rop{move-result-pseudo N0030Ljava/lang/Integer; <- . flow 249 s} v3:N0030Ljava/lang/Integer; <- . 250 Blort.java:60@0030: goto . <- . 251 next 0033 252 live out:{} 253 block 0030 254 pred 0011 255 live in:{} 256 Blort.java:60@0030: new-instance(java.lang.Integer catch) . <- . 257 next 0096 258 live out:{} 259 block 0033 260 pred 0096 261 live in:{} 262 Blort.java:60@0033: move-object v6:N0030Ljava/lang/Integer; <- v3:N0030Ljava/ 263 lang/Integer; 264 Blort.java:60@0033: move-object v3:N0030Ljava/lang/Integer; <- v6:N0030Ljava/ 265 lang/Integer; 266 Blort.java:60@0033: move-object v4:N0030Ljava/lang/Integer; <- v6:N0030Ljava/ 267 lang/Integer; 268 Blort.java:60@0034: move-int v5:I <- v2:I 269 Blort.java:60@0035: Rop{invoke-direct . <- Ljava/lang/Integer; I call throws 270 <any>}(java.lang.Integer.<init>:(I)V catch) . <- v4:N0030Ljava/lang/Integer; 271 v5:I 272 next 0038 273 live out:{} 274 block 0038 275 pred 0033 276 live in:{} 277 Blort.java:60@0038: move-object v0:Ljava/lang/Integer; <- v3:Ljava/lang/Integ 278 er; 279 Blort.java:60@0038: goto . <- . 280 next 008d 281 live out:{} 282 block 0039 283 pred 0011 284 live in:{} 285 Blort.java:63@0039: move-int v3:I <- v2:I 286 Blort.java:63@003a: if-eqz-int . <- v3:I 287 next 003d * 288 next 0041 289 live out:{} 290 block 003d 291 pred 0039 292 live in:{} 293 Blort.java:63@003d: const-int(1) v3:I=1 <- . 294 Blort.java:63@003e: goto . <- . 295 next 0042 296 live out:{} 297 block 0041 298 pred 0039 299 live in:{} 300 Blort.java:63@0041: const-int(0) v3:I=0 <- . 301 Blort.java:63@0041: goto . <- . 302 next 0042 303 live out:{} 304 block 0097 305 pred 0042 306 live in:{} 307 Blort.java:63@0042: Rop{move-result Ljava/lang/Boolean; <- . flows} v3:Ljava/ 308 lang/Boolean; <- . 309 Blort.java:63@0042: goto . <- . 310 next 0045 311 live out:{} 312 block 0042 313 pred 003d 314 pred 0041 315 live in:{} 316 @????: phi v3:V <- . 317 Blort.java:63@0042: Rop{invoke-static . <- I call throws <any>}(java.lang.Boo 318 lean.valueOf:(Z)Ljava/lang/Boolean; catch) . <- v3:I 319 next 0097 320 live out:{} 321 block 0045 322 pred 0097 323 live in:{} 324 Blort.java:63@0045: move-object v0:Ljava/lang/Boolean; <- v3:Ljava/lang/Boole 325 an; 326 Blort.java:63@0045: goto . <- . 327 next 008d 328 live out:{} 329 block 008d 330 pred 0038 331 pred 0045 332 live in:{} 333 @????: phi v6:V <- . 334 @????: phi v5:V <- . 335 @????: phi v4:V <- . 336 @????: phi v3:V <- . 337 @????: phi v0:V <- . 338 Blort.java:63@0045: return-object . <- v0:Ljava/lang/Object; 339 returns 340 live out:{} 341 block 0098 342 live in:{} 343 @????: goto . <- . 344 next 008c 345 live out:{} 346