New sim testsuite for Fujitsu FRV. Contributed by Red Hat.
[external/binutils.git] / sim / testsuite / sim / frv / cswap.cgs
1 # frv testcase for cswap @($GRi,$GRj),$GRk,$CCi,$cond
2 # mach: all
3
4         .include "testutils.inc"
5
6         start
7
8         .global cswap
9 cswap:
10         set_spr_immed   0x1b1b,cccr
11
12         set_gr_gr               sp,gr20
13         set_mem_limmed          0xdead,0xbeef,sp
14         inc_gr_immed            -4,sp
15         set_gr_gr               sp,gr21
16         set_mem_limmed          0xbeef,0xdead,sp
17         inc_gr_immed            -4,sp
18         set_gr_gr               sp,gr22
19         set_mem_limmed          0xdead,0xbeef,sp
20         inc_gr_immed            4,sp
21
22         set_gr_limmed           0xbeef,0xdead,gr8
23         set_gr_immed            -4,gr7
24         cswap @(sp,gr7),gr8,cc0,1
25         test_gr_limmed          0xdead,0xbeef,gr8
26         test_mem_limmed         0xbeef,0xdead,gr22
27         test_mem_limmed         0xbeef,0xdead,gr21
28         test_mem_limmed         0xdead,0xbeef,gr20
29
30         set_gr_immed            0,gr7
31         cswap @(sp,gr7),gr8,cc0,1
32         test_gr_limmed          0xbeef,0xdead,gr8
33         test_mem_limmed         0xbeef,0xdead,gr22
34         test_mem_limmed         0xdead,0xbeef,gr21
35         test_mem_limmed         0xdead,0xbeef,gr20
36
37         set_gr_immed            4,gr7
38         cswap @(sp,gr7),gr8,cc4,1
39         test_gr_limmed          0xdead,0xbeef,gr8
40         test_mem_limmed         0xbeef,0xdead,gr22
41         test_mem_limmed         0xdead,0xbeef,gr21
42         test_mem_limmed         0xbeef,0xdead,gr20
43
44         set_gr_gr               gr20,sp
45         set_mem_limmed          0xdead,0xbeef,sp
46         inc_gr_immed            -4,sp
47         set_gr_gr               sp,gr21
48         set_mem_limmed          0xbeef,0xdead,sp
49         inc_gr_immed            -4,sp
50         set_gr_gr               sp,gr22
51         set_mem_limmed          0xdead,0xbeef,sp
52         inc_gr_immed            4,sp
53
54         set_gr_limmed           0xbeef,0xdead,gr8
55         set_gr_immed            -4,gr7
56         cswap @(sp,gr7),gr8,cc0,0
57         test_gr_limmed          0xbeef,0xdead,gr8
58         test_mem_limmed         0xdead,0xbeef,gr22
59         test_mem_limmed         0xbeef,0xdead,gr21
60         test_mem_limmed         0xdead,0xbeef,gr20
61
62         set_gr_limmed           0xdead,0xbeef,gr8
63         set_gr_immed            0,gr7
64         cswap @(sp,gr7),gr8,cc0,0
65         test_gr_limmed          0xdead,0xbeef,gr8
66         test_mem_limmed         0xdead,0xbeef,gr22
67         test_mem_limmed         0xbeef,0xdead,gr21
68         test_mem_limmed         0xdead,0xbeef,gr20
69
70         set_gr_limmed           0xbeef,0xdead,gr8
71         set_gr_immed            4,gr7
72         cswap @(sp,gr7),gr8,cc4,0
73         test_gr_limmed          0xbeef,0xdead,gr8
74         test_mem_limmed         0xdead,0xbeef,gr22
75         test_mem_limmed         0xbeef,0xdead,gr21
76         test_mem_limmed         0xdead,0xbeef,gr20
77
78         set_gr_gr               gr20,sp
79         set_mem_limmed          0xdead,0xbeef,sp
80         inc_gr_immed            -4,sp
81         set_gr_gr               sp,gr21
82         set_mem_limmed          0xbeef,0xdead,sp
83         inc_gr_immed            -4,sp
84         set_gr_gr               sp,gr22
85         set_mem_limmed          0xdead,0xbeef,sp
86         inc_gr_immed            4,sp
87
88         set_gr_limmed           0xbeef,0xdead,gr8
89         set_gr_immed            -4,gr7
90         cswap @(sp,gr7),gr8,cc1,0
91         test_gr_limmed          0xdead,0xbeef,gr8
92         test_mem_limmed         0xbeef,0xdead,gr22
93         test_mem_limmed         0xbeef,0xdead,gr21
94         test_mem_limmed         0xdead,0xbeef,gr20
95
96         set_gr_immed            0,gr7
97         cswap @(sp,gr7),gr8,cc1,0
98         test_gr_limmed          0xbeef,0xdead,gr8
99         test_mem_limmed         0xbeef,0xdead,gr22
100         test_mem_limmed         0xdead,0xbeef,gr21
101         test_mem_limmed         0xdead,0xbeef,gr20
102
103         set_gr_immed            4,gr7
104         cswap @(sp,gr7),gr8,cc5,0
105         test_gr_limmed          0xdead,0xbeef,gr8
106         test_mem_limmed         0xbeef,0xdead,gr22
107         test_mem_limmed         0xdead,0xbeef,gr21
108         test_mem_limmed         0xbeef,0xdead,gr20
109
110         set_gr_gr               gr20,sp
111         set_mem_limmed          0xdead,0xbeef,sp
112         inc_gr_immed            -4,sp
113         set_gr_gr               sp,gr21
114         set_mem_limmed          0xbeef,0xdead,sp
115         inc_gr_immed            -4,sp
116         set_gr_gr               sp,gr22
117         set_mem_limmed          0xdead,0xbeef,sp
118         inc_gr_immed            4,sp
119
120         set_gr_limmed           0xbeef,0xdead,gr8
121         set_gr_immed            -4,gr7
122         cswap @(sp,gr7),gr8,cc1,1
123         test_gr_limmed          0xbeef,0xdead,gr8
124         test_mem_limmed         0xdead,0xbeef,gr22
125         test_mem_limmed         0xbeef,0xdead,gr21
126         test_mem_limmed         0xdead,0xbeef,gr20
127
128         set_gr_limmed           0xdead,0xbeef,gr8
129         set_gr_immed            0,gr7
130         cswap @(sp,gr7),gr8,cc1,1
131         test_gr_limmed          0xdead,0xbeef,gr8
132         test_mem_limmed         0xdead,0xbeef,gr22
133         test_mem_limmed         0xbeef,0xdead,gr21
134         test_mem_limmed         0xdead,0xbeef,gr20
135
136         set_gr_limmed           0xbeef,0xdead,gr8
137         set_gr_immed            4,gr7
138         cswap @(sp,gr7),gr8,cc5,1
139         test_gr_limmed          0xbeef,0xdead,gr8
140         test_mem_limmed         0xdead,0xbeef,gr22
141         test_mem_limmed         0xbeef,0xdead,gr21
142         test_mem_limmed         0xdead,0xbeef,gr20
143
144         set_gr_gr               gr20,sp
145         set_mem_limmed          0xdead,0xbeef,sp
146         inc_gr_immed            -4,sp
147         set_gr_gr               sp,gr21
148         set_mem_limmed          0xbeef,0xdead,sp
149         inc_gr_immed            -4,sp
150         set_gr_gr               sp,gr22
151         set_mem_limmed          0xdead,0xbeef,sp
152         inc_gr_immed            4,sp
153
154         set_gr_limmed           0xbeef,0xdead,gr8
155         set_gr_immed            -4,gr7
156         cswap @(sp,gr7),gr8,cc2,0
157         test_gr_limmed          0xbeef,0xdead,gr8
158         test_mem_limmed         0xdead,0xbeef,gr22
159         test_mem_limmed         0xbeef,0xdead,gr21
160         test_mem_limmed         0xdead,0xbeef,gr20
161
162         set_gr_limmed           0xdead,0xbeef,gr8
163         set_gr_immed            0,gr7
164         cswap @(sp,gr7),gr8,cc2,1
165         test_gr_limmed          0xdead,0xbeef,gr8
166         test_mem_limmed         0xdead,0xbeef,gr22
167         test_mem_limmed         0xbeef,0xdead,gr21
168         test_mem_limmed         0xdead,0xbeef,gr20
169
170         set_gr_limmed           0xbeef,0xdead,gr8
171         set_gr_immed            4,gr7
172         cswap @(sp,gr7),gr8,cc6,0
173         test_gr_limmed          0xbeef,0xdead,gr8
174         test_mem_limmed         0xdead,0xbeef,gr22
175         test_mem_limmed         0xbeef,0xdead,gr21
176         test_mem_limmed         0xdead,0xbeef,gr20
177
178         set_gr_gr               gr20,sp
179         set_mem_limmed          0xdead,0xbeef,sp
180         inc_gr_immed            -4,sp
181         set_gr_gr               sp,gr21
182         set_mem_limmed          0xbeef,0xdead,sp
183         inc_gr_immed            -4,sp
184         set_gr_gr               sp,gr22
185         set_mem_limmed          0xdead,0xbeef,sp
186         inc_gr_immed            4,sp
187
188         set_gr_limmed           0xbeef,0xdead,gr8
189         set_gr_immed            -4,gr7
190         cswap @(sp,gr7),gr8,cc3,1
191         test_gr_limmed          0xbeef,0xdead,gr8
192         test_mem_limmed         0xdead,0xbeef,gr22
193         test_mem_limmed         0xbeef,0xdead,gr21
194         test_mem_limmed         0xdead,0xbeef,gr20
195
196         set_gr_limmed           0xdead,0xbeef,gr8
197         set_gr_immed            0,gr7
198         cswap @(sp,gr7),gr8,cc3,0
199         test_gr_limmed          0xdead,0xbeef,gr8
200         test_mem_limmed         0xdead,0xbeef,gr22
201         test_mem_limmed         0xbeef,0xdead,gr21
202         test_mem_limmed         0xdead,0xbeef,gr20
203
204         set_gr_limmed           0xbeef,0xdead,gr8
205         set_gr_immed            4,gr7
206         cswap @(sp,gr7),gr8,cc7,1
207         test_gr_limmed          0xbeef,0xdead,gr8
208         test_mem_limmed         0xdead,0xbeef,gr22
209         test_mem_limmed         0xbeef,0xdead,gr21
210         test_mem_limmed         0xdead,0xbeef,gr20
211
212         pass