Add support to GDB for the Renesas rl78 architecture.
[external/binutils.git] / gdb / testsuite / gdb.disasm / am33.exp
1
2 # Copyright 1997-1998, 2007-2012 Free Software Foundation, Inc.
3
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 3 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
17 # This file was written by Jeff Law. (law@cygnus.com)
18
19 if ![istarget "mn10300*-*-*"] {
20     verbose "Tests ignored for all but mn10300 based targets."
21     return
22 }
23
24 global exec_output
25
26 set testfile "am33"
27 set srcfile ${srcdir}/${subdir}/${testfile}.s
28 set binfile ${objdir}/${subdir}/${testfile}
29 if  { [gdb_compile "${srcfile}" "${binfile}" object ""] != "" } {
30      untested am33.exp
31      return -1
32 }
33
34 proc call_tests { } {
35     global gdb_prompt
36     global hex
37     global decimal
38
39     send_gdb "x/8i call_tests\n"
40     gdb_expect {
41         -re "
42 .*call  .*,.a2,a3,exreg0.,9.*
43 .*call  .*,.a2,a3,exreg1.,9.*
44 .*call  .*,.a2,a3,exother.,9.*
45 .*call  .*,.d2,d3,a2,a3,other,exreg0,exreg1,exother.,9.*
46 .*call  .*,.a2,a3,exreg0.,9.*
47 .*call  .*,.a2,a3,exreg1.,9.*
48 .*call  .*,.a2,a3,exother.,9.*
49 .*call  .*,.d2,d3,a2,a3,other,exreg0,exreg1,exother.,9.*
50 .*$gdb_prompt $" { pass "call tests" }
51         -re "$gdb_prompt $" { fail "call tests" }
52         timeout { fail "(timeout) call tests" }
53     }
54 }
55
56 proc movm_tests { } {
57     global gdb_prompt
58     global hex
59     global decimal
60
61     send_gdb "x/16i movm_tests\n"
62     gdb_expect {
63         -re "
64 .*movm  \\(sp\\),.a2,a3,exreg0.*
65 .*movm  \\(sp\\),.a2,a3,exreg1.*
66 .*movm  \\(sp\\),.a2,a3,exother.*
67 .*movm  \\(sp\\),.d2,d3,a2,a3,other,exreg0,exreg1,exother.*
68 .*movm  .a2,a3,exreg0.,\\(sp\\).*
69 .*movm  .a2,a3,exreg1.,\\(sp\\).*
70 .*movm  .a2,a3,exother.,\\(sp\\).*
71 .*movm  .d2,d3,a2,a3,other,exreg0,exreg1,exother.,\\(sp\\).*
72 .*movm  \\(usp\\),.a2,a3,exreg0.*
73 .*movm  \\(usp\\),.a2,a3,exreg1.*
74 .*movm  \\(usp\\),.a2,a3,exother.*
75 .*movm  \\(usp\\),.d2,d3,a2,a3,other,exreg0,exreg1,exother.*
76 .*movm  .a2,a3,exreg0.,\\(usp\\).*
77 .*movm  .a2,a3,exreg1.,\\(usp\\).*
78 .*movm  .a2,a3,exother.,\\(usp\\).*
79 .*movm  .d2,d3,a2,a3,other,exreg0,exreg1,exother.,\\(usp\\).*
80 .*$gdb_prompt $" { pass "movm tests" }
81         -re "$gdb_prompt $" { fail "movm tests" }
82         timeout { fail "(timeout) movm tests" }
83     }
84 }
85
86 proc misc_tests { } {
87     global gdb_prompt
88     global hex
89     global decimal
90
91     send_gdb "x/11i misc_tests\n"
92     gdb_expect {
93         -re "
94 .*syscall       4.*
95 .*mcst9 d0.*
96 .*mcst48        d1.*
97 .*getchx        d0.*
98 .*getclx        d1.*
99 .*clr   a1.*
100 .*sat16 a1,a0.*
101 .*mcste r7,r6.*
102 .*swap  r5,r4.*
103 .*swaph r3,r2.*
104 .*swhw  r1,r0.*
105 .*$gdb_prompt $" { pass "misc tests" }
106         -re "$gdb_prompt $" { fail "misc tests" }
107         timeout { fail "(timeout) misc tests" }
108     }
109 }
110
111 proc mov_tests { } {
112     global gdb_prompt
113     global hex
114     global decimal
115
116     send_gdb "x/45i mov_tests\n"
117     gdb_expect {
118         -re "
119 .*mov   r0,r1.*
120 .*mov   sp,r1.*
121 .*mov   r1,xr2.*
122 .*mov   \\(r1\\),r2.*
123 .*mov   r3,\\(r4\\).*
124 .*mov   \\(sp\\),r5.*
125 .*mov   r6,\\(sp\\).*
126 .*mov   16,r1.*
127 .*mov   16,xr1.*
128 .*mov   \\(16,r1\\),r2.*
129 .*mov   r2,\\(16,r1\\).*
130 .*mov   \\(16,sp\\),r2.*
131 .*mov   r2,\\(16,sp\\).*
132 .*mov   2096895,r2.*
133 .*mov   2096895,xr2.*
134 .*mov   \\(2096895,r1\\),r2.*
135 .*mov   r2,\\(2096895,r1\\).*
136 .*mov   \\(2096895,sp\\),r2.*
137 .*mov   r2,\\(2096895,sp\\).*
138 .*mov   \\(0x1ffeff\\),r2.*
139 .*mov   r2,\\(0x1ffeff\\).*
140 .*mov   2147417596,r2.*
141 .*mov   2147417596,xr2.*
142 .*mov   \\(2147417596,r1\\),r2.*
143 .*mov   r2,\\(2147417596,r1\\).*
144 .*mov   \\(2147417596,sp\\),r2.*
145 .*mov   r2,\\(2147417596,sp\\).*
146 .*mov   \\(0x7ffefdfc\\),r2.*
147 .*mov   r2,\\(0x7ffefdfc\\).*
148 .*movu  16,r1.*
149 .*movu  2096895,r2.*
150 .*movu  2147417596,r2.*
151 .*mov   usp,a0.*
152 .*mov   ssp,a1.*
153 .*mov   msp,a2.*
154 .*mov   pc,a3.*
155 .*mov   a0,usp.*
156 .*mov   a1,ssp.*
157 .*mov   a2,msp.*
158 .*mov   epsw,d0.*
159 .*mov   d1,epsw.*
160 .*mov   a0,r1.*
161 .*mov   d2,r3.*
162 .*mov   r5,a1.*
163 .*mov   r7,d3.*
164 .*$gdb_prompt $" { pass "mov tests" }
165         -re "$gdb_prompt $" { fail "mov tests" }
166         timeout { fail "(timeout) mov tests" }
167     }
168 }
169
170 proc ext_tests { } {
171     global gdb_prompt
172     global hex
173     global decimal
174
175     send_gdb "x/5i ext_tests\n"
176     gdb_expect {
177         -re "
178 .*ext   r2.*
179 .*extb  r3,r4.*
180 .*extbu r4,r5.*
181 .*exth  r6,r7.*
182 .*exthu r7,a0.*
183 .*$gdb_prompt $" { pass "ext tests" }
184         -re "$gdb_prompt $" { fail "ext tests" }
185         timeout { fail "(timeout) ext tests" }
186     }
187 }
188
189 proc add_tests { } {
190     global gdb_prompt
191     global hex
192     global decimal
193
194     send_gdb "x/11i add_tests\n"
195     gdb_expect {
196         -re "
197 .*add   a2,a3.*
198 .*add   16,r1.*
199 .*add   2096895,r2.*
200 .*add   2147417596,r2.*
201 .*add   r1,r2,r3.*
202 .*addc  d0,d1.*
203 .*addc  16,r1.*
204 .*addc  2096895,r2.*
205 .*addc  2147417596,r2.*
206 .*inc   d1.*
207 .*inc4  d0.*
208 .*$gdb_prompt $" { pass "add tests" }
209         -re "$gdb_prompt $" { fail "add tests" }
210         timeout { fail "(timeout) add tests" }
211     }
212 }
213
214 proc sub_tests { } {
215     global gdb_prompt
216     global hex
217     global decimal
218
219     send_gdb "x/8i sub_tests\n"
220     gdb_expect {
221         -re "
222 .*sub   d2,d3.*
223 .*sub   16,r1.*
224 .*sub   2096895,r2.*
225 .*sub   2147417596,r2.*
226 .*subc  d3,d2.*
227 .*subc  16,r1.*
228 .*subc  2096895,r2.*
229 .*subc  2147417596,r2.*
230 .*$gdb_prompt $" { pass "sub tests" }
231         -re "$gdb_prompt $" { fail "sub tests" }
232         timeout { fail "(timeout) sub tests" }
233     }
234 }
235
236 proc cmp_tests { } {
237     global gdb_prompt
238     global hex
239     global decimal
240
241     send_gdb "x/4i cmp_tests\n"
242     gdb_expect {
243         -re "
244 .*cmp   a3,a2.*
245 .*cmp   16,r1.*
246 .*cmp   2096895,r2.*
247 .*cmp   2147417596,r2.*
248 .*$gdb_prompt $" { pass "cmp tests" }
249         -re "$gdb_prompt $" { fail "cmp tests" }
250         timeout { fail "(timeout) cmp tests" }
251     }
252 }
253
254 proc logical_tests { } {
255     global gdb_prompt
256     global hex
257     global decimal
258
259     send_gdb "x/15i logical_tests\n"
260     gdb_expect {
261         -re "
262 .*and   r0,r1.*
263 .*or    r2,r3.*
264 .*xor   r4,r5.*
265 .*not   r6.*
266 .*and   16,r1.*
267 .*or    16,r1.*
268 .*xor   16,r1.*
269 .*and   2096895,r2.*
270 .*or    2096895,r2.*
271 .*xor   2096895,r2.*
272 .*and   2147417596,r2.*
273 .*or    2147417596,r2.*
274 .*xor   2147417596,r2.*
275 .*and   131072,epsw.*
276 .*or    65535,epsw.*
277 .*$gdb_prompt $" { pass "logical tests" }
278         -re "$gdb_prompt $" { fail "logical tests" }
279         timeout { fail "(timeout) logical tests" }
280     }
281 }
282
283 proc shift_tests { } {
284     global gdb_prompt
285     global hex
286     global decimal
287
288     send_gdb "x/15i shift_tests\n"
289     gdb_expect {
290         -re "
291 .*asr   r7,a0.*
292 .*lsr   a1,a2.*
293 .*asl   a3,d0.*
294 .*asl2  d1.*
295 .*ror   d2.*
296 .*rol   d3.*
297 .*asr   16,r1.*
298 .*lsr   16,r1.*
299 .*asl   16,r1.*
300 .*asr   2096895,r2.*
301 .*lsr   2096895,r2.*
302 .*asl   2096895,r2.*
303 .*asr   2147417596,r2.*
304 .*lsr   2147417596,r2.*
305 .*asl   2147417596,r2.*
306 .*$gdb_prompt $" { pass "shift tests" }
307         -re "$gdb_prompt $" { fail "shift tests" }
308         timeout { fail "(timeout) shift tests" }
309     }
310 }
311
312 proc muldiv_tests { } {
313     global gdb_prompt
314     global hex
315     global decimal
316
317     send_gdb "x/16i muldiv_tests\n"
318     gdb_expect {
319         -re "
320 .*mul   r1,r2.*
321 .*mulu  r3,r4.*
322 .*mul   16,r1.*
323 .*mulu  16,r1.*
324 .*mul   2096895,r2.*
325 .*mulu  2096895,r2.*
326 .*mul   2147417596,r2.*
327 .*mulu  2147417596,r2.*
328 .*div   r5,r6.*
329 .*divu  r7,a0.*
330 .*dmulh d1,d0.*
331 .*dmulhu        a3,a2.*
332 .*dmulh 2147417596,r2.*
333 .*dmulhu        2147417596,r2.*
334 .*mul   r1,r2,r3,r4.*
335 .*mulu  r1,r2,r3,r4.*
336 .*$gdb_prompt $" { pass "muldiv tests" }
337         -re "$gdb_prompt $" { fail "muldiv tests" }
338         timeout { fail "(timeout) muldiv tests" }
339     }
340 }
341
342 proc movbu_tests { } {
343     global gdb_prompt
344     global hex
345     global decimal
346
347     send_gdb "x/20i movbu_tests\n"
348     gdb_expect {
349         -re "
350 .*movbu \\(r5\\),r6.*
351 .*movbu r7,\\(a0\\).*
352 .*movbu \\(sp\\),r7.*
353 .*movbu a0,\\(sp\\).*
354 .*movbu \\(16,r1\\),r2.*
355 .*movbu r2,\\(16,r1\\).*
356 .*movbu \\(16,sp\\),r2.*
357 .*movbu r2,\\(16,sp\\).*
358 .*movbu \\(2096895,r1\\),r2.*
359 .*movbu r2,\\(2096895,r1\\).*
360 .*movbu \\(2096895,sp\\),r2.*
361 .*movbu r2,\\(2096895,sp\\).*
362 .*movbu \\(0x1ffeff\\),r2.*
363 .*movbu r2,\\(0x1ffeff\\).*
364 .*movbu \\(2147417596,r1\\),r2.*
365 .*movbu r2,\\(2147417596,r1\\).*
366 .*movbu \\(2147417596,sp\\),r2.*
367 .*movbu r2,\\(2147417596,sp\\).*
368 .*movbu \\(0x7ffefdfc\\),r2.*
369 .*movbu r2,\\(0x7ffefdfc\\).*
370 .*$gdb_prompt $" { pass "movbu tests" }
371         -re "$gdb_prompt $" { fail "movbu tests" }
372         timeout { fail "(timeout) movbu tests" }
373     }
374 }
375
376 proc movhu_tests { } {
377     global gdb_prompt
378     global hex
379     global decimal
380
381     send_gdb "x/20i movhu_tests\n"
382     gdb_expect {
383         -re "
384 .*movhu \\(a1\\),a2.*
385 .*movhu a3,\\(d0\\).*
386 .*movhu \\(sp\\),a1.*
387 .*movhu a2,\\(sp\\).*
388 .*movhu \\(16,r1\\),r2.*
389 .*movhu r2,\\(16,r1\\).*
390 .*movhu \\(16,sp\\),r2.*
391 .*movhu r2,\\(16,sp\\).*
392 .*movhu \\(2096895,r1\\),r2.*
393 .*movhu r2,\\(2096895,r1\\).*
394 .*movhu \\(2096895,sp\\),r2.*
395 .*movhu r2,\\(2096895,sp\\).*
396 .*movhu \\(0x1ffeff\\),r2.*
397 .*movhu r2,\\(0x1ffeff\\).*
398 .*movhu \\(2147417596,r1\\),r2.*
399 .*movhu r2,\\(2147417596,r1\\).*
400 .*movhu \\(2147417596,sp\\),r2.*
401 .*movhu r2,\\(2147417596,sp\\).*
402 .*movhu \\(0x7ffefdfc\\),r2.*
403 .*movhu r2,\\(0x7ffefdfc\\).*
404 .*$gdb_prompt $" { pass "movhu tests" }
405         -re "$gdb_prompt $" { fail "movhu tests" }
406         timeout { fail "(timeout) movhu tests" }
407     }
408 }
409
410 proc mac_tests { } {
411     global gdb_prompt
412     global hex
413     global decimal
414
415     send_gdb "x/28i mac_tests\n"
416     gdb_expect {
417         -re "
418 .*mac   r1,r2.*
419 .*macu  r3,r4.*
420 .*macb  r5,r6.*
421 .*macbu r7,a0.*
422 .*mach  a1,a2.*
423 .*machu a3,d0.*
424 .*dmach d1,d2.*
425 .*dmachu        d3,d2.*
426 .*mac   16,r1.*
427 .*macu  16,r1.*
428 .*macb  16,r1.*
429 .*macbu 16,r1.*
430 .*mach  16,r1.*
431 .*machu 16,r1.*
432 .*mac   2096895,r2.*
433 .*macu  2096895,r2.*
434 .*macb  2096895,r2.*
435 .*macbu 2096895,r2.*
436 .*mach  2096895,r2.*
437 .*machu 2096895,r2.*
438 .*mac   2147417596,r2.*
439 .*macu  2147417596,r2.*
440 .*macb  2147417596,r2.*
441 .*macbu 2147417596,r2.*
442 .*mach  2147417596,r2.*
443 .*machu 2147417596,r2.*
444 .*dmach 2147417596,r2.*
445 .*dmachu        2147417596,r2.*
446 .*$gdb_prompt $" { pass "mac tests" }
447         -re "$gdb_prompt $" { fail "mac tests" }
448         timeout { fail "(timeout) mac tests" }
449     }
450 }
451
452 proc bit_tests { } {
453     global gdb_prompt
454     global hex
455     global decimal
456
457     send_gdb "x/4i bit_tests\n"
458     gdb_expect {
459         -re "
460 .*bsch  r1,r2.*
461 .*btst  16,r1.*
462 .*btst  2096895,r2.*
463 .*btst  2147417596,r2.*
464 .*$gdb_prompt $" { pass "bit tests" }
465         -re "$gdb_prompt $" { fail "bit tests" }
466         timeout { fail "(timeout) bit tests" }
467     }
468 }
469
470 proc dsp_add_tests { } {
471     global gdb_prompt
472     global hex
473     global decimal
474
475     send_gdb "x/28i dsp_add_tests\n"
476     gdb_expect {
477         -re "
478 .*add_add       r4,r1,r2,r3.*
479 .*add_add       r4,r1,2,r3.*
480 .*add_sub       r4,r1,r2,r3.*
481 .*add_sub       r4,r1,2,r3.*
482 .*add_cmp       r4,r1,r2,r3.*
483 .*add_cmp       r4,r1,2,r3.*
484 .*add_mov       r4,r1,r2,r3.*
485 .*add_mov       r4,r1,2,r3.*
486 .*add_asr       r4,r1,r2,r3.*
487 .*add_asr       r4,r1,2,r3.*
488 .*add_lsr       r4,r1,r2,r3.*
489 .*add_lsr       r4,r1,2,r3.*
490 .*add_asl       r4,r1,r2,r3.*
491 .*add_asl       r4,r1,2,r3.*
492 .*add_add       4,r1,r2,r3.*
493 .*add_add       4,r1,2,r3.*
494 .*add_sub       4,r1,r2,r3.*
495 .*add_sub       4,r1,2,r3.*
496 .*add_cmp       4,r1,r2,r3.*
497 .*add_cmp       4,r1,2,r3.*
498 .*add_mov       4,r1,r2,r3.*
499 .*add_mov       4,r1,2,r3.*
500 .*add_asr       4,r1,r2,r3.*
501 .*add_asr       4,r1,2,r3.*
502 .*add_lsr       4,r1,r2,r3.*
503 .*add_lsr       4,r1,2,r3.*
504 .*add_asl       4,r1,r2,r3.*
505 .*add_asl       4,r1,2,r3.*
506 .*$gdb_prompt $" { pass "dsp_add tests" }
507         -re "$gdb_prompt $" { fail "dsp_add tests" }
508         timeout { fail "(timeout) dsp_add tests" }
509     }
510 }
511
512 proc dsp_cmp_tests { } {
513     global gdb_prompt
514     global hex
515     global decimal
516
517     send_gdb "x/24i dsp_cmp_tests\n"
518     gdb_expect {
519         -re "
520 .*cmp_add       r4,r1,r2,r3.*
521 .*cmp_add       r4,r1,2,r3.*
522 .*cmp_sub       r4,r1,r2,r3.*
523 .*cmp_sub       r4,r1,2,r3.*
524 .*cmp_mov       r4,r1,r2,r3.*
525 .*cmp_mov       r4,r1,2,r3.*
526 .*cmp_asr       r4,r1,r2,r3.*
527 .*cmp_asr       r4,r1,2,r3.*
528 .*cmp_lsr       r4,r1,r2,r3.*
529 .*cmp_lsr       r4,r1,2,r3.*
530 .*cmp_asl       r4,r1,r2,r3.*
531 .*cmp_asl       r4,r1,2,r3.*
532 .*cmp_add       4,r1,r2,r3.*
533 .*cmp_add       4,r1,2,r3.*
534 .*cmp_sub       4,r1,r2,r3.*
535 .*cmp_sub       4,r1,2,r3.*
536 .*cmp_mov       4,r1,r2,r3.*
537 .*cmp_mov       4,r1,2,r3.*
538 .*cmp_asr       4,r1,r2,r3.*
539 .*cmp_asr       4,r1,2,r3.*
540 .*cmp_lsr       4,r1,r2,r3.*
541 .*cmp_lsr       4,r1,2,r3.*
542 .*cmp_asl       4,r1,r2,r3.*
543 .*cmp_asl       4,r1,2,r3.*
544 .*$gdb_prompt $" { pass "dsp_cmp tests" }
545         -re "$gdb_prompt $" { fail "dsp_cmp tests" }
546         timeout { fail "(timeout) dsp_cmp tests" }
547     }
548 }
549
550 proc dsp_sub_tests { } {
551     global gdb_prompt
552     global hex
553     global decimal
554
555     send_gdb "x/28i dsp_sub_tests\n"
556     gdb_expect {
557         -re "
558 .*sub_add       r4,r1,r2,r3.*
559 .*sub_add       r4,r1,2,r3.*
560 .*sub_sub       r4,r1,r2,r3.*
561 .*sub_sub       r4,r1,2,r3.*
562 .*sub_cmp       r4,r1,r2,r3.*
563 .*sub_cmp       r4,r1,2,r3.*
564 .*sub_mov       r4,r1,r2,r3.*
565 .*sub_mov       r4,r1,2,r3.*
566 .*sub_asr       r4,r1,r2,r3.*
567 .*sub_asr       r4,r1,2,r3.*
568 .*sub_lsr       r4,r1,r2,r3.*
569 .*sub_lsr       r4,r1,2,r3.*
570 .*sub_asl       r4,r1,r2,r3.*
571 .*sub_asl       r4,r1,2,r3.*
572 .*sub_add       4,r1,r2,r3.*
573 .*sub_add       4,r1,2,r3.*
574 .*sub_sub       4,r1,r2,r3.*
575 .*sub_sub       4,r1,2,r3.*
576 .*sub_cmp       4,r1,r2,r3.*
577 .*sub_cmp       4,r1,2,r3.*
578 .*sub_mov       4,r1,r2,r3.*
579 .*sub_mov       4,r1,2,r3.*
580 .*sub_asr       4,r1,r2,r3.*
581 .*sub_asr       4,r1,2,r3.*
582 .*sub_lsr       4,r1,r2,r3.*
583 .*sub_lsr       4,r1,2,r3.*
584 .*sub_asl       4,r1,r2,r3.*
585 .*sub_asl       4,r1,2,r3.*
586 .*$gdb_prompt $" { pass "dsp_sub tests" }
587         -re "$gdb_prompt $" { fail "dsp_sub tests" }
588         timeout { fail "(timeout) dsp_sub tests" }
589     }
590 }
591
592 proc dsp_mov_tests { } {
593     global gdb_prompt
594     global hex
595     global decimal
596
597     send_gdb "x/28i dsp_mov_tests\n"
598     gdb_expect {
599         -re "
600 .*mov_add       r4,r1,r2,r3.*
601 .*mov_add       r4,r1,2,r3.*
602 .*mov_sub       r4,r1,r2,r3.*
603 .*mov_sub       r4,r1,2,r3.*
604 .*mov_cmp       r4,r1,r2,r3.*
605 .*mov_cmp       r4,r1,2,r3.*
606 .*mov_mov       r4,r1,r2,r3.*
607 .*mov_mov       r4,r1,2,r3.*
608 .*mov_asr       r4,r1,r2,r3.*
609 .*mov_asr       r4,r1,2,r3.*
610 .*mov_lsr       r4,r1,r2,r3.*
611 .*mov_lsr       r4,r1,2,r3.*
612 .*mov_asl       r4,r1,r2,r3.*
613 .*mov_asl       r4,r1,2,r3.*
614 .*mov_add       4,r1,r2,r3.*
615 .*mov_add       4,r1,2,r3.*
616 .*mov_sub       4,r1,r2,r3.*
617 .*mov_sub       4,r1,2,r3.*
618 .*mov_cmp       4,r1,r2,r3.*
619 .*mov_cmp       4,r1,2,r3.*
620 .*mov_mov       4,r1,r2,r3.*
621 .*mov_mov       4,r1,2,r3.*
622 .*mov_asr       4,r1,r2,r3.*
623 .*mov_asr       4,r1,2,r3.*
624 .*mov_lsr       4,r1,r2,r3.*
625 .*mov_lsr       4,r1,2,r3.*
626 .*mov_asl       4,r1,r2,r3.*
627 .*mov_asl       4,r1,2,r3.*
628 .*$gdb_prompt $" { pass "dsp_mov tests" }
629         -re "$gdb_prompt $" { fail "dsp_mov tests" }
630         timeout { fail "(timeout) dsp_mov tests" }
631     }
632 }
633
634 proc dsp_logical_tests { } {
635     global gdb_prompt
636     global hex
637     global decimal
638
639     send_gdb "x/42i dsp_logical_tests\n"
640     gdb_expect {
641         -re "
642 .*and_add       r4,r1,r2,r3.*
643 .*and_add       r4,r1,2,r3.*
644 .*and_sub       r4,r1,r2,r3.*
645 .*and_sub       r4,r1,2,r3.*
646 .*and_cmp       r4,r1,r2,r3.*
647 .*and_cmp       r4,r1,2,r3.*
648 .*and_mov       r4,r1,r2,r3.*
649 .*and_mov       r4,r1,2,r3.*
650 .*and_asr       r4,r1,r2,r3.*
651 .*and_asr       r4,r1,2,r3.*
652 .*and_lsr       r4,r1,r2,r3.*
653 .*and_lsr       r4,r1,2,r3.*
654 .*and_asl       r4,r1,r2,r3.*
655 .*and_asl       r4,r1,2,r3.*
656 .*xor_add       r4,r1,r2,r3.*
657 .*xor_add       r4,r1,2,r3.*
658 .*xor_sub       r4,r1,r2,r3.*
659 .*xor_sub       r4,r1,2,r3.*
660 .*xor_cmp       r4,r1,r2,r3.*
661 .*xor_cmp       r4,r1,2,r3.*
662 .*xor_mov       r4,r1,r2,r3.*
663 .*xor_mov       r4,r1,2,r3.*
664 .*xor_asr       r4,r1,r2,r3.*
665 .*xor_asr       r4,r1,2,r3.*
666 .*xor_lsr       r4,r1,r2,r3.*
667 .*xor_lsr       r4,r1,2,r3.*
668 .*xor_asl       r4,r1,r2,r3.*
669 .*xor_asl       r4,r1,2,r3.*
670 .*or_add        r4,r1,r2,r3.*
671 .*or_add        r4,r1,2,r3.*
672 .*or_sub        r4,r1,r2,r3.*
673 .*or_sub        r4,r1,2,r3.*
674 .*or_cmp        r4,r1,r2,r3.*
675 .*or_cmp        r4,r1,2,r3.*
676 .*or_mov        r4,r1,r2,r3.*
677 .*or_mov        r4,r1,2,r3.*
678 .*or_asr        r4,r1,r2,r3.*
679 .*or_asr        r4,r1,2,r3.*
680 .*or_lsr        r4,r1,r2,r3.*
681 .*or_lsr        r4,r1,2,r3.*
682 .*or_asl        r4,r1,r2,r3.*
683 .*or_asl        r4,r1,2,r3.*
684 .*$gdb_prompt $" { pass "dsp_logical tests" }
685         -re "$gdb_prompt $" { fail "dsp_logical tests" }
686         timeout { fail "(timeout) dsp_logical tests" }
687     }
688 }
689
690 proc dsp_misc_tests { } {
691     global gdb_prompt
692     global hex
693     global decimal
694
695     send_gdb "x/42i dsp_misc_tests\n"
696     gdb_expect {
697         -re "
698 .*dmach_add     r4,r1,r2,r3.*
699 .*dmach_add     r4,r1,2,r3.*
700 .*dmach_sub     r4,r1,r2,r3.*
701 .*dmach_sub     r4,r1,2,r3.*
702 .*dmach_cmp     r4,r1,r2,r3.*
703 .*dmach_cmp     r4,r1,2,r3.*
704 .*dmach_mov     r4,r1,r2,r3.*
705 .*dmach_mov     r4,r1,2,r3.*
706 .*dmach_asr     r4,r1,r2,r3.*
707 .*dmach_asr     r4,r1,2,r3.*
708 .*dmach_lsr     r4,r1,r2,r3.*
709 .*dmach_lsr     r4,r1,2,r3.*
710 .*dmach_asl     r4,r1,r2,r3.*
711 .*dmach_asl     r4,r1,2,r3.*
712 .*swhw_add      r4,r1,r2,r3.*
713 .*swhw_add      r4,r1,2,r3.*
714 .*swhw_sub      r4,r1,r2,r3.*
715 .*swhw_sub      r4,r1,2,r3.*
716 .*swhw_cmp      r4,r1,r2,r3.*
717 .*swhw_cmp      r4,r1,2,r3.*
718 .*swhw_mov      r4,r1,r2,r3.*
719 .*swhw_mov      r4,r1,2,r3.*
720 .*swhw_asr      r4,r1,r2,r3.*
721 .*swhw_asr      r4,r1,2,r3.*
722 .*swhw_lsr      r4,r1,r2,r3.*
723 .*swhw_lsr      r4,r1,2,r3.*
724 .*swhw_asl      r4,r1,r2,r3.*
725 .*swhw_asl      r4,r1,2,r3.*
726 .*sat16_add     r4,r1,r2,r3.*
727 .*sat16_add     r4,r1,2,r3.*
728 .*sat16_sub     r4,r1,r2,r3.*
729 .*sat16_sub     r4,r1,2,r3.*
730 .*sat16_cmp     r4,r1,r2,r3.*
731 .*sat16_cmp     r4,r1,2,r3.*
732 .*sat16_mov     r4,r1,r2,r3.*
733 .*sat16_mov     r4,r1,2,r3.*
734 .*sat16_asr     r4,r1,r2,r3.*
735 .*sat16_asr     r4,r1,2,r3.*
736 .*sat16_lsr     r4,r1,r2,r3.*
737 .*sat16_lsr     r4,r1,2,r3.*
738 .*sat16_asl     r4,r1,r2,r3.*
739 .*sat16_asl     r4,r1,2,r3.*
740 .*$gdb_prompt $" { pass "dsp_misc tests" }
741         -re "$gdb_prompt $" { fail "dsp_misc tests" }
742         timeout { fail "(timeout) dsp_misc tests" }
743     }
744 }
745
746 proc autoincrement_tests { } {
747     global gdb_prompt
748     global hex
749     global decimal
750
751     send_gdb "x/16i autoincrement_tests\n"
752     gdb_expect {
753         -re "
754 .*mov   \\(r1\\+\\),r2.*
755 .*mov   r3,\\(r4\\+\\).*
756 .*movhu \\(r6\\+\\),r7.*
757 .*movhu a0,\\(a1\\+\\).*
758 .*mov   \\(r1\\+,64\\),r2.*
759 .*mov   r1,\\(r2\\+,64\\).*
760 .*movhu \\(r1\\+,64\\),r2.*
761 .*movhu r1,\\(r2\\+,64\\).*
762 .*mov   \\(r1\\+,131055\\),r2.*
763 .*mov   r1,\\(r2\\+,131055\\).*
764 .*movhu \\(r1\\+,131055\\),r2.*
765 .*movhu r1,\\(r2\\+,131055\\).*
766 .*mov   \\(r1\\+,2147417596\\),r2.*
767 .*mov   r1,\\(r2\\+,2147417596\\).*
768 .*movhu \\(r1\\+,2147417596\\),r2.*
769 .*movhu r1,\\(r2\\+,2147417596\\).*
770 .*$gdb_prompt $" { pass "autoincrement tests" }
771         -re "$gdb_prompt $" { fail "autoincrement tests" }
772         timeout { fail "(timeout) autoincrement tests" }
773     }
774 }
775
776 proc dsp_autoincrement_tests { } {
777     global gdb_prompt
778     global hex
779     global decimal
780
781     send_gdb "x/11i dsp_autoincrement_tests\n"
782     gdb_expect {
783         -re "
784 .*mov_llt       \\(r1\\+,4\\),r2.*
785 .*mov_lgt       \\(r1\\+,4\\),r2.*
786 .*mov_lge       \\(r1\\+,4\\),r2.*
787 .*mov_lle       \\(r1\\+,4\\),r2.*
788 .*mov_lcs       \\(r1\\+,4\\),r2.*
789 .*mov_lhi       \\(r1\\+,4\\),r2.*
790 .*mov_lcc       \\(r1\\+,4\\),r2.*
791 .*mov_lls       \\(r1\\+,4\\),r2.*
792 .*mov_leq       \\(r1\\+,4\\),r2.*
793 .*mov_lne       \\(r1\\+,4\\),r2.*
794 .*mov_lra       \\(r1\\+,4\\),r2.*
795 .*$gdb_prompt $" { pass "autoincrement tests" }
796         -re "$gdb_prompt $" { fail "autoincrement tests" }
797         timeout { fail "(timeout) autoincrement tests" }
798     }
799 }
800
801 # Start with a fresh gdb.
802
803 gdb_exit
804 gdb_start
805 gdb_reinitialize_dir $srcdir/$subdir
806 gdb_load $binfile
807
808 call_tests
809 movm_tests
810 misc_tests
811 mov_tests
812 ext_tests
813 add_tests
814 sub_tests
815 cmp_tests
816 logical_tests
817 shift_tests
818 muldiv_tests
819 movbu_tests
820 movhu_tests
821 mac_tests
822 bit_tests
823 dsp_add_tests
824 dsp_cmp_tests
825 dsp_sub_tests
826 dsp_mov_tests
827 dsp_logical_tests
828 autoincrement_tests
829 dsp_autoincrement_tests