Merged with tip.
[cacao.git] / tests / regression / jasmin / test_dup_x1_interface_slots.j
1 .class public test_dup_x1_interface_slots
2 .super java/lang/Object
3
4 ; ======================================================================
5
6 .method public <init>()V
7    aload_0
8    invokenonvirtual java/lang/Object/<init>()V
9    return
10 .end method
11
12 ; ======================================================================
13
14 .method public static checkI(I)V
15         .limit locals 1
16         .limit stack 10
17         getstatic java/lang/System/out Ljava/io/PrintStream;
18         iload_0
19         invokevirtual java/io/PrintStream/println(I)V
20         return
21 .end method
22
23 ; ======================================================================
24
25 .method public static main([Ljava/lang/String;)V
26         .limit stack 3
27         .limit locals 2
28
29         ldc 4
30         istore 1
31
32         ldc 18
33         ldc 100
34
35         ; --------------------------------------------------
36
37 loop:
38         dup_x1
39         iinc 1 -1
40         pop
41         iload 1
42         ifge loop
43
44         ; --------------------------------------------------
45
46         invokestatic test_dup_x1_interface_slots/checkI(I)V
47         ; OUTPUT: 18
48         invokestatic test_dup_x1_interface_slots/checkI(I)V
49         ; OUTPUT: 100
50
51         ldc 7
52         istore 1
53
54         ldc 28
55         ldc 200
56
57         ; --------------------------------------------------
58
59 loop2:
60         iinc 1 -1
61         dup_x1
62         pop
63         iload 1
64         ifge loop2
65
66         ; --------------------------------------------------
67
68         invokestatic test_dup_x1_interface_slots/checkI(I)V
69         ; OUTPUT: 200
70         invokestatic test_dup_x1_interface_slots/checkI(I)V
71         ; OUTPUT: 28
72
73         return
74 .end method