OSDN Git Service

modified: utilsrc/src/Admin/Makefile
[eos/others.git] / utilsrc / srcX86MAC64 / Admin / gdb-7.7.1 / sim / testsuite / sim / bfin / s14.s
1 //  reg-based SHIFT test program.
2 //  Test  r4 = ASHIFT (r2 by rl3);
3 //  Test  r4 = LSHIFT (r2 by rl3);
4 # mach: bfin
5
6 .include "testutils.inc"
7         start
8
9
10         R0.L = 0x0001;
11         R0.H = 0x8000;
12
13 // arithmetic
14 //  left by  31
15 // 8000 0001 -> 8000 0000
16         R7 = 0;
17         ASTAT = R7;
18         R3.L = 31;
19         R3.H = 0;
20         R6 = ASHIFT R0 BY R3.L;
21         DBGA ( R6.L , 0x0000 );
22         DBGA ( R6.H , 0x8000 );
23         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
24         CC = AN;        R7 = CC; DBGA ( R7.L , 0x1 );
25         CC = AC0;       R7 = CC; DBGA ( R7.L , 0x0 );
26         CC = AV0;       R7 = CC; DBGA ( R7.L , 0x0 );
27         CC = AV1;       R7 = CC; DBGA ( R7.L , 0x0 );
28
29 // arithmetic
30 //  left by  32
31 // 8000 0001 -> 8000 0000
32         R7 = 0;
33         ASTAT = R7;
34         R3.L = 32;
35         R3.H = 0;
36         R6 = ASHIFT R0 BY R3.L;
37         DBGA ( R6.L , 0xffff );
38         DBGA ( R6.H , 0xffff );
39         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
40         CC = AN;        R7 = CC; DBGA ( R7.L , 0x1 );
41         CC = AC0;       R7 = CC; DBGA ( R7.L , 0x0 );
42         CC = AV0;       R7 = CC; DBGA ( R7.L , 0x0 );
43         CC = AV1;       R7 = CC; DBGA ( R7.L , 0x0 );
44
45 // arithmetic
46 //  left by  40
47 // 8000 0001 -> 8000 0000
48         R7 = 0;
49         ASTAT = R7;
50         R3.L = 40;
51         R3.H = 0;
52         R6 = ASHIFT R0 BY R3.L;
53         DBGA ( R6.L , 0xFF80 );
54         DBGA ( R6.H , 0xFFFF );
55         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
56         CC = AN;        R7 = CC; DBGA ( R7.L , 0x1 );
57         CC = AC0;       R7 = CC; DBGA ( R7.L , 0x0 );
58         CC = AV0;       R7 = CC; DBGA ( R7.L , 0x0 );
59         CC = AV1;       R7 = CC; DBGA ( R7.L , 0x0 );
60
61 // arithmetic
62 //  left by  -32
63 // 8000 0001 -> 8000 0000
64         R7 = 0;
65         ASTAT = R7;
66         R3.L = -32;
67         R3.H = 0;
68         R6 = ASHIFT R0 BY R3.L;
69         DBGA ( R6.L , 0xffff );
70         DBGA ( R6.H , 0xffff );
71         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
72         CC = AN;        R7 = CC; DBGA ( R7.L , 0x1 );
73         CC = AC0;       R7 = CC; DBGA ( R7.L , 0x0 );
74         CC = AV0;       R7 = CC; DBGA ( R7.L , 0x0 );
75         CC = AV1;       R7 = CC; DBGA ( R7.L , 0x0 );
76
77 // arithmetic
78 //  left by  63 (off scale)
79 // 8000 0001 -> 0000 0000
80         R7 = 0;
81         ASTAT = R7;
82         R0.L = 1;
83         R0.H = 0;
84         R3.L = 63;
85         R3.H = 0;
86         R6 = ASHIFT R0 BY R3.L;
87         DBGA ( R6.L , 0x0000 );
88         DBGA ( R6.H , 0x0000 );
89         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x1 );
90         CC = AN;        R7 = CC; DBGA ( R7.L , 0x0 );
91         CC = AC0;       R7 = CC; DBGA ( R7.L , 0x0 );
92         CC = AV0;       R7 = CC; DBGA ( R7.L , 0x0 );
93         CC = AV1;       R7 = CC; DBGA ( R7.L , 0x0 );
94
95 // arithmetic
96 //  left by  255 looks like -1 (mask 7 bits)
97 // 8000 0001 -> 0000 0000
98         R7 = 0;
99         ASTAT = R7;
100         R0.L = 0x0100;
101         R0.H = 0;
102         R3.L = 255;
103         R3.H = 0;
104         R6 = ASHIFT R0 BY R3.L;
105         DBGA ( R6.L , 0x0080 );
106         DBGA ( R6.H , 0x0000 );
107         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
108         CC = AN;        R7 = CC; DBGA ( R7.L , 0x0 );
109         CC = AC0;       R7 = CC; DBGA ( R7.L , 0x0 );
110         CC = AV0;       R7 = CC; DBGA ( R7.L , 0x0 );
111         CC = AV1;       R7 = CC; DBGA ( R7.L , 0x0 );
112
113 // arithmetic
114 //  left by 1
115 // 8000 0001 -> 0000 0002
116         R0.L = 0x0001;
117         R0.H = 0x8000;
118         R3.L = 1;
119         R3.H = 0;
120         R6 = ASHIFT R0 BY R3.L;
121         DBGA ( R6.L , 0x0002 );
122         DBGA ( R6.H , 0x0000 );
123         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
124         CC = AN;        R7 = CC; DBGA ( R7.L , 0x0 );
125         CC = AC0;       R7 = CC; DBGA ( R7.L , 0x0 );
126         CC = AV0;       R7 = CC; DBGA ( R7.L , 0x0 );
127         CC = AV1;       R7 = CC; DBGA ( R7.L , 0x0 );
128
129 // arithmetic
130 //  right by 1
131 // 8000 0001 -> 0000 0002
132         R0.L = 0x0001;
133         R0.H = 0x8000;
134         R3.L = -1;
135         R3.H = 0;
136         R6 = ASHIFT R0 BY R3.L;
137         DBGA ( R6.L , 0x0000 );
138         DBGA ( R6.H , 0xc000 );
139         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
140         CC = AN;        R7 = CC; DBGA ( R7.L , 0x1 );
141         CC = AC0;       R7 = CC; DBGA ( R7.L , 0x0 );
142         CC = AV0;       R7 = CC; DBGA ( R7.L , 0x0 );
143         CC = AV1;       R7 = CC; DBGA ( R7.L , 0x0 );
144
145 // arithmetic
146 //  right by  -31
147 // 8000 0001 -> ffff ffff
148         R0.L = 0x0001;
149         R0.H = 0x8000;
150         R3.L = -31;
151         R3.H = 0;
152         R6 = ASHIFT R0 BY R3.L;
153         DBGA ( R6.L , 0xffff );
154         DBGA ( R6.H , 0xffff );
155         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
156         CC = AN;        R7 = CC; DBGA ( R7.L , 0x1 );
157         CC = AC0;       R7 = CC; DBGA ( R7.L , 0x0 );
158         CC = AV0;       R7 = CC; DBGA ( R7.L , 0x0 );
159         CC = AV1;       R7 = CC; DBGA ( R7.L , 0x0 );
160
161 // logic
162 //  left by largest positive magnitude of 31 (0x1f)
163 // 8000 0001 -> 8000 0000
164         R0.L = 0x0001;
165         R0.H = 0x8000;
166         R3.L = 31;
167         R3.H = 0;
168         R6 = ASHIFT R0 BY R3.L;
169         DBGA ( R6.L , 0x0000 );
170         DBGA ( R6.H , 0x8000 );
171         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
172         CC = AN;        R7 = CC; DBGA ( R7.L , 0x1 );
173         CC = AC0;       R7 = CC; DBGA ( R7.L , 0x0 );
174         CC = AV0;       R7 = CC; DBGA ( R7.L , 0x0 );
175         CC = AV1;       R7 = CC; DBGA ( R7.L , 0x0 );
176
177 // logic
178 //  left by 1
179 // 8000 0001 -> 0000 0002
180         R0.L = 0x0001;
181         R0.H = 0x8000;
182         R3.L = 1;
183         R3.H = 0;
184         R6 = LSHIFT R0 BY R3.L;
185         DBGA ( R6.L , 0x0002 );
186         DBGA ( R6.H , 0x0000 );
187         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
188         CC = AN;        R7 = CC; DBGA ( R7.L , 0x0 );
189         CC = AC0;       R7 = CC; DBGA ( R7.L , 0x0 );
190         CC = AV0;       R7 = CC; DBGA ( R7.L , 0x0 );
191         CC = AV1;       R7 = CC; DBGA ( R7.L , 0x0 );
192
193 // logic
194 //  right by 1
195 // 8000 0001 -> 4000 0000
196         R0.L = 0x0001;
197         R0.H = 0x8000;
198         R3.L = -1;
199         R3.H = 0;
200         R6 = LSHIFT R0 BY R3.L;
201         DBGA ( R6.L , 0x0000 );
202         DBGA ( R6.H , 0x4000 );
203         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
204         CC = AN;        R7 = CC; DBGA ( R7.L , 0x0 );
205         CC = AC0;       R7 = CC; DBGA ( R7.L , 0x0 );
206         CC = AV0;       R7 = CC; DBGA ( R7.L , 0x0 );
207         CC = AV1;       R7 = CC; DBGA ( R7.L , 0x0 );
208
209 // logic
210 //  right by largest negative magnitude of -31
211 // 8000 0001 -> 0000 0001
212         R0.L = 0x0001;
213         R0.H = 0x8000;
214         R3.L = -31;
215         R3.H = 0;
216         R6 = LSHIFT R0 BY R3.L;
217         DBGA ( R6.L , 0x0001 );
218         DBGA ( R6.H , 0x0000 );
219         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
220         CC = AN;        R7 = CC; DBGA ( R7.L , 0x0 );
221         CC = AC0;       R7 = CC; DBGA ( R7.L , 0x0 );
222         CC = AV0;       R7 = CC; DBGA ( R7.L , 0x0 );
223         CC = AV1;       R7 = CC; DBGA ( R7.L , 0x0 );
224
225 // logic
226 //  right by -32
227 // 8000 0001 -> 0000 0001
228         R0.L = 0x0001;
229         R0.H = 0x8000;
230         R3.L = -32;
231         R3.H = 0;
232         R6 = LSHIFT R0 BY R3.L;
233         DBGA ( R6.L , 0x0000 );
234         DBGA ( R6.H , 0x0000 );
235         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x1 );
236         CC = AN;        R7 = CC; DBGA ( R7.L , 0x0 );
237         CC = AC0;       R7 = CC; DBGA ( R7.L , 0x0 );
238         CC = AV0;       R7 = CC; DBGA ( R7.L , 0x0 );
239         CC = AV1;       R7 = CC; DBGA ( R7.L , 0x0 );
240
241 // logic
242 //   by +40
243 // 8000 0001 -> 0000 0001
244         R0.L = 0x0001;
245         R0.H = 0x8000;
246         R3.L = 40;
247         R3.H = 0;
248         R6 = LSHIFT R0 BY R3.L;
249         DBGA ( R6.L , 0x0080 );
250         DBGA ( R6.H , 0x0000 );
251         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
252         CC = AN;        R7 = CC; DBGA ( R7.L , 0x0 );
253
254         CC = AC0;       R7 = CC; DBGA ( R7.L , 0x0 );
255         CC = AV0;       R7 = CC; DBGA ( R7.L , 0x0 );
256         CC = AV1;       R7 = CC; DBGA ( R7.L , 0x0 );
257
258 // rot
259 //  left  by 1
260 // 8000 0001 -> 0000 0002 cc=1
261         R7 = 0;
262         CC = R7;
263         R6 = ROT R0 BY 1;
264         DBGA ( R6.L , 0x0002 );
265         DBGA ( R6.H , 0x0000 );
266         R7 = CC;        DBGA ( R7.L , 0x0001 );
267
268 // rot
269 //  right by -1
270 // 8000 0001 -> 4000 0000 cc=1
271         R7 = 0;
272         CC = R7;
273         R6 = ROT R0 BY -1;
274         DBGA ( R6.L , 0x0000 );
275         DBGA ( R6.H , 0x4000 );
276         R7 = CC;        DBGA ( R7.L , 0x0001 );
277
278 // rot
279 //  right by largest positive magnitude of 31
280 // 8000 0001 -> a000 0000 cc=0
281         R7 = 0;
282         CC = R7;
283         R6 = ROT R0 BY 31;
284         DBGA ( R6.L , 0x0000 );
285         DBGA ( R6.H , 0xa000 );
286         R7 = CC;        DBGA ( R7.L , 0x0000 );
287
288 // rot
289 //  right by largest positive magnitude of 31 with cc=1
290 // 8000 0001 cc=1 -> a000 0000 cc=0
291         R7 = 1;
292         CC = R7;
293         R6 = ROT R0 BY 31;
294         DBGA ( R6.L , 0x0000 );
295         DBGA ( R6.H , 0xe000 );
296         R7 = CC;        DBGA ( R7.L , 0x0000 );
297
298 // rot
299 //  right by largest negative magnitude of -31
300 // 8000 0001 -> 0000 0005 cc=0
301         R7 = 0;
302         CC = R7;
303         R6 = ROT R0 BY -31;
304         DBGA ( R6.L , 0x0005 );
305         DBGA ( R6.H , 0x0000 );
306         R7 = CC;        DBGA ( R7.L , 0x0000 );
307
308 // rot
309 //  right by largest negative magnitude of -31 with cc=1
310 // 8000 0001 cc=1 -> 0000 0007 cc=0
311         R7 = 1;
312         CC = R7;
313         R6 = ROT R0 BY -31;
314         DBGA ( R6.L , 0x0007 );
315         DBGA ( R6.H , 0x0000 );
316         R7 = CC;        DBGA ( R7.L , 0x0000 );
317
318 // rot
319 //  left by 7
320 // 8000 0001 cc=1 -> 0000 00e0 cc=0
321         R7 = 1;
322         CC = R7;
323         R6 = ROT R0 BY 7;
324         DBGA ( R6.L , 0x00e0 );
325         DBGA ( R6.H , 0x0000 );
326         R7 = CC;        DBGA ( R7.L , 0x0000 );
327
328 // rot by zero
329 // 8000 0001 -> 8000 000
330         R7 = 1;
331         CC = R7;
332         R6 = ROT R0 BY 0;
333         DBGA ( R6.L , 0x0001 );
334         DBGA ( R6.H , 0x8000 );
335         R7 = CC;        DBGA ( R7.L , 0x0001 );
336
337 //  0 by 1
338         R7 = 0;
339         R0 = 0;
340         ASTAT = R7;
341         R6 = R0 << 1;
342         DBGA ( R6.L , 0x0000 );
343         DBGA ( R6.H , 0x0000 );
344         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x1 );
345         CC = AN;        R7 = CC; DBGA ( R7.L , 0x0 );
346         CC = AC0;       R7 = CC; DBGA ( R7.L , 0x0 );
347         CC = AV0;       R7 = CC; DBGA ( R7.L , 0x0 );
348         CC = AV1;       R7 = CC; DBGA ( R7.L , 0x0 );
349
350         pass