xref: /aosp_15_r20/dalvik/dx/tests/032-bb-live-code/blort.j (revision 055d459012065f78d96b68be8421640240ddf631)
1*055d4590SKeyi Gui; Copyright (C) 2007 The Android Open Source Project
2*055d4590SKeyi Gui;
3*055d4590SKeyi Gui; Licensed under the Apache License, Version 2.0 (the "License");
4*055d4590SKeyi Gui; you may not use this file except in compliance with the License.
5*055d4590SKeyi Gui; You may obtain a copy of the License at
6*055d4590SKeyi Gui;
7*055d4590SKeyi Gui;      http://www.apache.org/licenses/LICENSE-2.0
8*055d4590SKeyi Gui;
9*055d4590SKeyi Gui; Unless required by applicable law or agreed to in writing, software
10*055d4590SKeyi Gui; distributed under the License is distributed on an "AS IS" BASIS,
11*055d4590SKeyi Gui; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*055d4590SKeyi Gui; See the License for the specific language governing permissions and
13*055d4590SKeyi Gui; limitations under the License.
14*055d4590SKeyi Gui
15*055d4590SKeyi Gui.class blort
16*055d4590SKeyi Gui.super java/lang/Object
17*055d4590SKeyi Gui
18*055d4590SKeyi Gui.method public <init>()V
19*055d4590SKeyi Gui    .limit locals 1
20*055d4590SKeyi Gui
21*055d4590SKeyi Gui    aload_0
22*055d4590SKeyi Gui    invokespecial java/lang/Object/<init>()V
23*055d4590SKeyi Gui    return
24*055d4590SKeyi Gui.end method
25*055d4590SKeyi Gui
26*055d4590SKeyi Gui; Test that an exception handler for a live range is enlivened.
27*055d4590SKeyi Gui.method public test_live_exception([I)V
28*055d4590SKeyi Gui    nop
29*055d4590SKeyi Gui    nop
30*055d4590SKeyi Guistart:
31*055d4590SKeyi Gui    aload_0
32*055d4590SKeyi Gui    arraylength
33*055d4590SKeyi Guiend1:
34*055d4590SKeyi Gui    nop
35*055d4590SKeyi Guiend2:
36*055d4590SKeyi Gui    return
37*055d4590SKeyi Guihandler1:
38*055d4590SKeyi Gui    return
39*055d4590SKeyi Guihandler2:
40*055d4590SKeyi Gui    return
41*055d4590SKeyi Gui    .catch java/lang/RuntimeException from start to end2 using handler2
42*055d4590SKeyi Gui    .catch all from start to end1 using handler1
43*055d4590SKeyi Gui.end method
44*055d4590SKeyi Gui
45*055d4590SKeyi Gui; Test that an exception handler for a live range is dead as long as
46*055d4590SKeyi Gui; the covered code can't possibly throw.
47*055d4590SKeyi Gui.method public test_dead_exception()V
48*055d4590SKeyi Gui    nop
49*055d4590SKeyi Gui    nop
50*055d4590SKeyi Guistart:
51*055d4590SKeyi Gui    nop
52*055d4590SKeyi Guiend1:
53*055d4590SKeyi Gui    nop
54*055d4590SKeyi Guiend2:
55*055d4590SKeyi Gui    return
56*055d4590SKeyi Guihandler1:
57*055d4590SKeyi Gui    return
58*055d4590SKeyi Guihandler2:
59*055d4590SKeyi Gui    return
60*055d4590SKeyi Gui    .catch java/lang/RuntimeException from start to end2 using handler2
61*055d4590SKeyi Gui    .catch all from start to end1 using handler1
62*055d4590SKeyi Gui.end method
63*055d4590SKeyi Gui
64*055d4590SKeyi Gui; Test all the if* variants.
65*055d4590SKeyi Gui.method public test_ifs()V
66*055d4590SKeyi Gui    ifeq x0
67*055d4590SKeyi Gui    ifne x1
68*055d4590SKeyi Gui    iflt x2
69*055d4590SKeyi Gui    ifge x3
70*055d4590SKeyi Gui    ifgt x4
71*055d4590SKeyi Gui    ifle x5
72*055d4590SKeyi Gui    if_icmpeq x6
73*055d4590SKeyi Gui    if_icmpne x7
74*055d4590SKeyi Gui    if_icmplt x8
75*055d4590SKeyi Gui    if_icmpge x9
76*055d4590SKeyi Gui    if_icmpgt x10
77*055d4590SKeyi Gui    if_icmple x11
78*055d4590SKeyi Gui    if_acmpeq x12
79*055d4590SKeyi Gui    if_acmpne x13
80*055d4590SKeyi Gui    ifnull x14
81*055d4590SKeyi Gui    ifnonnull x15
82*055d4590SKeyi Gui    return
83*055d4590SKeyi Guix0:
84*055d4590SKeyi Gui    return
85*055d4590SKeyi Guix1:
86*055d4590SKeyi Gui    return
87*055d4590SKeyi Guix2:
88*055d4590SKeyi Gui    return
89*055d4590SKeyi Guix3:
90*055d4590SKeyi Gui    return
91*055d4590SKeyi Guix4:
92*055d4590SKeyi Gui    return
93*055d4590SKeyi Guix5:
94*055d4590SKeyi Gui    return
95*055d4590SKeyi Guix6:
96*055d4590SKeyi Gui    return
97*055d4590SKeyi Guix7:
98*055d4590SKeyi Gui    return
99*055d4590SKeyi Guix8:
100*055d4590SKeyi Gui    return
101*055d4590SKeyi Guix9:
102*055d4590SKeyi Gui    return
103*055d4590SKeyi Guix10:
104*055d4590SKeyi Gui    return
105*055d4590SKeyi Guix11:
106*055d4590SKeyi Gui    return
107*055d4590SKeyi Guix12:
108*055d4590SKeyi Gui    return
109*055d4590SKeyi Guix13:
110*055d4590SKeyi Gui    return
111*055d4590SKeyi Guix14:
112*055d4590SKeyi Gui    return
113*055d4590SKeyi Guix15:
114*055d4590SKeyi Gui    return
115*055d4590SKeyi Gui.end method
116*055d4590SKeyi Gui
117*055d4590SKeyi Gui; Test jsr and jsr_w.
118*055d4590SKeyi Gui.method public test_jsr()V
119*055d4590SKeyi Gui    jsr j1
120*055d4590SKeyi Gui    jsr_w j2
121*055d4590SKeyi Gui    return
122*055d4590SKeyi Guij1:
123*055d4590SKeyi Gui    astore_0
124*055d4590SKeyi Gui    ret 0
125*055d4590SKeyi Guij2:
126*055d4590SKeyi Gui    astore_0
127*055d4590SKeyi Gui    ret_w 0
128*055d4590SKeyi Gui.end method
129*055d4590SKeyi Gui
130*055d4590SKeyi Gui; Test tableswitch.
131*055d4590SKeyi Gui.method public test_tableswitch()V
132*055d4590SKeyi Gui    tableswitch 0x10
133*055d4590SKeyi Gui        t1
134*055d4590SKeyi Gui        t2
135*055d4590SKeyi Gui        default: t3
136*055d4590SKeyi Guit1:
137*055d4590SKeyi Gui    return
138*055d4590SKeyi Guit2:
139*055d4590SKeyi Gui    return
140*055d4590SKeyi Guit3:
141*055d4590SKeyi Gui    return
142*055d4590SKeyi Gui.end method
143*055d4590SKeyi Gui
144*055d4590SKeyi Gui; Test lookupswitch.
145*055d4590SKeyi Gui.method public test_lookupswitch()V
146*055d4590SKeyi Gui    lookupswitch
147*055d4590SKeyi Gui        0x05: s1
148*055d4590SKeyi Gui        0x10: s2
149*055d4590SKeyi Gui        default: s3
150*055d4590SKeyi Guis1:
151*055d4590SKeyi Gui    return
152*055d4590SKeyi Guis2:
153*055d4590SKeyi Gui    return
154*055d4590SKeyi Guis3:
155*055d4590SKeyi Gui    return
156*055d4590SKeyi Gui.end method
157*055d4590SKeyi Gui
158*055d4590SKeyi Gui; Test every non-branching op.
159*055d4590SKeyi Gui.method public test_nonbranch()V
160*055d4590SKeyi Gui    nop
161*055d4590SKeyi Gui    aconst_null
162*055d4590SKeyi Gui    iconst_m1
163*055d4590SKeyi Gui    iconst_0
164*055d4590SKeyi Gui    iconst_1
165*055d4590SKeyi Gui    iconst_2
166*055d4590SKeyi Gui    iconst_3
167*055d4590SKeyi Gui    iconst_4
168*055d4590SKeyi Gui    iconst_5
169*055d4590SKeyi Gui    lconst_0
170*055d4590SKeyi Gui    lconst_1
171*055d4590SKeyi Gui    fconst_0
172*055d4590SKeyi Gui    fconst_1
173*055d4590SKeyi Gui    fconst_2
174*055d4590SKeyi Gui    dconst_0
175*055d4590SKeyi Gui    dconst_1
176*055d4590SKeyi Gui    bipush 0x10
177*055d4590SKeyi Gui    sipush 0x1000
178*055d4590SKeyi Gui    ldc "x"
179*055d4590SKeyi Gui    ldc_w "y"
180*055d4590SKeyi Gui    ldc2_w 3.0
181*055d4590SKeyi Gui    iload 5
182*055d4590SKeyi Gui    lload 5
183*055d4590SKeyi Gui    fload 5
184*055d4590SKeyi Gui    dload 5
185*055d4590SKeyi Gui    aload 5
186*055d4590SKeyi Gui    iload_0
187*055d4590SKeyi Gui    iload_1
188*055d4590SKeyi Gui    iload_2
189*055d4590SKeyi Gui    iload_3
190*055d4590SKeyi Gui    lload_0
191*055d4590SKeyi Gui    lload_1
192*055d4590SKeyi Gui    lload_2
193*055d4590SKeyi Gui    lload_3
194*055d4590SKeyi Gui    fload_0
195*055d4590SKeyi Gui    fload_1
196*055d4590SKeyi Gui    fload_2
197*055d4590SKeyi Gui    fload_3
198*055d4590SKeyi Gui    dload_0
199*055d4590SKeyi Gui    dload_1
200*055d4590SKeyi Gui    dload_2
201*055d4590SKeyi Gui    dload_3
202*055d4590SKeyi Gui    aload_0
203*055d4590SKeyi Gui    aload_1
204*055d4590SKeyi Gui    aload_2
205*055d4590SKeyi Gui    aload_3
206*055d4590SKeyi Gui    iaload
207*055d4590SKeyi Gui    laload
208*055d4590SKeyi Gui    faload
209*055d4590SKeyi Gui    daload
210*055d4590SKeyi Gui    aaload
211*055d4590SKeyi Gui    baload
212*055d4590SKeyi Gui    caload
213*055d4590SKeyi Gui    saload
214*055d4590SKeyi Gui    istore 5
215*055d4590SKeyi Gui    lstore 5
216*055d4590SKeyi Gui    fstore 5
217*055d4590SKeyi Gui    dstore 5
218*055d4590SKeyi Gui    astore 5
219*055d4590SKeyi Gui    istore_0
220*055d4590SKeyi Gui    istore_1
221*055d4590SKeyi Gui    istore_2
222*055d4590SKeyi Gui    istore_3
223*055d4590SKeyi Gui    lstore_0
224*055d4590SKeyi Gui    lstore_1
225*055d4590SKeyi Gui    lstore_2
226*055d4590SKeyi Gui    lstore_3
227*055d4590SKeyi Gui    fstore_0
228*055d4590SKeyi Gui    fstore_1
229*055d4590SKeyi Gui    fstore_2
230*055d4590SKeyi Gui    fstore_3
231*055d4590SKeyi Gui    dstore_0
232*055d4590SKeyi Gui    dstore_1
233*055d4590SKeyi Gui    dstore_2
234*055d4590SKeyi Gui    dstore_3
235*055d4590SKeyi Gui    astore_0
236*055d4590SKeyi Gui    astore_1
237*055d4590SKeyi Gui    astore_2
238*055d4590SKeyi Gui    astore_3
239*055d4590SKeyi Gui    iastore
240*055d4590SKeyi Gui    lastore
241*055d4590SKeyi Gui    fastore
242*055d4590SKeyi Gui    dastore
243*055d4590SKeyi Gui    aastore
244*055d4590SKeyi Gui    bastore
245*055d4590SKeyi Gui    castore
246*055d4590SKeyi Gui    sastore
247*055d4590SKeyi Gui    pop
248*055d4590SKeyi Gui    pop2
249*055d4590SKeyi Gui    dup
250*055d4590SKeyi Gui    dup_x1
251*055d4590SKeyi Gui    dup_x2
252*055d4590SKeyi Gui    dup2
253*055d4590SKeyi Gui    dup2_x1
254*055d4590SKeyi Gui    dup2_x2
255*055d4590SKeyi Gui    swap
256*055d4590SKeyi Gui    iadd
257*055d4590SKeyi Gui    ladd
258*055d4590SKeyi Gui    fadd
259*055d4590SKeyi Gui    dadd
260*055d4590SKeyi Gui    isub
261*055d4590SKeyi Gui    lsub
262*055d4590SKeyi Gui    fsub
263*055d4590SKeyi Gui    dsub
264*055d4590SKeyi Gui    imul
265*055d4590SKeyi Gui    lmul
266*055d4590SKeyi Gui    fmul
267*055d4590SKeyi Gui    dmul
268*055d4590SKeyi Gui    idiv
269*055d4590SKeyi Gui    ldiv
270*055d4590SKeyi Gui    fdiv
271*055d4590SKeyi Gui    ddiv
272*055d4590SKeyi Gui    irem
273*055d4590SKeyi Gui    lrem
274*055d4590SKeyi Gui    frem
275*055d4590SKeyi Gui    drem
276*055d4590SKeyi Gui    ineg
277*055d4590SKeyi Gui    lneg
278*055d4590SKeyi Gui    fneg
279*055d4590SKeyi Gui    dneg
280*055d4590SKeyi Gui    ishl
281*055d4590SKeyi Gui    lshl
282*055d4590SKeyi Gui    ishr
283*055d4590SKeyi Gui    lshr
284*055d4590SKeyi Gui    iushr
285*055d4590SKeyi Gui    lushr
286*055d4590SKeyi Gui    iand
287*055d4590SKeyi Gui    land
288*055d4590SKeyi Gui    ior
289*055d4590SKeyi Gui    lor
290*055d4590SKeyi Gui    ixor
291*055d4590SKeyi Gui    lxor
292*055d4590SKeyi Gui    iinc 5 0x10
293*055d4590SKeyi Gui    i2l
294*055d4590SKeyi Gui    i2f
295*055d4590SKeyi Gui    i2d
296*055d4590SKeyi Gui    l2i
297*055d4590SKeyi Gui    l2f
298*055d4590SKeyi Gui    l2d
299*055d4590SKeyi Gui    f2i
300*055d4590SKeyi Gui    f2l
301*055d4590SKeyi Gui    f2d
302*055d4590SKeyi Gui    d2i
303*055d4590SKeyi Gui    d2l
304*055d4590SKeyi Gui    d2f
305*055d4590SKeyi Gui    i2b
306*055d4590SKeyi Gui    i2c
307*055d4590SKeyi Gui    i2s
308*055d4590SKeyi Gui    lcmp
309*055d4590SKeyi Gui    fcmpl
310*055d4590SKeyi Gui    fcmpg
311*055d4590SKeyi Gui    dcmpl
312*055d4590SKeyi Gui    dcmpg
313*055d4590SKeyi Gui    getstatic blort/x I
314*055d4590SKeyi Gui    putstatic blort/x I
315*055d4590SKeyi Gui    getfield blort/x I
316*055d4590SKeyi Gui    putfield blort/x I
317*055d4590SKeyi Gui    invokevirtual blort/x()V
318*055d4590SKeyi Gui    invokespecial blort/x()V
319*055d4590SKeyi Gui    invokestatic blort/x()V
320*055d4590SKeyi Gui    invokeinterface blort/x()V 1
321*055d4590SKeyi Gui    new blort
322*055d4590SKeyi Gui    newarray int
323*055d4590SKeyi Gui    anewarray blort
324*055d4590SKeyi Gui    arraylength
325*055d4590SKeyi Gui    checkcast blort
326*055d4590SKeyi Gui    instanceof blort
327*055d4590SKeyi Gui    monitorenter
328*055d4590SKeyi Gui    monitorexit
329*055d4590SKeyi Gui    iload 0x100
330*055d4590SKeyi Gui    lload 0x100
331*055d4590SKeyi Gui    fload 0x100
332*055d4590SKeyi Gui    dload 0x100
333*055d4590SKeyi Gui    aload 0x100
334*055d4590SKeyi Gui    istore 0x100
335*055d4590SKeyi Gui    lstore 0x100
336*055d4590SKeyi Gui    fstore 0x100
337*055d4590SKeyi Gui    dstore 0x100
338*055d4590SKeyi Gui    astore 0x100
339*055d4590SKeyi Gui    iinc 0x123 0x321
340*055d4590SKeyi Gui    multianewarray [[[I 2
341*055d4590SKeyi Gui    return
342*055d4590SKeyi Gui.end method
343