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