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