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