1
2method Base$Inner.<init>(Base):void
3{
4............................. begin block 1 .............................
5	.params "?"
6	.src "hello.java"
7	.line 8
8	.prologue_end
9	.line 8
10	    0| move-object v0, v4
11	.local v0, "this", Base$Inner
12	    1| move-object v1, v5
13	.local v1, "this$0", Base
14	    2| move-object v2, v0
15	    3| move-object v3, v1
16	    4| iput-object v3, v2, Base$Inner.this$0
17.............................. end block 1 ..............................
18............................. begin block 2 .............................
19	    6| move-object v2, v0
20	    7| invoke-direct {v2}, java.lang.Object.<init>():void
21.............................. end block 2 ..............................
22............................. begin block 3 .............................
23	   10| return-void
24.............................. end block 3 ..............................
25}
26
27method Base$Nested.<init>():void
28{
29............................. begin block 1 .............................
30	.src "hello.java"
31	.line 4
32	.prologue_end
33	.line 4
34	    0| move-object v0, v2
35	.local v0, "this", Base$Nested
36	    1| move-object v1, v0
37	    2| invoke-direct {v1}, java.lang.Object.<init>():void
38.............................. end block 1 ..............................
39............................. begin block 2 .............................
40	    5| return-void
41.............................. end block 2 ..............................
42}
43
44method Base.<init>():void
45{
46............................. begin block 1 .............................
47	.src "hello.java"
48	.line 2
49	.prologue_end
50	.line 2
51	    0| move-object v0, v2
52	.local v0, "this", Base
53	    1| move-object v1, v0
54	    2| invoke-direct {v1}, java.lang.Object.<init>():void
55.............................. end block 1 ..............................
56............................. begin block 2 .............................
57	    5| return-void
58.............................. end block 2 ..............................
59}
60
61method Base.test(int):void
62{
63............................. begin block 1 .............................
64	.params "?"
65	.src "hello.java"
66	.line 14
67	.prologue_end
68	.line 14
69	    0| move-object v0, v6
70	.local v0, "this", Base
71	    1| move v1, v7
72	.local v1, "n", int
73	    2| invoke-static {}, Hello.printStackTrace():void
74.............................. end block 1 ..............................
75............................. begin block 2 .............................
76	.line 15
77	    5| sget-object v2, java.lang.System.out
78.............................. end block 2 ..............................
79............................. begin block 3 .............................
80	    7| new-instance v3, java.lang.StringBuilder
81.............................. end block 3 ..............................
82............................. begin block 4 .............................
83	    9| move-object v5, v3
84	   10| move-object v3, v5
85	   11| move-object v4, v5
86	   12| invoke-direct {v4}, java.lang.StringBuilder.<init>():void
87.............................. end block 4 ..............................
88............................. begin block 5 .............................
89	   15| const-string v4, "Base.test "
90.............................. end block 5 ..............................
91............................. begin block 6 .............................
92	   17| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder
93.............................. end block 6 ..............................
94............................. begin block 7 .............................
95	   20| move-result-object v3
96	   21| move v4, v1
97	   22| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(int):java.lang.StringBuilder
98.............................. end block 7 ..............................
99............................. begin block 8 .............................
100	   25| move-result-object v3
101	   26| invoke-virtual {v3}, java.lang.StringBuilder.toString():java.lang.String
102.............................. end block 8 ..............................
103............................. begin block 9 .............................
104	   29| move-result-object v3
105	   30| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void
106.............................. end block 9 ..............................
107............................. begin block 10 .............................
108	.line 16
109	   33| return-void
110.............................. end block 10 ..............................
111}
112
113method Derived.<init>():void
114{
115............................. begin block 1 .............................
116	.src "hello.java"
117	.line 19
118	.prologue_end
119	.line 19
120	    0| move-object v0, v2
121	.local v0, "this", Derived
122	    1| move-object v1, v0
123	    2| invoke-direct {v1}, Base.<init>():void
124.............................. end block 1 ..............................
125............................. begin block 2 .............................
126	    5| return-void
127.............................. end block 2 ..............................
128}
129
130method Derived.test(int):void
131{
132............................. begin block 1 .............................
133	.params "?"
134	.src "hello.java"
135	.line 23
136	.prologue_end
137	.line 23
138	    0| move-object v0, v6
139	.local v0, "this", Derived
140	    1| move v1, v7
141	.local v1, "n", int
142	    2| sget-object v2, java.lang.System.out
143.............................. end block 1 ..............................
144............................. begin block 2 .............................
145	    4| new-instance v3, java.lang.StringBuilder
146.............................. end block 2 ..............................
147............................. begin block 3 .............................
148	    6| move-object v5, v3
149	    7| move-object v3, v5
150	    8| move-object v4, v5
151	    9| invoke-direct {v4}, java.lang.StringBuilder.<init>():void
152.............................. end block 3 ..............................
153............................. begin block 4 .............................
154	   12| const-string v4, "Derived.test "
155.............................. end block 4 ..............................
156............................. begin block 5 .............................
157	   14| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder
158.............................. end block 5 ..............................
159............................. begin block 6 .............................
160	   17| move-result-object v3
161	   18| move v4, v1
162	   19| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(int):java.lang.StringBuilder
163.............................. end block 6 ..............................
164............................. begin block 7 .............................
165	   22| move-result-object v3
166	   23| invoke-virtual {v3}, java.lang.StringBuilder.toString():java.lang.String
167.............................. end block 7 ..............................
168............................. begin block 8 .............................
169	   26| move-result-object v3
170	   27| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void
171.............................. end block 8 ..............................
172............................. begin block 9 .............................
173	.line 24
174	   30| return-void
175.............................. end block 9 ..............................
176}
177
178method Hello.<init>():void
179{
180............................. begin block 1 .............................
181	.src "hello.java"
182	.line 27
183	.prologue_end
184	.line 27
185	    0| move-object v0, v2
186	.local v0, "this", Hello
187	    1| move-object v1, v0
188	    2| invoke-direct {v1}, java.lang.Object.<init>():void
189.............................. end block 1 ..............................
190............................. begin block 2 .............................
191	    5| return-void
192.............................. end block 2 ..............................
193}
194
195method Hello.main(java.lang.String[]):void
196{
197............................. begin block 1 .............................
198	.params "?"
199	.src "hello.java"
200	.line 31
201	.prologue_end
202	.line 31
203	    0| move-object v0, v6
204	.local v0, "args", java.lang.String[]
205	    1| sget-object v2, java.lang.System.out
206.............................. end block 1 ..............................
207............................. begin block 2 .............................
208	    3| const-string v3, "-------------------------------------------------------\n"
209.............................. end block 2 ..............................
210............................. begin block 3 .............................
211	    5| const/4 v4, #+0 (0x00000000 | 0.00000)
212	    6| new-array v4, v4, java.lang.Object[]
213.............................. end block 3 ..............................
214............................. begin block 4 .............................
215	    8| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
216.............................. end block 4 ..............................
217............................. begin block 5 .............................
218	   11| move-result-object v2
219	.line 32
220	   12| sget-object v2, java.lang.System.out
221.............................. end block 5 ..............................
222............................. begin block 6 .............................
223	   14| const-string v3, "Hello, world (original)"
224.............................. end block 6 ..............................
225............................. begin block 7 .............................
226	   16| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void
227.............................. end block 7 ..............................
228............................. begin block 8 .............................
229	.line 36
230	   19| sget-object v2, java.lang.System.out
231.............................. end block 8 ..............................
232............................. begin block 9 .............................
233	   21| const-string v3, "-------------------------------------------------------\n"
234.............................. end block 9 ..............................
235............................. begin block 10 .............................
236	   23| const/4 v4, #+0 (0x00000000 | 0.00000)
237	   24| new-array v4, v4, java.lang.Object[]
238.............................. end block 10 ..............................
239............................. begin block 11 .............................
240	   26| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
241.............................. end block 11 ..............................
242............................. begin block 12 .............................
243	   29| move-result-object v2
244	.line 37
245	   30| new-instance v2, Base
246.............................. end block 12 ..............................
247............................. begin block 13 .............................
248	   32| move-object v5, v2
249	   33| move-object v2, v5
250	   34| move-object v3, v5
251	   35| invoke-direct {v3}, Base.<init>():void
252.............................. end block 13 ..............................
253............................. begin block 14 .............................
254	   38| move-object v1, v2
255	.line 38
256	.local v1, "x", Base
257	   39| move-object v2, v1
258	   40| const/4 v3, #+1 (0x00000001 | 1.40130e-45)
259	   41| invoke-virtual {v2,v3}, Base.test(int):void
260.............................. end block 14 ..............................
261............................. begin block 15 .............................
262	.line 40
263	   44| sget-object v2, java.lang.System.out
264.............................. end block 15 ..............................
265............................. begin block 16 .............................
266	   46| const-string v3, "-------------------------------------------------------\n"
267.............................. end block 16 ..............................
268............................. begin block 17 .............................
269	   48| const/4 v4, #+0 (0x00000000 | 0.00000)
270	   49| new-array v4, v4, java.lang.Object[]
271.............................. end block 17 ..............................
272............................. begin block 18 .............................
273	   51| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
274.............................. end block 18 ..............................
275............................. begin block 19 .............................
276	   54| move-result-object v2
277	.line 41
278	   55| new-instance v2, Derived
279.............................. end block 19 ..............................
280............................. begin block 20 .............................
281	   57| move-object v5, v2
282	   58| move-object v2, v5
283	   59| move-object v3, v5
284	   60| invoke-direct {v3}, Derived.<init>():void
285.............................. end block 20 ..............................
286............................. begin block 21 .............................
287	   63| move-object v1, v2
288	.line 42
289	   64| move-object v2, v1
290	   65| const/4 v3, #+2 (0x00000002 | 2.80260e-45)
291	   66| invoke-virtual {v2,v3}, Base.test(int):void
292.............................. end block 21 ..............................
293............................. begin block 22 .............................
294	.line 43
295	   69| return-void
296.............................. end block 22 ..............................
297}
298
299method Hello.printStackTrace():void
300{
301............................. begin block 1 .............................
302	.src "hello.java"
303	.line 47
304	.prologue_end
305	.line 47
306	    0| new-instance v5, java.lang.Throwable
307.............................. end block 1 ..............................
308............................. begin block 2 .............................
309	    2| move-object v11, v5
310	    3| move-object v5, v11
311	    4| move-object v6, v11
312	    5| invoke-direct {v6}, java.lang.Throwable.<init>():void
313.............................. end block 2 ..............................
314............................. begin block 3 .............................
315	    8| invoke-virtual {v5}, java.lang.Throwable.getStackTrace():java.lang.StackTraceElement[]
316.............................. end block 3 ..............................
317............................. begin block 4 .............................
318	   11| move-result-object v5
319	   12| move-object v0, v5
320	.line 48
321	.local v0, "callstack", java.lang.StackTraceElement[]
322	   13| move-object v5, v0
323	   14| move-object v1, v5
324	   15| move-object v5, v1
325	   16| array-length v5, v5
326.............................. end block 4 ..............................
327............................. begin block 5 .............................
328	   17| move v2, v5
329	   18| const/4 v5, #+0 (0x00000000 | 0.00000)
330	   19| move v3, v5
331.............................. end block 5 ..............................
332............................. begin block 6 .............................
333Label_1:
334	   20| move v5, v3
335	   21| move v6, v2
336	   22| if-ge v5, v6, Label_2
337.............................. end block 6 ..............................
338............................. begin block 7 .............................
339	   24| move-object v5, v1
340	   25| move v6, v3
341	   26| aget-object v5, v5, v6
342.............................. end block 7 ..............................
343............................. begin block 8 .............................
344	   28| move-object v4, v5
345	.line 50
346	.local v4, "e", java.lang.StackTraceElement
347	   29| sget-object v5, java.lang.System.out
348.............................. end block 8 ..............................
349............................. begin block 9 .............................
350	   31| const-string v6, "   %s\n"
351.............................. end block 9 ..............................
352............................. begin block 10 .............................
353	   33| const/4 v7, #+1 (0x00000001 | 1.40130e-45)
354	   34| new-array v7, v7, java.lang.Object[]
355.............................. end block 10 ..............................
356............................. begin block 11 .............................
357	   36| move-object v11, v7
358	   37| move-object v7, v11
359	   38| move-object v8, v11
360	   39| const/4 v9, #+0 (0x00000000 | 0.00000)
361	   40| move-object v10, v4
362	   41| invoke-virtual {v10}, java.lang.StackTraceElement.toString():java.lang.String
363.............................. end block 11 ..............................
364............................. begin block 12 .............................
365	   44| move-result-object v10
366	   45| aput-object v10, v8, v9
367.............................. end block 12 ..............................
368............................. begin block 13 .............................
369	   47| invoke-virtual {v5,v6,v7}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
370.............................. end block 13 ..............................
371............................. begin block 14 .............................
372	   50| move-result-object v5
373	.line 48
374	   51| add-int/lit8 v3, v3, #+1 (0x00000001 | 1.40130e-45)
375	   53| goto Label_1
376.............................. end block 14 ..............................
377............................. begin block 15 .............................
378Label_2:
379	.line 52
380	.end_local v4
381	   54| return-void
382.............................. end block 15 ..............................
383}
384
385method Hello.wrapTest(Base, int):void
386{
387............................. begin block 1 .............................
388	.params "?", "?"
389	.src "hello.java"
390	.line 56
391	.prologue_end
392	.line 56
393	    0| move-object v0, v9
394	.local v0, "_this", Base
395	    1| move v1, v10
396	.local v1, "n", int
397	    2| sget-object v2, java.lang.System.out
398.............................. end block 1 ..............................
399............................. begin block 2 .............................
400	    4| const-string v3, ">>> %s.test(int n = %d)\n"
401.............................. end block 2 ..............................
402............................. begin block 3 .............................
403	    6| const/4 v4, #+2 (0x00000002 | 2.80260e-45)
404	    7| new-array v4, v4, java.lang.Object[]
405.............................. end block 3 ..............................
406............................. begin block 4 .............................
407	    9| move-object v8, v4
408	   10| move-object v4, v8
409	   11| move-object v5, v8
410	   12| const/4 v6, #+0 (0x00000000 | 0.00000)
411	   13| move-object v7, v0
412	   14| invoke-virtual {v7}, java.lang.Object.getClass():java.lang.Class
413.............................. end block 4 ..............................
414............................. begin block 5 .............................
415	   17| move-result-object v7
416	   18| invoke-virtual {v7}, java.lang.Class.getName():java.lang.String
417.............................. end block 5 ..............................
418............................. begin block 6 .............................
419	   21| move-result-object v7
420	   22| aput-object v7, v5, v6
421.............................. end block 6 ..............................
422............................. begin block 7 .............................
423	   24| move-object v8, v4
424	   25| move-object v4, v8
425	   26| move-object v5, v8
426	   27| const/4 v6, #+1 (0x00000001 | 1.40130e-45)
427	   28| move v7, v1
428	   29| invoke-static {v7}, java.lang.Integer.valueOf(int):java.lang.Integer
429.............................. end block 7 ..............................
430............................. begin block 8 .............................
431	   32| move-result-object v7
432	   33| aput-object v7, v5, v6
433.............................. end block 8 ..............................
434............................. begin block 9 .............................
435	   35| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
436.............................. end block 9 ..............................
437............................. begin block 10 .............................
438	   38| move-result-object v2
439	.line 57
440	   39| move-object v2, v0
441	   40| move v3, v1
442	   41| invoke-virtual {v2,v3}, Base.test(int):void
443.............................. end block 10 ..............................
444............................. begin block 11 .............................
445	.line 58
446	   44| return-void
447.............................. end block 11 ..............................
448}
449