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