Home | History | Annotate | Line # | Download | only in gdb.disasm
am33.exp revision 1.1
      1  1.1  christos 
      2  1.1  christos # Copyright 1997-2014 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