1
2method Base$Inner.<init>(Base):void
3{
4............................. begin block 1 .............................
5	    0| move-object v0, v4
6	    1| move-object v1, v5
7	    2| move-object v2, v0
8	    3| move-object v3, v1
9	    4| iput-object v3, v2, Base$Inner.this$0
10.............................. end block 1 ..............................
11............................. begin block 2 .............................
12	    6| move-object v2, v0
13	    7| invoke-direct {v2}, java.lang.Object.<init>():void
14.............................. end block 2 ..............................
15............................. begin block 3 .............................
16	   10| return-void
17.............................. end block 3 ..............................
18}
19
20method Base$Nested.<init>():void
21{
22............................. begin block 1 .............................
23	    0| move-object v0, v2
24	    1| move-object v1, v0
25	    2| invoke-direct {v1}, java.lang.Object.<init>():void
26.............................. end block 1 ..............................
27............................. begin block 2 .............................
28	    5| return-void
29.............................. end block 2 ..............................
30}
31
32method Base.<init>():void
33{
34............................. begin block 1 .............................
35	    0| move-object v0, v2
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.test(int):void
45{
46............................. begin block 1 .............................
47	    0| move-object v0, v6
48	    1| move v1, v7
49	    2| invoke-static {}, Hello.printStackTrace():void
50.............................. end block 1 ..............................
51............................. begin block 2 .............................
52	    5| sget-object v2, java.lang.System.out
53.............................. end block 2 ..............................
54............................. begin block 3 .............................
55	    7| new-instance v3, java.lang.StringBuilder
56.............................. end block 3 ..............................
57............................. begin block 4 .............................
58	    9| move-object v5, v3
59	   10| move-object v3, v5
60	   11| move-object v4, v5
61	   12| invoke-direct {v4}, java.lang.StringBuilder.<init>():void
62.............................. end block 4 ..............................
63............................. begin block 5 .............................
64	   15| const-string v4, "Base.test "
65.............................. end block 5 ..............................
66............................. begin block 6 .............................
67	   17| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder
68.............................. end block 6 ..............................
69............................. begin block 7 .............................
70	   20| move-result-object v3
71	   21| move v4, v1
72	   22| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(int):java.lang.StringBuilder
73.............................. end block 7 ..............................
74............................. begin block 8 .............................
75	   25| move-result-object v3
76	   26| invoke-virtual {v3}, java.lang.StringBuilder.toString():java.lang.String
77.............................. end block 8 ..............................
78............................. begin block 9 .............................
79	   29| move-result-object v3
80	   30| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void
81.............................. end block 9 ..............................
82............................. begin block 10 .............................
83	   33| return-void
84.............................. end block 10 ..............................
85}
86
87method Derived.<init>():void
88{
89............................. begin block 1 .............................
90	    0| move-object v0, v2
91	    1| move-object v1, v0
92	    2| invoke-direct {v1}, Base.<init>():void
93.............................. end block 1 ..............................
94............................. begin block 2 .............................
95	    5| return-void
96.............................. end block 2 ..............................
97}
98
99method Derived.test(int):void
100{
101............................. begin block 1 .............................
102	    0| move-object v0, v6
103	    1| move v1, v7
104	    2| sget-object v2, java.lang.System.out
105.............................. end block 1 ..............................
106............................. begin block 2 .............................
107	    4| new-instance v3, java.lang.StringBuilder
108.............................. end block 2 ..............................
109............................. begin block 3 .............................
110	    6| move-object v5, v3
111	    7| move-object v3, v5
112	    8| move-object v4, v5
113	    9| invoke-direct {v4}, java.lang.StringBuilder.<init>():void
114.............................. end block 3 ..............................
115............................. begin block 4 .............................
116	   12| const-string v4, "Derived.test "
117.............................. end block 4 ..............................
118............................. begin block 5 .............................
119	   14| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder
120.............................. end block 5 ..............................
121............................. begin block 6 .............................
122	   17| move-result-object v3
123	   18| move v4, v1
124	   19| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(int):java.lang.StringBuilder
125.............................. end block 6 ..............................
126............................. begin block 7 .............................
127	   22| move-result-object v3
128	   23| invoke-virtual {v3}, java.lang.StringBuilder.toString():java.lang.String
129.............................. end block 7 ..............................
130............................. begin block 8 .............................
131	   26| move-result-object v3
132	   27| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void
133.............................. end block 8 ..............................
134............................. begin block 9 .............................
135	   30| return-void
136.............................. end block 9 ..............................
137}
138
139method Hello.<init>():void
140{
141............................. begin block 1 .............................
142	    0| move-object v0, v2
143	    1| move-object v1, v0
144	    2| invoke-direct {v1}, java.lang.Object.<init>():void
145.............................. end block 1 ..............................
146............................. begin block 2 .............................
147	    5| return-void
148.............................. end block 2 ..............................
149}
150
151method Hello.main(java.lang.String[]):void
152{
153............................. begin block 1 .............................
154	    0| move-object v0, v6
155	    1| sget-object v2, java.lang.System.out
156.............................. end block 1 ..............................
157............................. begin block 2 .............................
158	    3| const-string v3, "-------------------------------------------------------\n"
159.............................. end block 2 ..............................
160............................. begin block 3 .............................
161	    5| const/4 v4, #+0 (0x00000000 | 0.00000)
162	    6| new-array v4, v4, java.lang.Object[]
163.............................. end block 3 ..............................
164............................. begin block 4 .............................
165	    8| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
166.............................. end block 4 ..............................
167............................. begin block 5 .............................
168	   11| move-result-object v2
169	   12| sget-object v2, java.lang.System.out
170.............................. end block 5 ..............................
171............................. begin block 6 .............................
172	   14| const-string v3, "Hello, world (original)"
173.............................. end block 6 ..............................
174............................. begin block 7 .............................
175	   16| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void
176.............................. end block 7 ..............................
177............................. begin block 8 .............................
178	   19| sget-object v2, java.lang.System.out
179.............................. end block 8 ..............................
180............................. begin block 9 .............................
181	   21| const-string v3, "-------------------------------------------------------\n"
182.............................. end block 9 ..............................
183............................. begin block 10 .............................
184	   23| const/4 v4, #+0 (0x00000000 | 0.00000)
185	   24| new-array v4, v4, java.lang.Object[]
186.............................. end block 10 ..............................
187............................. begin block 11 .............................
188	   26| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
189.............................. end block 11 ..............................
190............................. begin block 12 .............................
191	   29| move-result-object v2
192	   30| new-instance v2, Base
193.............................. end block 12 ..............................
194............................. begin block 13 .............................
195	   32| move-object v5, v2
196	   33| move-object v2, v5
197	   34| move-object v3, v5
198	   35| invoke-direct {v3}, Base.<init>():void
199.............................. end block 13 ..............................
200............................. begin block 14 .............................
201	   38| move-object v1, v2
202	   39| move-object v2, v1
203	   40| const/4 v3, #+1 (0x00000001 | 1.40130e-45)
204	   41| invoke-virtual {v2,v3}, Base.test(int):void
205.............................. end block 14 ..............................
206............................. begin block 15 .............................
207	   44| sget-object v2, java.lang.System.out
208.............................. end block 15 ..............................
209............................. begin block 16 .............................
210	   46| const-string v3, "-------------------------------------------------------\n"
211.............................. end block 16 ..............................
212............................. begin block 17 .............................
213	   48| const/4 v4, #+0 (0x00000000 | 0.00000)
214	   49| new-array v4, v4, java.lang.Object[]
215.............................. end block 17 ..............................
216............................. begin block 18 .............................
217	   51| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
218.............................. end block 18 ..............................
219............................. begin block 19 .............................
220	   54| move-result-object v2
221	   55| new-instance v2, Derived
222.............................. end block 19 ..............................
223............................. begin block 20 .............................
224	   57| move-object v5, v2
225	   58| move-object v2, v5
226	   59| move-object v3, v5
227	   60| invoke-direct {v3}, Derived.<init>():void
228.............................. end block 20 ..............................
229............................. begin block 21 .............................
230	   63| move-object v1, v2
231	   64| move-object v2, v1
232	   65| const/4 v3, #+2 (0x00000002 | 2.80260e-45)
233	   66| invoke-virtual {v2,v3}, Base.test(int):void
234.............................. end block 21 ..............................
235............................. begin block 22 .............................
236	   69| return-void
237.............................. end block 22 ..............................
238}
239
240method Hello.printStackTrace():void
241{
242............................. begin block 1 .............................
243	    0| new-instance v5, java.lang.Throwable
244.............................. end block 1 ..............................
245............................. begin block 2 .............................
246	    2| move-object v11, v5
247	    3| move-object v5, v11
248	    4| move-object v6, v11
249	    5| invoke-direct {v6}, java.lang.Throwable.<init>():void
250.............................. end block 2 ..............................
251............................. begin block 3 .............................
252	    8| invoke-virtual {v5}, java.lang.Throwable.getStackTrace():java.lang.StackTraceElement[]
253.............................. end block 3 ..............................
254............................. begin block 4 .............................
255	   11| move-result-object v5
256	   12| move-object v0, v5
257	   13| move-object v5, v0
258	   14| move-object v1, v5
259	   15| move-object v5, v1
260	   16| array-length v5, v5
261.............................. end block 4 ..............................
262............................. begin block 5 .............................
263	   17| move v2, v5
264	   18| const/4 v5, #+0 (0x00000000 | 0.00000)
265	   19| move v3, v5
266.............................. end block 5 ..............................
267............................. begin block 6 .............................
268Label_1:
269	   20| move v5, v3
270	   21| move v6, v2
271	   22| if-ge v5, v6, Label_2
272.............................. end block 6 ..............................
273............................. begin block 7 .............................
274	   24| move-object v5, v1
275	   25| move v6, v3
276	   26| aget-object v5, v5, v6
277.............................. end block 7 ..............................
278............................. begin block 8 .............................
279	   28| move-object v4, v5
280	   29| sget-object v5, java.lang.System.out
281.............................. end block 8 ..............................
282............................. begin block 9 .............................
283	   31| const-string v6, "   %s\n"
284.............................. end block 9 ..............................
285............................. begin block 10 .............................
286	   33| const/4 v7, #+1 (0x00000001 | 1.40130e-45)
287	   34| new-array v7, v7, java.lang.Object[]
288.............................. end block 10 ..............................
289............................. begin block 11 .............................
290	   36| move-object v11, v7
291	   37| move-object v7, v11
292	   38| move-object v8, v11
293	   39| const/4 v9, #+0 (0x00000000 | 0.00000)
294	   40| move-object v10, v4
295	   41| invoke-virtual {v10}, java.lang.StackTraceElement.toString():java.lang.String
296.............................. end block 11 ..............................
297............................. begin block 12 .............................
298	   44| move-result-object v10
299	   45| aput-object v10, v8, v9
300.............................. end block 12 ..............................
301............................. begin block 13 .............................
302	   47| invoke-virtual {v5,v6,v7}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
303.............................. end block 13 ..............................
304............................. begin block 14 .............................
305	   50| move-result-object v5
306	   51| add-int/lit8 v3, v3, #+1 (0x00000001 | 1.40130e-45)
307	   53| goto Label_1
308.............................. end block 14 ..............................
309............................. begin block 15 .............................
310Label_2:
311	   54| return-void
312.............................. end block 15 ..............................
313}
314