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