diff options
Diffstat (limited to 'gdb/testsuite/gdb.disasm/mn10200.exp')
-rw-r--r-- | gdb/testsuite/gdb.disasm/mn10200.exp | 478 |
1 files changed, 478 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.disasm/mn10200.exp b/gdb/testsuite/gdb.disasm/mn10200.exp new file mode 100644 index 0000000..f9e71df --- /dev/null +++ b/gdb/testsuite/gdb.disasm/mn10200.exp @@ -0,0 +1,478 @@ + +# Copyright (C) 1997 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 2 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-gdb@prep.ai.mit.edu + +# This file was written by Jeff Law. (law@cygnus.com) + +if $tracelevel then { + strace $tracelevel +} + +if ![istarget "mn10200*-*-*"] { + verbose "Tests ignored for all but mn10200 based targets." + return +} + +global exec_output +set prms_id 0 +set bug_id 0 + +set testfile "mn10200" +set srcfile ${srcdir}/${subdir}/${testfile}.s +set binfile ${objdir}/${subdir}/${testfile} +if { [gdb_compile "${srcfile}" "${binfile}" executable ""] != "" } { + gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." +} + +proc add_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/12i add_tests\n" + gdb_expect { + -re " +.*add d1,d2.* +.*add d2,a3.* +.*add a2,d1.* +.*add a3,a2.* +.*add 16,d1.* +.*add 256,d2.* +.*add 131071,d3.* +.*add 16,a1.* +.*add 256,a2.* +.*add 131071,a3.* +.*addc d1,d2.* +.*addnf 16,a2.* +.*$gdb_prompt $" { pass "add tests" } + -re "$gdb_prompt $" { fail "add tests" } + timeout { fail "(timeout) add tests" } + } +} + +proc bcc_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/15i bCC_tests\n" + gdb_expect { + -re " +.*beq 0x\[0-9a-f]+ <bCC_tests>.* +.*bne 0x\[0-9a-f]+ <bCC_tests>.* +.*bgt 0x\[0-9a-f]+ <bCC_tests>.* +.*bge 0x\[0-9a-f]+ <bCC_tests>.* +.*ble 0x\[0-9a-f]+ <bCC_tests>.* +.*blt 0x\[0-9a-f]+ <bCC_tests>.* +.*bhi 0x\[0-9a-f]+ <bCC_tests>.* +.*bcc 0x\[0-9a-f]+ <bCC_tests>.* +.*bls 0x\[0-9a-f]+ <bCC_tests>.* +.*bcs 0x\[0-9a-f]+ <bCC_tests>.* +.*bvc 0x\[0-9a-f]+ <bCC_tests>.* +.*bvs 0x\[0-9a-f]+ <bCC_tests>.* +.*bnc 0x\[0-9a-f]+ <bCC_tests>.* +.*bns 0x\[0-9a-f]+ <bCC_tests>.* +.*bra 0x\[0-9a-f]+ <bCC_tests>.* +.*$gdb_prompt $" { pass "bCC tests" } + -re "$gdb_prompt $" { fail "bCC tests" } + timeout { fail "(timeout) bCC tests" } + } +} + +proc bccx_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/14i bCCx_tests\n" + gdb_expect { + -re " +.*beqx 0x\[0-9a-f]+ <bCCx_tests>.* +.*bnex 0x\[0-9a-f]+ <bCCx_tests>.* +.*bgtx 0x\[0-9a-f]+ <bCCx_tests>.* +.*bgex 0x\[0-9a-f]+ <bCCx_tests>.* +.*blex 0x\[0-9a-f]+ <bCCx_tests>.* +.*bltx 0x\[0-9a-f]+ <bCCx_tests>.* +.*bhix 0x\[0-9a-f]+ <bCCx_tests>.* +.*bccx 0x\[0-9a-f]+ <bCCx_tests>.* +.*blsx 0x\[0-9a-f]+ <bCCx_tests>.* +.*bcsx 0x\[0-9a-f]+ <bCCx_tests>.* +.*bvcx 0x\[0-9a-f]+ <bCCx_tests>.* +.*bvsx 0x\[0-9a-f]+ <bCCx_tests>.* +.*bncx 0x\[0-9a-f]+ <bCCx_tests>.* +.*bnsx 0x\[0-9a-f]+ <bCCx_tests>.* +.*$gdb_prompt $" { pass "bCCx tests" } + -re "$gdb_prompt $" { fail "bCCx tests" } + timeout { fail "(timeout) bCCx tests" } + } +} + +proc bit_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/4 bit_tests\n" + gdb_expect { + -re " +.*btst 64,d1.* +.*btst 8192,d2.* +.*bset d1,\\(a2\\).* +.*bclr d1,\\(a2\\).* +.*$gdb_prompt $" { pass "bit tests" } + -re "$gdb_prompt $" { fail "bit tests" } + timeout { fail "(timeout) bit tests" } + } +} + +proc cmp_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/9i cmp_tests\n" + gdb_expect { + -re " +.*cmp d1,d2.* +.*cmp d2,a3.* +.*cmp a3,d3.* +.*cmp a3,a2.* +.*cmp 16,d3.* +.*cmp 256,d2.* +.*cmp 131071,d1.* +.*cmp 256,a2.* +.*cmp 131071,a1.* +.*$gdb_prompt $" { pass "cmp tests" } + -re "$gdb_prompt $" { fail "cmp tests" } + timeout { fail "(timeout) cmp tests" } + } +} + +proc extend_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/5i extend_tests\n" + gdb_expect { + -re " +.*ext d1.* +.*extx d2.* +.*extxu d3.* +.*extxb d2.* +.*extxbu d1.* +.*$gdb_prompt $" { pass "extend tests" } + -re "$gdb_prompt $" { fail "extend tests" } + timeout { fail "(timeout) extend tests" } + } +} + +proc logical_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/11i logical_tests\n" + gdb_expect { + -re " +.*and d1,d2.* +.*and 127,d2.* +.*and 32767,d3.* +.*and 32767,psw.* +.*or d1,d2.* +.*or 127,d2.* +.*or 32767,d3.* +.*or 32767,psw.* +.*xor d1,d2.* +.*xor 32767,d3.* +.*not d3.* +.*$gdb_prompt $" { pass "logical tests" } + -re "$gdb_prompt $" { fail "logical tests" } + timeout { fail "(timeout) logical tests" } + } +} + +proc mov_tests_1 { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/12i mov_tests_1\n" + gdb_expect { + -re " +.*mov d1,a2.* +.*mov a2,d1.* +.*mov d1,d2.* +.*mov a2,a1.* +.*mov psw,d3.* +.*mov d2,psw.* +.*mov mdr,d1.* +.*mov d2,mdr.* +.*mov \\(a2\\),d1.* +.*mov \\(8,a2\\),d1.* +.*mov \\(256,a2\\),d1.* +.*mov \\(131071,a2\\),d1.* +.*$gdb_prompt $" { pass "mov1 tests" } + -re "$gdb_prompt $" { fail "mov1 tests" } + timeout { fail "(timeout) mov1 tests" } + } +} + +proc mov_tests_2 { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/9 mov_tests_2\n" + gdb_expect { + -re " +.*mov \\(d1,a1\\),d2.* +.*mov \\(0x8000.*\\),d1.* +.*mov \\(0x1ffff.*\\),d1.* +.*mov \\(8,a2\\),a1.* +.*mov \\(256,a2\\),a1.* +.*mov \\(131071,a2\\),a1.* +.*mov \\(d1,a1\\),a2.* +.*mov \\(0x8000.*\\),a1.* +.*mov \\(0x1ffff.*\\),a1.* +.*$gdb_prompt $" { pass "mov2 tests" } + -re "$gdb_prompt $" { fail "mov2 tests" } + timeout { fail "(timeout) mov2 tests" } + } +} + +proc mov_tests_3 { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/10 mov_tests_3\n" + gdb_expect { + -re " +.*mov d1,\\(a2\\).* +.*mov d1,\\(32,a2\\).* +.*mov d1,\\(256,a2\\).* +.*mov d1,\\(131071,a2\\).* +.*mov d1,\\(d2,a2\\).* +.*mov d1,\\(0x80.*\\).* +.*mov d1,\\(0x1ffff.*\\).* +.*mov a1,\\(32,a2\\).* +.*mov a1,\\(256,a2\\).* +.*mov a1,\\(131071,a2\\).* +.*$gdb_prompt $" { pass "mov3 tests" } + -re "$gdb_prompt $" { fail "mov3 tests" } + timeout { fail "(timeout) mov3 tests" } + } +} + +proc mov_tests_4 { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/8 mov_tests_4\n" + gdb_expect { + -re " +.*mov a1,\\(d2,a2\\).* +.*mov a1,\\(0x80.*\\).* +.*mov a1,\\(0x1ffff.*\\).* +.*mov 8,d1.* +.*mov 256,d1.* +.*mov 131071,d1.* +.*mov 256,a1.* +.*mov 131071,a1.* +.*$gdb_prompt $" { pass "mov4 tests" } + -re "$gdb_prompt $" { fail "mov4 tests" } + timeout { fail "(timeout) mov4 tests" } + } +} + +proc movb_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/12 movb_tests\n" + gdb_expect { + -re " +.*movb \\(8,a2\\),d1.* +.*movb \\(256,a2\\),d1.* +.*movb \\(131071,a2\\),d1.* +.*movb \\(d2,a2\\),d3.* +.*movb \\(0x1ffff.*\\),d2.* +.*movb d1,\\(a2\\).* +.*movb d1,\\(8,a2\\).* +.*movb d1,\\(256,a2\\).* +.*movb d1,\\(131071,a2\\).* +.*movb d1,\\(d2,a2\\).* +.*movb d1,\\(0x100.*\\).* +.*movb d1,\\(0x1ffff.*\\).* +.*$gdb_prompt $" { pass "movb tests" } + -re "$gdb_prompt $" { fail "movb tests" } + timeout { fail "(timeout) movb tests" } + } +} + +proc movbu_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/7 movbu_tests\n" + gdb_expect { + -re " +.*movbu \\(a2\\),d1.* +.*movbu \\(8,a2\\),d1.* +.*movbu \\(256,a2\\),d1.* +.*movbu \\(131071,a2\\),d1.* +.*movbu \\(d1,a1\\),d2.* +.*movbu \\(0x8000.*\\),d1.* +.*movbu \\(0x1ffff.*\\),d1.* +.*$gdb_prompt $" { pass "movbu tests" } + -re "$gdb_prompt $" { fail "movbu tests" } + timeout { fail "(timeout) movbu tests" } + } +} + +proc movx_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/6 movx_tests\n" + gdb_expect { + -re " +.*movx \\(8,a2\\),d1.* +.*movx \\(256,a2\\),d1.* +.*movx \\(131071,a2\\),d1.* +.*movx d1,\\(8,a2\\).* +.*movx d1,\\(256,a2\\).* +.*movx d1,\\(131071,a2\\).* +.*$gdb_prompt $" { pass "movx tests" } + -re "$gdb_prompt $" { fail "movx tests" } + timeout { fail "(timeout) movx tests" } + } +} + +proc muldiv_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/3 muldiv_tests\n" + gdb_expect { + -re " +.*mul d1,d2.* +.*mulu d2,d3.* +.*divu d3,d2.* +.*$gdb_prompt $" { pass "muldiv tests" } + -re "$gdb_prompt $" { fail "muldiv tests" } + timeout { fail "(timeout) muldiv tests" } + } +} + +proc misc_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/9 misc_tests\n" + gdb_expect { + -re " +.*jmp 0x\[0-9a-f]+ <main>.* +.*jmp 0x\[0-9a-f]+ <start>.* +.*jmp \\(a2\\).* +.*jsr 0x\[0-9a-f]+ <main>.* +.*jsr 0x\[0-9a-f]+ <start>.* +.*jsr \\(a2\\).* +.*rts.* +.*rti.* +.*nop.* +.*$gdb_prompt $" { pass "misc tests" } + -re "$gdb_prompt $" { fail "misc tests" } + timeout { fail "(timeout) misc tests" } + } +} + +proc shift_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/4i shift_tests\n" + gdb_expect { + -re " +.*asr d2.* +.*lsr d3.* +.*ror d1.* +.*rol d2.* +.*$gdb_prompt $" { pass "shift tests" } + -re "$gdb_prompt $" { fail "shift tests" } + timeout { fail "(timeout) shift tests" } + } +} + +proc sub_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/9i sub_tests\n" + gdb_expect { + -re " +.*sub d1,d2.* +.*sub d2,a3.* +.*sub a3,d3.* +.*sub a3,a2.* +.*sub 32767,d2.* +.*sub 131071,d2.* +.*sub 32767,a2.* +.*sub 131071,a2.* +.*subc d1,d2.* +.*$gdb_prompt $" { pass "sub tests" } + -re "$gdb_prompt $" { fail "sub tests" } + timeout { fail "(timeout) sub tests" } + } +} + +# Start with a fresh gdb. + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load $binfile + +add_tests +bcc_tests +bccx_tests +bit_tests +cmp_tests +extend_tests +logical_tests +mov_tests_1 +mov_tests_2 +mov_tests_3 +mov_tests_4 +movb_tests +movbu_tests +movx_tests +muldiv_tests +misc_tests +shift_tests +sub_tests |