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