1
2method Base$Inner.<init>(Base):void
3{
4	    0| move-object/16 v14, v27
5	    3| move-object/16 v15, v28
6	    6| move-object/16 v13, v14
7	    9| move-object/16 v14, v15
8	   12| move-object/16 v12, v13
9	   15| move-object/16 v13, v14
10	   18| move-object v8, v12
11	   19| move-object v9, v13
12	   20| move-object v10, v8
13	   21| move-object v11, v9
14	   22| iput-object v11, v10, Base$Inner.this$0
15	   24| move-object v10, v8
16	   25| invoke-direct {v10}, java.lang.Object.<init>():void
17	   28| return-void
18}
19
20method Base$Nested.<init>():void
21{
22	    0| move-object/16 v15, v25
23	    3| move-object/16 v14, v15
24	    6| move-object/16 v13, v14
25	    9| move-object v11, v13
26	   10| move-object v12, v11
27	   11| invoke-direct {v12}, java.lang.Object.<init>():void
28	   14| return-void
29}
30
31method Base.<init>():void
32{
33	    0| move-object/16 v15, v25
34	    3| move-object/16 v14, v15
35	    6| move-object/16 v13, v14
36	    9| move-object v11, v13
37	   10| move-object v12, v11
38	   11| invoke-direct {v12}, java.lang.Object.<init>():void
39	   14| return-void
40}
41
42method Base.test(int):void
43{
44	    0| move-object/16 v14, v29
45	    3| move/16 v15, v30
46	    6| move-object/16 v13, v14
47	    9| move/16 v14, v15
48	   12| move-object/16 v12, v13
49	   15| move/16 v13, v14
50	   18| move-object v6, v12
51	   19| move v7, v13
52	   20| invoke-static {}, Hello.printStackTrace():void
53	   23| sget-object v8, java.lang.System.out
54	   25| new-instance v9, java.lang.StringBuilder
55	   27| move-object v11, v9
56	   28| move-object v9, v11
57	   29| move-object v10, v11
58	   30| invoke-direct {v10}, java.lang.StringBuilder.<init>():void
59	   33| const-string v10, "Base.test "
60	   35| invoke-virtual {v9,v10}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder
61	   38| move-result-object v9
62	   39| move v10, v7
63	   40| invoke-virtual {v9,v10}, java.lang.StringBuilder.append(int):java.lang.StringBuilder
64	   43| move-result-object v9
65	   44| invoke-virtual {v9}, java.lang.StringBuilder.toString():java.lang.String
66	   47| move-result-object v9
67	   48| invoke-virtual {v8,v9}, java.io.PrintStream.println(java.lang.String):void
68	   51| return-void
69}
70
71method Derived.<init>():void
72{
73	    0| move-object/16 v15, v25
74	    3| move-object/16 v14, v15
75	    6| move-object/16 v13, v14
76	    9| move-object v11, v13
77	   10| move-object v12, v11
78	   11| invoke-direct {v12}, Base.<init>():void
79	   14| return-void
80}
81
82method Derived.test(int):void
83{
84	    0| move-object/16 v14, v29
85	    3| move/16 v15, v30
86	    6| move-object/16 v13, v14
87	    9| move/16 v14, v15
88	   12| move-object/16 v12, v13
89	   15| move/16 v13, v14
90	   18| move-object v6, v12
91	   19| move v7, v13
92	   20| sget-object v8, java.lang.System.out
93	   22| new-instance v9, java.lang.StringBuilder
94	   24| move-object v11, v9
95	   25| move-object v9, v11
96	   26| move-object v10, v11
97	   27| invoke-direct {v10}, java.lang.StringBuilder.<init>():void
98	   30| const-string v10, "Derived.test "
99	   32| invoke-virtual {v9,v10}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder
100	   35| move-result-object v9
101	   36| move v10, v7
102	   37| invoke-virtual {v9,v10}, java.lang.StringBuilder.append(int):java.lang.StringBuilder
103	   40| move-result-object v9
104	   41| invoke-virtual {v9}, java.lang.StringBuilder.toString():java.lang.String
105	   44| move-result-object v9
106	   45| invoke-virtual {v8,v9}, java.io.PrintStream.println(java.lang.String):void
107	   48| return-void
108}
109
110method Hello.<init>():void
111{
112	    0| move-object/16 v15, v25
113	    3| move-object/16 v14, v15
114	    6| move-object/16 v13, v14
115	    9| move-object v11, v13
116	   10| move-object v12, v11
117	   11| invoke-direct {v12}, java.lang.Object.<init>():void
118	   14| return-void
119}
120
121method Hello.main(java.lang.String[]):void
122{
123	    0| move-object/16 v15, v29
124	    3| move-object/16 v14, v15
125	    6| move-object/16 v13, v14
126	    9| move-object v7, v13
127	   10| sget-object v9, java.lang.System.out
128	   12| const-string v10, "-------------------------------------------------------\n"
129	   14| const/4 v11, #+0 (0x00000000 | 0.00000)
130	   15| new-array v11, v11, java.lang.Object[]
131	   17| invoke-virtual {v9,v10,v11}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
132	   20| move-result-object v9
133	   21| sget-object v9, java.lang.System.out
134	   23| const-string v10, "Hello, world (original)"
135	   25| invoke-virtual {v9,v10}, java.io.PrintStream.println(java.lang.String):void
136	   28| sget-object v9, java.lang.System.out
137	   30| const-string v10, "-------------------------------------------------------\n"
138	   32| const/4 v11, #+0 (0x00000000 | 0.00000)
139	   33| new-array v11, v11, java.lang.Object[]
140	   35| invoke-virtual {v9,v10,v11}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
141	   38| move-result-object v9
142	   39| new-instance v9, Base
143	   41| move-object v12, v9
144	   42| move-object v9, v12
145	   43| move-object v10, v12
146	   44| invoke-direct {v10}, Base.<init>():void
147	   47| move-object v8, v9
148	   48| move-object v9, v8
149	   49| const/4 v10, #+1 (0x00000001 | 1.40130e-45)
150	   50| invoke-virtual {v9,v10}, Base.test(int):void
151	   53| sget-object v9, java.lang.System.out
152	   55| const-string v10, "-------------------------------------------------------\n"
153	   57| const/4 v11, #+0 (0x00000000 | 0.00000)
154	   58| new-array v11, v11, java.lang.Object[]
155	   60| invoke-virtual {v9,v10,v11}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
156	   63| move-result-object v9
157	   64| new-instance v9, Derived
158	   66| move-object v12, v9
159	   67| move-object v9, v12
160	   68| move-object v10, v12
161	   69| invoke-direct {v10}, Derived.<init>():void
162	   72| move-object v8, v9
163	   73| move-object v9, v8
164	   74| const/4 v10, #+2 (0x00000002 | 2.80260e-45)
165	   75| invoke-virtual {v9,v10}, Base.test(int):void
166	   78| return-void
167}
168
169method Hello.printStackTrace():void
170{
171	    0| new-instance v5, java.lang.Throwable
172	    2| move-object v11, v5
173	    3| move-object v5, v11
174	    4| move-object v6, v11
175	    5| invoke-direct {v6}, java.lang.Throwable.<init>():void
176	    8| invoke-virtual {v5}, java.lang.Throwable.getStackTrace():java.lang.StackTraceElement[]
177	   11| move-result-object v5
178	   12| move-object v0, v5
179	   13| move-object v5, v0
180	   14| move-object v1, v5
181	   15| move-object v5, v1
182	   16| array-length v5, v5
183	   17| move v2, v5
184	   18| const/4 v5, #+0 (0x00000000 | 0.00000)
185	   19| move v3, v5
186Label_1:
187	   20| move v5, v3
188	   21| move v6, v2
189	   22| if-ge v5, v6, Label_2
190	   24| move-object v5, v1
191	   25| move v6, v3
192	   26| aget-object v5, v5, v6
193	   28| move-object v4, v5
194	   29| sget-object v5, java.lang.System.out
195	   31| const-string v6, "   %s\n"
196	   33| const/4 v7, #+1 (0x00000001 | 1.40130e-45)
197	   34| new-array v7, v7, java.lang.Object[]
198	   36| move-object v11, v7
199	   37| move-object v7, v11
200	   38| move-object v8, v11
201	   39| const/4 v9, #+0 (0x00000000 | 0.00000)
202	   40| move-object v10, v4
203	   41| invoke-virtual {v10}, java.lang.StackTraceElement.toString():java.lang.String
204	   44| move-result-object v10
205	   45| aput-object v10, v8, v9
206	   47| invoke-virtual {v5,v6,v7}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
207	   50| move-result-object v5
208	   51| add-int/lit8 v3, v3, #+1 (0x00000001 | 1.40130e-45)
209	   53| goto/16 Label_1
210Label_2:
211	   55| return-void
212}
213