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