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