tizen 2.4 release
[external/binutils.git] / sim / testsuite / sim / bfin / s21.s
1 // Copyright (c) 1997,1998,1999 Analog Devices Inc., All Rights Reserved
2 //  Test  A0 = ROT    (A0 by imm6);
3 # mach: bfin
4
5 .include "testutils.inc"
6         start
7
8         init_r_regs 0;
9         ASTAT = R0;
10         A0 = A1 = 0;
11
12 // rot
13 // left  by 1
14 // 00 8000 0001 -> 01 0000 0002 cc=0
15         R0.L = 0x0001;
16         R0.H = 0x8000;
17         R7 = 0;
18         CC = R7;
19         A1 = A0 = 0;
20         A0.w = R0;
21         A0 = ROT A0 BY 1;
22         R1 = A0.w;
23         DBGA ( R1.L , 0x0002 );
24         DBGA ( R1.H , 0x0000 );
25         R1.L = A0.x;
26         DBGA ( R1.L , 0x0001 );
27         R7 = CC;
28         DBGA ( R7.L , 0x0000 );
29
30 // rot
31 // left  by 1
32 // 80 0000 0001 -> 00 0000 0002 cc=1
33         R7 = 0;
34         CC = R7;
35         R0.L = 0x0001;
36         R0.H = 0x0000;
37         R1.L = 0x0080;
38         A1 = A0 = 0;
39         A0.w = R0;
40         A0.x = R1.L;
41         A0 = ROT A0 BY 1;
42         R1 = A0.w;
43         DBGA ( R1.L , 0x0002 );
44         DBGA ( R1.H , 0x0000 );
45         R1.L = A0.x;
46         DBGA ( R1.L , 0x0000 );
47         R7 = CC;
48         DBGA ( R7.L , 0x0001 );
49
50 // rot
51 // left  by 1 with cc=1
52 // 80 8000 0001 -> 01 0000 0003 cc=1
53         R7 = 1;
54         CC = R7;
55         R0.L = 0x0001;
56         R0.H = 0x8000;
57         R1.L = 0x0080;
58         A1 = A0 = 0;
59         A0.w = R0;
60         A0.x = R1.L;
61         A0 = ROT A0 BY 1;
62         R1 = A0.w;
63         DBGA ( R1.L , 0x0003 );
64         DBGA ( R1.H , 0x0000 );
65         R1.L = A0.x;
66         DBGA ( R1.L , 0x0001 );
67         R7 = CC;
68         DBGA ( R7.L , 0x0001 );
69
70 // rot
71 // left  by 2 with cc=1
72 // 80 0000 0001 -> 00 0000 0007 cc=0
73         R7 = 1;
74         CC = R7;
75         R0.L = 0x0001;
76         R0.H = 0x0000;
77         R1.L = 0x0080;
78         A1 = A0 = 0;
79         A0.w = R0;
80         A0.x = R1.L;
81         A0 = ROT A0 BY 2;
82         R1 = A0.w;
83         DBGA ( R1.L , 0x0007 );
84         DBGA ( R1.H , 0x0000 );
85         R1.L = A0.x;
86         DBGA ( R1.L , 0x0000 );
87         R7 = CC;
88         DBGA ( R7.L , 0x0000 );
89
90 // rot
91 // left  by 3 with cc=0
92         R7 = 0;
93         CC = R7;
94         R0.L = 0x0001;
95         R0.H = 0x0000;
96         R1.L = 0x0080;
97         A1 = A0 = 0;
98         A0.w = R0;
99         A0.x = R1.L;
100         A0 = ROT A0 BY 3;
101         R1 = A0.w;
102         DBGA ( R1.L , 0x000a );
103         DBGA ( R1.H , 0x0000 );
104         R1.L = A0.x;
105         DBGA ( R1.L , 0x0000 );
106         R7 = CC;
107         DBGA ( R7.L , 0x0000 );
108
109 // rot
110 // left by largest positive magnitude of 31
111 // 80 0000 0001 -> 00 a000 0000 cc=0
112         R7 = 0;
113         CC = R7;
114         R0.L = 0x0001;
115         R0.H = 0x0000;
116         R1.L = 0x0080;
117         A1 = A0 = 0;
118         A0.w = R0;
119         A0.x = R1.L;
120         A0 = ROT A0 BY 31;
121         R1 = A0.w;
122         DBGA ( R1.L , 0x0000 );
123         DBGA ( R1.H , 0xa000 );
124         R1.L = A0.x;
125         DBGA ( R1.L , 0x0000 );
126         R7 = CC;
127         DBGA ( R7.L , 0x0000 );
128
129 // rot
130 // right  by 1
131 // 80 0000 0001 -> 40 0000 0000 cc=1
132         R7 = 0;
133         CC = R7;
134         R0.L = 0x0001;
135         R0.H = 0x0000;
136         R1.L = 0x0080;
137         A1 = A0 = 0;
138         A0.w = R0;
139         A0.x = R1.L;
140         A0 = ROT A0 BY -1;
141         R1 = A0.w;
142         DBGA ( R1.L , 0x0000 );
143         DBGA ( R1.H , 0x0000 );
144         R1.L = A0.x;
145         DBGA ( R1.L , 0x0040 );
146         R7 = CC;
147         DBGA ( R7.L , 0x0001 );
148
149 // rot
150 // right  by 1
151 // 80 0000 0001 -> c0 0000 0000 cc=1
152         R7 = 1;
153         CC = R7;
154         R0.L = 0x0001;
155         R0.H = 0x0000;
156         R1.L = 0x0080;
157         A1 = A0 = 0;
158         A0.w = R0;
159         A0.x = R1.L;
160         A0 = ROT A0 BY -1;
161         R1 = A0.w;
162         DBGA ( R1.L , 0x0000 );
163         DBGA ( R1.H , 0x0000 );
164         R1.L = A0.x;
165         DBGA ( R1.L , 0xffc0 );
166         R7 = CC;
167         DBGA ( R7.L , 0x0001 );
168
169 // rot
170 // right  by 2
171 // 80 0000 0001 -> e0 0000 0000 cc=0
172         R7 = 1;
173         CC = R7;
174         R0.L = 0x0001;
175         R0.H = 0x0000;
176         R1.L = 0x0080;
177         A1 = A0 = 0;
178         A0.w = R0;
179         A0.x = R1.L;
180         A0 = ROT A0 BY -2;
181         R1 = A0.w;
182         DBGA ( R1.L , 0x0000 );
183         DBGA ( R1.H , 0x0000 );
184         R1.L = A0.x;
185         DBGA ( R1.L , 0xffe0 );
186         R7 = CC;
187         DBGA ( R7.L , 0x0000 );
188
189 // rot
190 // right  by 9
191 // 80 0000 0001 -> 01 c000 0000 cc=0
192         R7 = 1;
193         CC = R7;
194         R0.L = 0x0001;
195         R0.H = 0x0000;
196         R1.L = 0x0080;
197         A1 = A0 = 0;
198         A0.w = R0;
199         A0.x = R1.L;
200         A0 = ROT A0 BY -9;
201         R1 = A0.w;
202         DBGA ( R1.L , 0x0000 );
203         DBGA ( R1.H , 0xc000 );
204         R1.L = A0.x;
205         DBGA ( R1.L , 0x0001 );
206         R7 = CC;
207         DBGA ( R7.L , 0x0000 );
208
209 // rot
210 // right  by 9 with reg
211 // 80 0000 0001 -> 01 c000 0000 cc=0
212         R7 = 1;
213         CC = R7;
214         R0.L = 0x0001;
215         R0.H = 0x0000;
216         R1.L = 0x0080;
217         A1 = A0 = 0;
218         A0.w = R0;
219         A0.x = R1.L;
220         R5 = -9;
221         A0 = ROT A0 BY R5.L;
222         R1 = A0.w;
223         DBGA ( R1.L , 0x0000 );
224         DBGA ( R1.H , 0xc000 );
225         R1.L = A0.x;
226         DBGA ( R1.L , 0x0001 );
227         R7 = CC;
228         DBGA ( R7.L , 0x0000 );
229
230 // rot left by 4 with cc=1
231         R0.L = 0x789a;
232         R0.H = 0x3456;
233         A0.w = R0;
234         R0.L = 0x12;
235         A0.x = R0;
236
237         R0 = 1;
238         CC = R0;
239
240         A0 = ROT A0 BY 4;
241
242         R4 = A0.w;
243         R5 = A0.x;
244         DBGA ( R4.H , 0x4567 ); DBGA ( R4.L , 0x89a8 );
245         DBGA ( R5.H , 0x0000 ); DBGA ( R5.L , 0x0023 );
246
247 // rot left by 28 with cc=1
248         R0.L = 0x789a;
249         R0.H = 0x3456;
250         A0.w = R0;
251         R0.L = 0x12;
252         A0.x = R0;
253
254         R0 = 1;
255         CC = R0;
256
257         A0 = ROT A0 BY 28;
258
259         R4 = A0.w;
260         R5 = A0.x;
261         DBGA ( R4.H , 0xa891 ); DBGA ( R4.L , 0xa2b3 );
262         DBGA ( R5.H , 0xffff ); DBGA ( R5.L , 0xff89 );
263
264 // rot right by 4 with cc=1
265         R0.L = 0x789a;
266         R0.H = 0x3456;
267         A0.w = R0;
268         R0.L = 0x12;
269         A0.x = R0;
270
271         R0 = 1;
272         CC = R0;
273
274         A0 = ROT A0 BY -4;
275
276         R4 = A0.w;
277         R5 = A0.x;
278         DBGA ( R4.H , 0x2345 ); DBGA ( R4.L , 0x6789 );
279         DBGA ( R5.H , 0x0000 ); DBGA ( R5.L , 0x0051 );
280
281 // rot right by 8 with cc=1
282         R0.L = 0x789a;
283         R0.H = 0x3456;
284         A0.w = R0;
285         R0.L = 0x12;
286         A0.x = R0;
287
288         R0 = 1;
289         CC = R0;
290
291         A0 = ROT A0 BY -28;
292
293         R4 = A0.w;
294         R5 = A0.x;
295         DBGA ( R4.H , 0xcf13 ); DBGA ( R4.L , 0x5123 );
296         DBGA ( R5.H , 0xffff ); DBGA ( R5.L , 0xff8a );
297
298         pass