sim: bfin: import testsuite
[deliverable/binutils-gdb.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
This page took 0.044517 seconds and 4 git commands to generate.