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