1 reading Blort.class... 2 method <init> ()V 3 first 000c 4 block 0000 5 pred 000a 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 000b 9 block 000a 10 pred 000c 11 Blort.java:2@0000: move-param-object(0) v0:"this"NffffLBlort; <- . 12 Blort.java:2@0000: goto . <- . 13 next 0000 14 block 000b 15 pred 0000 16 Blort.java:2@0004: return-void . <- . 17 returns 18 block 000c 19 @????: goto . <- . 20 next 000a 21 22 method methodThatNeedsInvokeRange (IIIIII)V 23 first 0004 24 block 0002 25 pred 0004 26 Blort.java:6@0000: move-param-int(0) v0:"a"I <- . 27 Blort.java:6@0000: move-param-int(1) v1:"b"I <- . 28 Blort.java:6@0000: move-param-int(2) v2:"c"I <- . 29 Blort.java:6@0000: move-param-int(3) v3:"d"I <- . 30 Blort.java:6@0000: move-param-int(4) v4:"e"I <- . 31 Blort.java:6@0000: move-param-int(5) v5:"f"I <- . 32 Blort.java:6@0000: goto . <- . 33 next 0003 34 block 0003 35 pred 0002 36 Blort.java:6@0000: return-void . <- . 37 returns 38 block 0004 39 @????: goto . <- . 40 next 0002 41 42 method testNoLocals ()V 43 first 0016 44 block 0000 45 pred 0014 46 @????: move-int v2:I=5 <- v0:I=5 47 @????: move-int v3:I=0 <- v1:I=0 48 @????: move-int v4:I=5 <- v0:I=5 49 @????: move-int v5:I=0 <- v1:I=0 50 Blort.java:9@0006: Rop{invoke-static . <- I I I I I I call throws <any>}(Blor 51 t.methodThatNeedsInvokeRange:(IIIIII)V catch) . <- v0:I=5 v1:I=0 v2:I=5 v3:I= 52 0 v4:I=5 v5:I=0 53 next 0015 54 block 0014 55 pred 0016 56 Blort.java:9@0000: move-param-object(0) v6:"this"LBlort; <- . 57 Blort.java:9@0000: goto . <- . 58 next 0000 59 block 0015 60 pred 0000 61 Blort.java:10@0009: return-void . <- . 62 returns 63 block 0016 64 @????: const-int(5) v0:I=5 <- . 65 @????: const-int(0) v1:I=0 <- . 66 @????: goto . <- . 67 next 0014 68 69 method testMixedLocals ()V 70 first 0034 71 block 0000 72 pred 0032 73 Blort.java:13@0000: const-int(6) v0:I=6 <- . 74 @????: mark-local-int . <- v0:"src"I 75 Blort.java:14@0003: const-int(7) v2:I=7 <- . 76 @????: mark-local-int . <- v2:"dest"I 77 @????: move-int v5:I=0 <- v1:I=0 78 Blort.java:16@000c: Rop{invoke-static . <- I I I I I I call throws <any>}(Blo 79 rt.methodThatNeedsInvokeRange:(IIIIII)V catch) . <- v0:I v1:I=0 v2:I v3:I=1 v 80 4:I=5 v5:I=0 81 next 000f 82 block 000f 83 pred 0000 84 @????: move-int v5:I=0 <- v1:I=0 85 Blort.java:17@0015: Rop{invoke-static . <- I I I I I I call throws <any>}(Blo 86 rt.methodThatNeedsInvokeRange:(IIIIII)V catch) . <- v0:I v1:I=0 v2:I v3:I=1 v 87 4:I=5 v5:I=0 88 next 0033 89 block 0032 90 pred 0034 91 Blort.java:13@0000: move-param-object(0) v6:"this"LBlort; <- . 92 Blort.java:13@0000: goto . <- . 93 next 0000 94 block 0033 95 pred 000f 96 Blort.java:18@0018: return-void . <- . 97 returns 98 block 0034 99 @????: const-int(5) v4:I=5 <- . 100 @????: const-int(1) v3:I=1 <- . 101 @????: const-int(0) v1:I=0 <- . 102 @????: goto . <- . 103 next 0032 104 105 method testMixedWorseCase ()V 106 first 0038 107 block 0000 108 pred 0036 109 Blort.java:24@0000: const-int(6) v0:I=6 <- . 110 @????: mark-local-int . <- v0:"src"I 111 Blort.java:25@0003: const-int(7) v2:I=7 <- . 112 @????: mark-local-int . <- v2:"dest"I 113 Blort.java:26@0006: const-int(0) v1:I=0 <- . 114 @????: mark-local-int . <- v1:"zero"I 115 Blort.java:28@000e: Rop{invoke-static . <- I I I I I I call throws <any>}(Blo 116 rt.methodThatNeedsInvokeRange:(IIIIII)V catch) . <- v0:I v1:I v2:I v3:I=1 v4: 117 I=5 v5:I=0 118 next 0011 119 block 0011 120 pred 0000 121 @????: move-int v6:I <- v0:I 122 @????: move-int v7:I=0 <- v5:I=0 123 @????: move-int v8:I <- v2:I 124 @????: move-int v9:I=1 <- v3:I=1 125 @????: move-int v10:I=5 <- v4:I=5 126 @????: move-int v11:I=0 <- v5:I=0 127 Blort.java:29@0017: Rop{invoke-static . <- I I I I I I call throws <any>}(Blo 128 rt.methodThatNeedsInvokeRange:(IIIIII)V catch) . <- v6:I v7:I=0 v8:I v9:I=1 v 129 10:I=5 v11:I=0 130 next 0037 131 block 0036 132 pred 0038 133 Blort.java:24@0000: move-param-object(0) v12:"this"LBlort; <- . 134 Blort.java:24@0000: goto . <- . 135 next 0000 136 block 0037 137 pred 0011 138 Blort.java:30@001a: return-void . <- . 139 returns 140 block 0038 141 @????: const-int(5) v4:I=5 <- . 142 @????: const-int(1) v3:I=1 <- . 143 @????: const-int(0) v5:I=0 <- . 144 @????: goto . <- . 145 next 0036 146 147 method testAllParams (IIIIII)V 148 first 001c 149 block 0000 150 pred 001a 151 Blort.java:33@0009: Rop{invoke-static . <- I I I I I I call throws <any>}(Blo 152 rt.methodThatNeedsInvokeRange:(IIIIII)V catch) . <- v1:I v2:I v3:I v4:I v5:I 153 v6:I 154 next 001b 155 block 001a 156 pred 001c 157 Blort.java:33@0000: move-param-object(0) v0:"this"LBlort; <- . 158 Blort.java:33@0000: move-param-int(1) v1:"a"I <- . 159 Blort.java:33@0000: move-param-int(2) v2:"b"I <- . 160 Blort.java:33@0000: move-param-int(3) v3:"c"I <- . 161 Blort.java:33@0000: move-param-int(4) v4:"d"I <- . 162 Blort.java:33@0000: move-param-int(5) v5:"e"I <- . 163 Blort.java:33@0000: move-param-int(6) v6:"f"I <- . 164 Blort.java:33@0000: goto . <- . 165 next 0000 166 block 001b 167 pred 0000 168 Blort.java:34@000c: return-void . <- . 169 returns 170 block 001c 171 @????: goto . <- . 172 next 001a 173 174 method testTailParams (II)V 175 first 0022 176 block 0000 177 pred 0020 178 Blort.java:38@0000: const-int(6) v0:I=6 <- . 179 @????: mark-local-int . <- v0:"src"I 180 Blort.java:39@0003: const-int(7) v2:I=7 <- . 181 @????: mark-local-int . <- v2:"dest"I 182 @????: move-int v3:I=0 <- v1:I=0 183 @????: move-int v4:I <- v6:I 184 @????: move-int v5:I <- v7:I 185 Blort.java:41@000c: Rop{invoke-static . <- I I I I I I call throws <any>}(Blo 186 rt.methodThatNeedsInvokeRange:(IIIIII)V catch) . <- v0:I v1:I=0 v2:I v3:I=0 v 187 4:I v5:I 188 next 0021 189 block 0020 190 pred 0022 191 Blort.java:38@0000: move-param-int(0) v6:"destPos"I <- . 192 Blort.java:38@0000: move-param-int(1) v7:"length"I <- . 193 Blort.java:38@0000: goto . <- . 194 next 0000 195 block 0021 196 pred 0000 197 Blort.java:42@000f: return-void . <- . 198 returns 199 block 0022 200 @????: const-int(0) v1:I=0 <- . 201 @????: goto . <- . 202 next 0020 203 204 method testFlip ()V 205 first 0034 206 block 0000 207 pred 0032 208 Blort.java:47@0000: const-int(6) v0:I=6 <- . 209 @????: mark-local-int . <- v0:"src"I 210 Blort.java:48@0003: const-int(7) v2:I=7 <- . 211 @????: mark-local-int . <- v2:"dest"I 212 @????: move-int v5:I=0 <- v1:I=0 213 Blort.java:50@000c: Rop{invoke-static . <- I I I I I I call throws <any>}(Blo 214 rt.methodThatNeedsInvokeRange:(IIIIII)V catch) . <- v0:I v1:I=0 v2:I v3:I=1 v 215 4:I=5 v5:I=0 216 next 000f 217 block 000f 218 pred 0000 219 @????: move-int v5:I <- v2:I 220 @????: move-int v6:I=0 <- v1:I=0 221 @????: move-int v7:I <- v0:I 222 @????: move-int v8:I=1 <- v3:I=1 223 @????: move-int v9:I=5 <- v4:I=5 224 @????: move-int v10:I=0 <- v1:I=0 225 Blort.java:51@0015: Rop{invoke-static . <- I I I I I I call throws <any>}(Blo 226 rt.methodThatNeedsInvokeRange:(IIIIII)V catch) . <- v5:I v6:I=0 v7:I v8:I=1 v 227 9:I=5 v10:I=0 228 next 0033 229 block 0032 230 pred 0034 231 Blort.java:47@0000: move-param-object(0) v11:"this"LBlort; <- . 232 Blort.java:47@0000: goto . <- . 233 next 0000 234 block 0033 235 pred 000f 236 Blort.java:52@0018: return-void . <- . 237 returns 238 block 0034 239 @????: const-int(5) v4:I=5 <- . 240 @????: const-int(1) v3:I=1 <- . 241 @????: const-int(0) v1:I=0 <- . 242 @????: goto . <- . 243 next 0032 244 245 method testMixedCategory (Z)J 246 first 0044 247 block 0000 248 pred 003c 249 Blort.java:57@0001: if-eqz-int . <- v9:I 250 next 0004 * 251 next 001a 252 block 0004 253 pred 0000 254 Blort.java:58@0004: const-int(1) v3:I=1 <- . 255 @????: mark-local-int . <- v3:"offset"I 256 Blort.java:59@0006: const-int(6) v0:I=6 <- . 257 @????: mark-local-int . <- v0:"src"I 258 Blort.java:60@0009: const-int(7) v2:I=7 <- . 259 @????: mark-local-int . <- v2:"dest"I 260 Blort.java:62@0012: const-int(5) v4:I=5 <- . 261 @????: move-int v5:I=0 <- v1:I=0 262 Blort.java:62@0014: Rop{invoke-static . <- I I I I I I call throws <any>}(Blo 263 rt.methodThatNeedsInvokeRange:(IIIIII)V catch) . <- v0:I v1:I=0 v2:I v3:I v4: 264 I=5 v5:I=0 265 next 0017 266 block 0017 267 pred 0004 268 Blort.java:63@0018: conv-i2l v6:J <- v3:I 269 Blort.java:63@0019: goto . <- . 270 next 003d 271 block 001a 272 pred 0000 273 Blort.java:65@001a: Rop{invoke-static . <- . call throws <any>}(java.lang.Sys 274 tem.currentTimeMillis:()J catch) . <- . 275 next 0043 276 block 001d 277 pred 0043 278 @????: mark-local-long . <- v6:"offset"J 279 Blort.java:66@001f: goto . <- . 280 next 003d 281 block 003c 282 pred 0044 283 Blort.java:57@0000: move-param-object(0) v8:"this"LBlort; <- . 284 Blort.java:57@0000: move-param-int(1) v9:"foo"Z <- . 285 Blort.java:57@0000: goto . <- . 286 next 0000 287 block 003d 288 pred 0017 289 pred 001d 290 Blort.java:66@001f: return-long . <- v6:J 291 returns 292 block 0043 293 pred 001a 294 Blort.java:65@001a: Rop{move-result J <- . flows} v6:J <- . 295 Blort.java:65@001a: goto . <- . 296 next 001d 297 block 0044 298 @????: const-int(0) v1:I=0 <- . 299 @????: goto . <- . 300 next 003c 301