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