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