xref: /aosp_15_r20/tools/dexter/testdata/expected/try_catch.exit_hook (revision f0dffb02cdb5c647d21204e89a92a1ffae2dad87)
1*f0dffb02SXin Li
2*f0dffb02SXin Limethod A.<init>():void
3*f0dffb02SXin Li{
4*f0dffb02SXin Li	.src "tryCatch.java"
5*f0dffb02SXin Li	.line 2
6*f0dffb02SXin Li	.prologue_end
7*f0dffb02SXin Li	.line 2
8*f0dffb02SXin Li	    0| move-object v0, v2
9*f0dffb02SXin Li	.local v0, "this", A
10*f0dffb02SXin Li	    1| move-object v1, v0
11*f0dffb02SXin Li	    2| invoke-direct {v1}, java.lang.Throwable.<init>():void
12*f0dffb02SXin Li	    5| invoke-static/range {}, Tracer.OnExit():void
13*f0dffb02SXin Li	    8| return-void
14*f0dffb02SXin Li}
15*f0dffb02SXin Li
16*f0dffb02SXin Limethod B.<init>():void
17*f0dffb02SXin Li{
18*f0dffb02SXin Li	.src "tryCatch.java"
19*f0dffb02SXin Li	.line 6
20*f0dffb02SXin Li	.prologue_end
21*f0dffb02SXin Li	.line 6
22*f0dffb02SXin Li	    0| move-object v0, v2
23*f0dffb02SXin Li	.local v0, "this", B
24*f0dffb02SXin Li	    1| move-object v1, v0
25*f0dffb02SXin Li	    2| invoke-direct {v1}, java.lang.Throwable.<init>():void
26*f0dffb02SXin Li	    5| invoke-static/range {}, Tracer.OnExit():void
27*f0dffb02SXin Li	    8| return-void
28*f0dffb02SXin Li}
29*f0dffb02SXin Li
30*f0dffb02SXin Limethod TryCatch.<init>():void
31*f0dffb02SXin Li{
32*f0dffb02SXin Li	.src "tryCatch.java"
33*f0dffb02SXin Li	.line 10
34*f0dffb02SXin Li	.prologue_end
35*f0dffb02SXin Li	.line 10
36*f0dffb02SXin Li	    0| move-object v0, v2
37*f0dffb02SXin Li	.local v0, "this", TryCatch
38*f0dffb02SXin Li	    1| move-object v1, v0
39*f0dffb02SXin Li	    2| invoke-direct {v1}, java.lang.Object.<init>():void
40*f0dffb02SXin Li	    5| invoke-static/range {}, Tracer.OnExit():void
41*f0dffb02SXin Li	    8| return-void
42*f0dffb02SXin Li}
43*f0dffb02SXin Li
44*f0dffb02SXin Limethod TryCatch.foo(int):int
45*f0dffb02SXin Li{
46*f0dffb02SXin Li	.params "?"
47*f0dffb02SXin Li	.src "tryCatch.java"
48*f0dffb02SXin Li	.line 27
49*f0dffb02SXin Li	.prologue_end
50*f0dffb02SXin Li	.line 27
51*f0dffb02SXin Li	    0| move v0, v4
52*f0dffb02SXin Li	.local v0, "x", int
53*f0dffb02SXin Li	    1| move v1, v0
54*f0dffb02SXin Li	    2| if-lez v1, Label_4
55*f0dffb02SXin Li	.line 28
56*f0dffb02SXin Li	    4| move v1, v0
57*f0dffb02SXin Li	    5| packed-switch v1, Label_5
58*f0dffb02SXin Li	.line 31
59*f0dffb02SXin Li	    8| const/4 v1, #+1 (0x00000001 | 1.40130e-45)
60*f0dffb02SXin Li	    9| move v0, v1
61*f0dffb02SXin LiLabel_1:
62*f0dffb02SXin Li	.line 34
63*f0dffb02SXin Li	.end_local v0
64*f0dffb02SXin Li	   10| invoke-static/range {v0..v0}, Tracer.OnExit(int):int
65*f0dffb02SXin Li	   13| move-result v0
66*f0dffb02SXin Li	   14| return v0
67*f0dffb02SXin LiLabel_2:
68*f0dffb02SXin Li	.line 29
69*f0dffb02SXin Li	.restart_local v0
70*f0dffb02SXin Li	   15| new-instance v1, A
71*f0dffb02SXin Li	   17| move-object v3, v1
72*f0dffb02SXin Li	   18| move-object v1, v3
73*f0dffb02SXin Li	   19| move-object v2, v3
74*f0dffb02SXin Li	   20| invoke-direct {v2}, A.<init>():void
75*f0dffb02SXin Li	   23| throw v1
76*f0dffb02SXin LiLabel_3:
77*f0dffb02SXin Li	.line 30
78*f0dffb02SXin Li	   24| new-instance v1, B
79*f0dffb02SXin Li	   26| move-object v3, v1
80*f0dffb02SXin Li	   27| move-object v1, v3
81*f0dffb02SXin Li	   28| move-object v2, v3
82*f0dffb02SXin Li	   29| invoke-direct {v2}, B.<init>():void
83*f0dffb02SXin Li	   32| throw v1
84*f0dffb02SXin LiLabel_4:
85*f0dffb02SXin Li	.line 34
86*f0dffb02SXin Li	   33| const/4 v1, #+0 (0x00000000 | 0.00000)
87*f0dffb02SXin Li	   34| move v0, v1
88*f0dffb02SXin Li	   35| goto/16 Label_1
89*f0dffb02SXin Li	   37| nop
90*f0dffb02SXin LiLabel_5: <aligned>
91*f0dffb02SXin Li	.line 28
92*f0dffb02SXin Li	   38| packed-switch-payload
93*f0dffb02SXin Li		    1: Label_2
94*f0dffb02SXin Li		    2: Label_3
95*f0dffb02SXin Li}
96*f0dffb02SXin Li
97*f0dffb02SXin Limethod TryCatch.main(java.lang.String[]):void
98*f0dffb02SXin Li{
99*f0dffb02SXin Li	.params "?"
100*f0dffb02SXin Li	.src "tryCatch.java"
101*f0dffb02SXin Li	.line 15
102*f0dffb02SXin Li	.prologue_end
103*f0dffb02SXin Li	.line 15
104*f0dffb02SXin Li	    0| move-object v0, v6
105*f0dffb02SXin Li	.local v0, "args", java.lang.String[]
106*f0dffb02SXin Li	    1| const/4 v3, #+0 (0x00000000 | 0.00000)
107*f0dffb02SXin Li	.try_begin_1
108*f0dffb02SXin Li	    2| invoke-static {v3}, TryCatch.foo(int):int
109*f0dffb02SXin Li	.try_end_1
110*f0dffb02SXin Li	  catch(B) : Label_3
111*f0dffb02SXin Li	  catch(A) : Label_4
112*f0dffb02SXin Li	  catch(...) : Label_5
113*f0dffb02SXin Li	    5| move-result v3
114*f0dffb02SXin LiLabel_1:
115*f0dffb02SXin Li	.line 18
116*f0dffb02SXin Li	.line 22
117*f0dffb02SXin Li	    6| sget-object v3, java.lang.System.out
118*f0dffb02SXin Li	    8| const-string v4, "finally\n"
119*f0dffb02SXin Li	   10| const/4 v5, #+0 (0x00000000 | 0.00000)
120*f0dffb02SXin Li	   11| new-array v5, v5, java.lang.Object[]
121*f0dffb02SXin Li	   13| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
122*f0dffb02SXin Li	   16| move-result-object v3
123*f0dffb02SXin LiLabel_2:
124*f0dffb02SXin Li	.line 23
125*f0dffb02SXin Li	.line 24
126*f0dffb02SXin Li	   17| invoke-static/range {}, Tracer.OnExit():void
127*f0dffb02SXin Li	   20| return-void
128*f0dffb02SXin LiLabel_3:
129*f0dffb02SXin Li	.line 16
130*f0dffb02SXin Li	   21| move-exception v3
131*f0dffb02SXin Li	   22| move-object v1, v3
132*f0dffb02SXin Li	.try_begin_2
133*f0dffb02SXin Li	.line 17
134*f0dffb02SXin Li	.local v1, "ex", B
135*f0dffb02SXin Li	   23| sget-object v3, java.lang.System.out
136*f0dffb02SXin Li	   25| const-string v4, "catch: B\n"
137*f0dffb02SXin Li	   27| const/4 v5, #+0 (0x00000000 | 0.00000)
138*f0dffb02SXin Li	   28| new-array v5, v5, java.lang.Object[]
139*f0dffb02SXin Li	   30| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
140*f0dffb02SXin Li	.try_end_2
141*f0dffb02SXin Li	  catch(A) : Label_4
142*f0dffb02SXin Li	  catch(...) : Label_5
143*f0dffb02SXin Li	   33| move-result-object v3
144*f0dffb02SXin Li	   34| goto/16 Label_1
145*f0dffb02SXin LiLabel_4:
146*f0dffb02SXin Li	.line 19
147*f0dffb02SXin Li	.end_local v1
148*f0dffb02SXin Li	   36| move-exception v3
149*f0dffb02SXin Li	   37| move-object v1, v3
150*f0dffb02SXin Li	.try_begin_3
151*f0dffb02SXin Li	.line 20
152*f0dffb02SXin Li	.local v1, "ex", A
153*f0dffb02SXin Li	   38| sget-object v3, java.lang.System.out
154*f0dffb02SXin Li	   40| const-string v4, "catch: A\n"
155*f0dffb02SXin Li	   42| const/4 v5, #+0 (0x00000000 | 0.00000)
156*f0dffb02SXin Li	   43| new-array v5, v5, java.lang.Object[]
157*f0dffb02SXin Li	   45| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
158*f0dffb02SXin Li	.try_end_3
159*f0dffb02SXin Li	  catch(...) : Label_5
160*f0dffb02SXin Li	   48| move-result-object v3
161*f0dffb02SXin Li	.line 22
162*f0dffb02SXin Li	   49| sget-object v3, java.lang.System.out
163*f0dffb02SXin Li	   51| const-string v4, "finally\n"
164*f0dffb02SXin Li	   53| const/4 v5, #+0 (0x00000000 | 0.00000)
165*f0dffb02SXin Li	   54| new-array v5, v5, java.lang.Object[]
166*f0dffb02SXin Li	   56| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
167*f0dffb02SXin Li	   59| move-result-object v3
168*f0dffb02SXin Li	.line 23
169*f0dffb02SXin Li	   60| goto/16 Label_2
170*f0dffb02SXin LiLabel_5:
171*f0dffb02SXin Li	.line 22
172*f0dffb02SXin Li	.end_local v1
173*f0dffb02SXin Li	   62| move-exception v3
174*f0dffb02SXin Li	   63| move-object v2, v3
175*f0dffb02SXin Li	   64| sget-object v3, java.lang.System.out
176*f0dffb02SXin Li	   66| const-string v4, "finally\n"
177*f0dffb02SXin Li	   68| const/4 v5, #+0 (0x00000000 | 0.00000)
178*f0dffb02SXin Li	   69| new-array v5, v5, java.lang.Object[]
179*f0dffb02SXin Li	   71| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
180*f0dffb02SXin Li	   74| move-result-object v3
181*f0dffb02SXin Li	   75| move-object v3, v2
182*f0dffb02SXin Li	   76| throw v3
183*f0dffb02SXin Li}
184