* tests/regression/jasmin/test_load_store_conflict_different_types.j:
[cacao.git] / tests / regression / jasmin / test_many_dup_x2.j
1 .class public test_many_dup_x2
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 check(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 33
27         .limit locals 2
28
29         ldc 100
30         ldc 101
31         ldc 42
32
33         ; 30 times
34
35         dup_x2
36         dup_x2
37         dup_x2
38         dup_x2
39         dup_x2
40         dup_x2
41         dup_x2
42         dup_x2
43         dup_x2
44         dup_x2
45
46         dup_x2
47         dup_x2
48         dup_x2
49         dup_x2
50         dup_x2
51         dup_x2
52         dup_x2
53         dup_x2
54         dup_x2
55         dup_x2
56
57         dup_x2
58         dup_x2
59         dup_x2
60         dup_x2
61         dup_x2
62         dup_x2
63         dup_x2
64         dup_x2
65         dup_x2
66         dup_x2
67
68         invokestatic test_many_dup_x2/check(I)V
69         ; OUTPUT: 42
70         invokestatic test_many_dup_x2/check(I)V
71         ; OUTPUT: 101
72         invokestatic test_many_dup_x2/check(I)V
73         ; OUTPUT: 100
74
75         invokestatic test_many_dup_x2/check(I)V
76         ; OUTPUT: 42
77         invokestatic test_many_dup_x2/check(I)V
78         ; OUTPUT: 42
79
80         ; pop 27 slots
81
82         pop2
83         pop2
84         pop2
85         pop2
86         pop2
87         pop2
88         pop2
89         pop2
90         pop2
91         pop2
92
93         pop
94         pop2
95         pop2
96         pop2
97
98         ; Play it again, Sam!
99
100         ; 42
101         ldc 100
102         ldc 101
103
104         dup_x2
105         dup_x2
106         dup_x2
107         dup_x2
108         dup_x2
109         dup_x2
110         dup_x2
111         dup_x2
112         dup_x2
113         dup_x2
114
115         dup_x2
116         dup_x2
117         dup_x2
118         dup_x2
119         dup_x2
120         dup_x2
121         dup_x2
122         dup_x2
123         dup_x2
124         dup_x2
125
126         dup_x2
127         dup_x2
128         dup_x2
129         dup_x2
130         dup_x2
131         dup_x2
132         dup_x2
133         dup_x2
134         dup_x2
135         dup_x2
136
137         invokestatic test_many_dup_x2/check(I)V
138         ; OUTPUT: 101
139         invokestatic test_many_dup_x2/check(I)V
140         ; OUTPUT: 100
141         invokestatic test_many_dup_x2/check(I)V
142         ; OUTPUT: 42
143
144         invokestatic test_many_dup_x2/check(I)V
145         ; OUTPUT: 101
146         invokestatic test_many_dup_x2/check(I)V
147         ; OUTPUT: 101
148
149         return
150 .end method