📄 am33.exp
字号:
# 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 "mn10300*-*-*"] { verbose "Tests ignored for all but mn10300 based targets." return}global exec_outputset prms_id 0set bug_id 0set testfile "am33"set srcfile ${srcdir}/${subdir}/${testfile}.sset binfile ${objdir}/${subdir}/${testfile}if { [gdb_compile "${srcfile}" "${binfile}" object ""] != "" } { gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."}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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -