📄 hppa.exp
字号:
# Copyright (C) 1992, 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@cs.utah.edu)if $tracelevel then { strace $tracelevel}if ![istarget "hppa*-*-*"] { verbose "Tests ignored for all but hppa based targets." return}set prms_id 0set bug_id 0set testfile "hppa"set srcfile ${srcdir}/${subdir}/${testfile}.sset binfile ${objdir}/${subdir}/${testfile}set comp_output [gdb_compile "${srcfile}" "${binfile}" executable ""];if { $comp_output != "" } { if [ regexp "Opcode not defined - DIAG" $comp_output] { warning "HP assembler in use--skipping disasm tests" return } else { perror "Couldn't compile ${srcfile}" return -1 }}proc all_integer_memory_tests { } { global gdb_prompt global hex global decimal send_gdb "x/8i integer_memory_tests\n" gdb_expect { -re ".*ldw 0\\(sr0,r4\\),r26.*.*ldh 0\\(sr0,r4\\),r26.*.*ldb 0\\(sr0,r4\\),r26.*.*stw r26,0\\(sr0,r4\\).*.*sth r26,0\\(sr0,r4\\).*.*stb r26,0\\(sr0,r4\\).*.*ldwm 0\\(sr0,r4\\),r26.*.*stwm r26,0\\(sr0,r4\\).*.*$gdb_prompt $" { pass "integer_memory_tests" } -re "$gdb_prompt $" { fail "integer_memory_tests" } timeout { fail "(timeout) integer memory_tests" } } send_gdb "x/20i integer_indexing_load\n" gdb_expect { -re ".*ldwx r5\\(sr0,r4\\),r26.*.*ldwx,s r5\\(sr0,r4\\),r26.*.*ldwx,m r5\\(sr0,r4\\),r26.*.*ldwx,sm r5\\(sr0,r4\\),r26.*.*ldhx r5\\(sr0,r4\\),r26.*.*ldhx,s r5\\(sr0,r4\\),r26.*.*ldhx,m r5\\(sr0,r4\\),r26.*.*ldhx,sm r5\\(sr0,r4\\),r26.*.*ldbx r5\\(sr0,r4\\),r26.*.*ldbx,s r5\\(sr0,r4\\),r26.*.*ldbx,m r5\\(sr0,r4\\),r26.*.*ldbx,sm r5\\(sr0,r4\\),r26.*.*ldwax r5\\(r4\\),r26.*.*ldwax,s r5\\(r4\\),r26.*.*ldwax,m r5\\(r4\\),r26.*.*ldwax,sm r5\\(r4\\),r26.*.*ldcwx r5\\(sr0,r4\\),r26.*.*ldcwx,s r5\\(sr0,r4\\),r26.*.*ldcwx,m r5\\(sr0,r4\\),r26.*.*ldcwx,sm r5\\(sr0,r4\\),r26.*.*$gdb_prompt $" { pass "integer_indexing_load" } -re "$gdb_prompt $" { fail "integer_indexing_load" } timeout { fail "(timeout) integer_indexing" } } send_gdb "x/15i integer_load_short_memory\n" gdb_expect { -re ".*ldws 0\\(sr0,r4\\),r26.*.*ldws,mb 0\\(sr0,r4\\),r26.*.*ldws,ma 0\\(sr0,r4\\),r26.*.*ldhs 0\\(sr0,r4\\),r26.*.*ldhs,mb 0\\(sr0,r4\\),r26.*.*ldhs,ma 0\\(sr0,r4\\),r26.*.*ldbs 0\\(sr0,r4\\),r26.*.*ldbs,mb 0\\(sr0,r4\\),r26.*.*ldbs,ma 0\\(sr0,r4\\),r26.*.*ldwas 0\\(r4\\),r26.*.*ldwas,mb 0\\(r4\\),r26.*.*ldwas,ma 0\\(r4\\),r26.*.*ldcws 0\\(sr0,r4\\),r26.*.*ldcws,mb 0\\(sr0,r4\\),r26.*.*ldcws,ma 0\\(sr0,r4\\),r26.*.*$gdb_prompt $" { pass "integer_load_short_memory" } -re "$gdb_prompt $" { fail "integer_load_short_memory" } timeout { fail "(timeout) integer_load_short_memory " } } send_gdb "x/17i integer_store_short_memory\n" gdb_expect { -re ".*stws r26,0\\(sr0,r4\\).*.*stws,mb r26,0\\(sr0,r4\\).*.*stws,ma r26,0\\(sr0,r4\\).*.*sths r26,0\\(sr0,r4\\).*.*sths,mb r26,0\\(sr0,r4\\).*.*sths,ma r26,0\\(sr0,r4\\).*.*stbs r26,0\\(sr0,r4\\).*.*stbs,mb r26,0\\(sr0,r4\\).*.*stbs,ma r26,0\\(sr0,r4\\).*.*stwas r26,0\\(r4\\).*.*stwas,mb r26,0\\(r4\\).*.*stwas,ma r26,0\\(r4\\).*.*stbys r26,0\\(sr0,r4\\).*.*stbys r26,0\\(sr0,r4\\).*.*stbys,e r26,0\\(sr0,r4\\).*.*stbys,b,m r26,0\\(sr0,r4\\).*.*stbys,e,m r26,0\\(sr0,r4\\).*.*$gdb_prompt $" { pass "integer_store_short_memory" } -re "$gdb_prompt $" { fail "integer_store_short_memory" } timeout { fail "(timeout) integer_short_memory " } }}proc all_immediate_tests { } { global gdb_prompt global hex global decimal send_gdb "x/3i immediate_tests\n" gdb_expect { -re ".*ldo 5\\(r26\\),r26.*.*ldil -21524800,r26.*.*addil -21524800,r5.*.*$gdb_prompt $" { pass "immedate_tests" } -re "$gdb_prompt $" { fail "immedate_tests" } timeout { fail "(timeout) immedate_tests " } }}proc all_branch_tests { } { global gdb_prompt global hex global decimal send_gdb "x/10i branch_tests_1\n" gdb_expect { -re ".*bl.*,rp.*.*bl,n.*,rp.*.*b.*.*b,n.*.*gate.*,rp.*.*gate,n.*,rp.*.*blr r4,rp.*.*blr,n r4,rp.*.*blr r4,r0.*.*blr,n r4,r0.*.*$gdb_prompt $" { pass "branch_tests_1" } -re "$gdb_prompt $" { fail "branch_tests_1" } timeout { fail "(timeout) branch_tests_1" } } send_gdb "x/6i branch_tests_2\n" gdb_expect { -re ".*bv r0\\(rp\\).*.*bv,n r0\\(rp\\).*.*be 1234\\(sr1,rp\\).*.*be,n 1234\\(sr1,rp\\).*.*ble 1234\\(sr1,rp\\).*.*ble,n 1234\\(sr1,rp\\).*.*$gdb_prompt $" { pass "branch_tests_2" } -re "$gdb_prompt $" { fail "branch_tests_2" } timeout { fail "(timeout) branch_tests_2" } } send_gdb "x/8i movb_tests\n" gdb_expect { -re ".*movb r4,r26,.* <movb_tests>.*.*movb,= r4,r26,.* <movb_tests>.*.*movb,< r4,r26,.* <movb_tests>.*.*movb,od r4,r26,.* <movb_tests>.*.*movb,tr r4,r26,.* <movb_tests>.*.*movb,<> r4,r26,.* <movb_tests>.*.*movb,>= r4,r26,.* <movb_tests>.*.*movb,ev r4,r26,.* <movb_tests>.*.*$gdb_prompt $" { pass "movb_tests" } -re "$gdb_prompt $" { fail "movb_tests" } timeout { fail "(timeout) movb_tests " } } send_gdb "x/8i movb_nullified_tests\n" gdb_expect { -re ".*movb,n.*r4,r26,.* <movb_tests>.*.*movb,=,n.*r4,r26,.* <movb_tests>.*.*movb,<,n.*r4,r26,.* <movb_tests>.*.*movb,od,n.*r4,r26,.* <movb_tests>.*.*movb,tr,n.*r4,r26,.* <movb_tests>.*.*movb,<>,n.*r4,r26,.* <movb_tests>.*.*movb,>=,n.*r4,r26,.* <movb_tests>.*.*movb,ev,n.*r4,r26,.* <movb_tests>.*.*$gdb_prompt $" { pass "movb_nullified_tests" } -re "$gdb_prompt $" { fail "movb_nullified_tests" } timeout { fail "(timeout) movb_nullified_tests " } } send_gdb "x/8i movib_tests\n" gdb_expect { -re ".*movib 5,r26,.* <movib_tests>.*.*movib,= 5,r26,.* <movib_tests>.*.*movib,< 5,r26,.* <movib_tests>.*.*movib,od 5,r26,.* <movib_tests>.*.*movib,tr 5,r26,.* <movib_tests>.*.*movib,<> 5,r26,.* <movib_tests>.*.*movib,>= 5,r26,.* <movib_tests>.*.*movib,ev 5,r26,.* <movib_tests>.*.*$gdb_prompt $" { pass "movib_tests" } -re "$gdb_prompt $" { fail "movib_tests" } timeout { fail "(timeout) movib_tests " } } send_gdb "x/8i movib_nullified_tests\n" gdb_expect { -re ".*movib,n.*5,r26,.* <movib_tests>.*.*movib,=,n.*5,r26,.* <movib_tests>.*.*movib,<,n.*5,r26,.* <movib_tests>.*.*movib,od,n.*5,r26,.* <movib_tests>.*.*movib,tr,n.*5,r26,.* <movib_tests>.*.*movib,<>,n.*5,r26,.* <movib_tests>.*.*movib,>=,n.*5,r26,.* <movib_tests>.*.*movib,ev,n.*5,r26,.* <movib_tests>.*.*$gdb_prompt $" { pass "movib_nullified_tests" } -re "$gdb_prompt $" { fail "movib_nullified_tests" } timeout { fail "(timeout) movib_nullified_tests " } } send_gdb "x/8i comb_tests_1\n" gdb_expect { -re ".*comb r0,r4,.* <comb_tests_1>.*.*comb,= r0,r4,.* <comb_tests_1>.*.*comb,< r0,r4,.* <comb_tests_1>.*.*comb,<= r0,r4,.* <comb_tests_1>.*.*comb,<< r0,r4,.* <comb_tests_1>.*.*comb,<<= r0,r4,.* <comb_tests_1>.*.*comb,sv r0,r4,.* <comb_tests_1>.*.*comb,od r0,r4,.* <comb_tests_1>.*.*$gdb_prompt $" { pass "comb_tests_1" } -re "$gdb_prompt $" { fail "comb_tests_1" } timeout { fail "(timeout) comb_tests_1" } } send_gdb "x/8i comb_tests_2\n" gdb_expect { -re ".*combf r0,r4,.* <comb_tests_2>.*.*combf,= r0,r4,.* <comb_tests_2>.*.*combf,< r0,r4,.* <comb_tests_2>.*.*combf,<= r0,r4,.* <comb_tests_2>.*.*combf,<< r0,r4,.* <comb_tests_2>.*.*combf,<<= r0,r4,.* <comb_tests_2>.*.*combf,sv r0,r4,.* <comb_tests_2>.*.*combf,od r0,r4,.* <comb_tests_2>.*.*$gdb_prompt $" { pass "comb_tests_2" } -re "$gdb_prompt $" { fail "comb_tests_2" } timeout { fail "(timeout) comb_tests_2" } } send_gdb "x/8i comb_nullified_tests_1\n" gdb_expect { -re ".*comb,n r0,r4,.* <comb_tests_1>.*.*comb,=,n r0,r4,.* <comb_tests_1>.*.*comb,<,n r0,r4,.* <comb_tests_1>.*.*comb,<=,n r0,r4,.* <comb_tests_1>.*.*comb,<<,n r0,r4,.* <comb_tests_1>.*.*comb,<<=,n r0,r4,.* <comb_tests_1>.*.*comb,sv,n r0,r4,.* <comb_tests_1>.*.*comb,od,n r0,r4,.* <comb_tests_1>.*.*$gdb_prompt $" { pass "comb_nullified_tests_1" } -re "$gdb_prompt $" { fail "comb_nullified_tests_1" } timeout { fail "(timeout) comb_nullified_tests_1" } } send_gdb "x/8i comb_nullified_tests_2\n" gdb_expect { -re ".*combf,n r0,r4,.* <comb_tests_2>.*.*combf,=,n r0,r4,.* <comb_tests_2>.*.*combf,<,n r0,r4,.* <comb_tests_2>.*.*combf,<=,n r0,r4,.* <comb_tests_2>.*.*combf,<<,n r0,r4,.* <comb_tests_2>.*.*combf,<<=,n r0,r4,.* <comb_tests_2>.*.*combf,sv,n r0,r4,.* <comb_tests_2>.*.*combf,od,n r0,r4,.* <comb_tests_2>.*.*$gdb_prompt $" { pass "comb_nullified_tests_2" } -re "$gdb_prompt $" { fail "comb_nullified_tests_2" } timeout { fail "(timeout) comb_nullified_tests_2" } } send_gdb "x/8i comib_tests_1\n" gdb_expect { -re ".*comib 0,r4,.* <comib_tests_1>.*.*comib,= 0,r4,.* <comib_tests_1>.*.*comib,< 0,r4,.* <comib_tests_1>.*.*comib,<= 0,r4,.* <comib_tests_1>.*.*comib,<< 0,r4,.* <comib_tests_1>.*.*comib,<<= 0,r4,.* <comib_tests_1>.*.*comib,sv 0,r4,.* <comib_tests_1>.*.*comib,od 0,r4,.* <comib_tests_1>.*.*$gdb_prompt $" { pass "comib_tests_1" } -re "$gdb_prompt $" { fail "comib_tests_1" } timeout { fail "(timeout) comib_tests_1" } } send_gdb "x/8i comib_tests_2\n" gdb_expect { -re ".*comibf 0,r4,.* <comib_tests_2>.*.*comibf,= 0,r4,.* <comib_tests_2>.*.*comibf,< 0,r4,.* <comib_tests_2>.*.*comibf,<= 0,r4,.* <comib_tests_2>.*.*comibf,<< 0,r4,.* <comib_tests_2>.*.*comibf,<<= 0,r4,.* <comib_tests_2>.*.*comibf,sv 0,r4,.* <comib_tests_2>.*.*comibf,od 0,r4,.* <comib_tests_2>.*.*$gdb_prompt $" { pass "comib_tests_2" } -re "$gdb_prompt $" { fail "comib_tests_2" } timeout { fail "(timeout) comib_tests_2" } } send_gdb "x/8i comib_nullified_tests_1\n" gdb_expect { -re ".*comib,n 0,r4,.* <comib_tests_1>.*.*comib,=,n 0,r4,.* <comib_tests_1>.*.*comib,<,n 0,r4,.* <comib_tests_1>.*.*comib,<=,n 0,r4,.* <comib_tests_1>.*.*comib,<<,n 0,r4,.* <comib_tests_1>.*.*comib,<<=,n 0,r4,.* <comib_tests_1>.*.*comib,sv,n 0,r4,.* <comib_tests_1>.*.*comib,od,n 0,r4,.* <comib_tests_1>.*.*$gdb_prompt $" { pass "comib_nullified_tests_1" } -re "$gdb_prompt $" { fail "comib_nullified_tests_1" } timeout { fail "(timeout) comib_nullified_tests_1" } } send_gdb "x/8i comib_nullified_tests_2\n" gdb_expect { -re ".*comibf,n 0,r4,.* <comib_tests_2>.*.*comibf,=,n 0,r4,.* <comib_tests_2>.*.*comibf,<,n 0,r4,.* <comib_tests_2>.*.*comibf,<=,n 0,r4,.* <comib_tests_2>.*.*comibf,<<,n 0,r4,.* <comib_tests_2>.*.*comibf,<<=,n 0,r4,.* <comib_tests_2>.*.*comibf,sv,n 0,r4,.* <comib_tests_2>.*.*comibf,od,n 0,r4,.* <comib_tests_2>.*.*$gdb_prompt $" { pass "comib_nullified_tests_2" } -re "$gdb_prompt $" { fail "comib_nullified_tests_2" } timeout { fail "(timeout) comib_nullified_tests_2" } } send_gdb "x/8i addb_tests_1\n" gdb_expect { -re ".*addb r1,r4,.* <addb_tests_1>.*.*addb,= r1,r4,.* <addb_tests_1>.*.*addb,< r1,r4,.* <addb_tests_1>.*.*addb,<= r1,r4,.* <addb_tests_1>.*.*addb,nuv r1,r4,.* <addb_tests_1>.*.*addb,znv r1,r4,.* <addb_tests_1>.*.*addb,sv r1,r4,.* <addb_tests_1>.*.*addb,od r1,r4,.* <addb_tests_1>.*.*$gdb_prompt $" { pass "addb_tests_1" } -re "$gdb_prompt $" { fail "addb_tests_1" } timeout { fail "(timeout) addb_tests_1" } } send_gdb "x/8i addb_tests_2\n" gdb_expect { -re ".*addbf r1,r4,.* <addb_tests_2>.*.*addbf,= r1,r4,.* <addb_tests_2>.*.*addbf,< r1,r4,.* <addb_tests_2>.*.*addbf,<= r1,r4,.* <addb_tests_2>.*.*addbf,nuv r1,r4,.* <addb_tests_2>.*.*addbf,znv r1,r4,.* <addb_tests_2>.*.*addbf,sv r1,r4,.* <addb_tests_2>.*.*addbf,od r1,r4,.* <addb_tests_2>.*.*$gdb_prompt $" { pass "addb_tests_2" } -re "$gdb_prompt $" { fail "addb_tests_2" } timeout { fail "(timeout) addb_tests_2" } } send_gdb "x/8i addb_nullified_tests_1\n" gdb_expect { -re ".*addb,n r1,r4,.* <addb_tests_1>.*.*addb,=,n r1,r4,.* <addb_tests_1>.*.*addb,<,n r1,r4,.* <addb_tests_1>.*.*addb,<=,n r1,r4,.* <addb_tests_1>.*.*addb,nuv,n r1,r4,.* <addb_tests_1>.*.*addb,znv,n r1,r4,.* <addb_tests_1>.*.*addb,sv,n r1,r4,.* <addb_tests_1>.*.*addb,od,n r1,r4,.* <addb_tests_1>.*.*$gdb_prompt $" { pass "addb_nullified_tests_1" } -re "$gdb_prompt $" { fail "addb_nullified_tests_1" } timeout { fail "(timeout) addb_nullified_tests_1" } } send_gdb "x/8i addb_nullified_tests_2\n" gdb_expect { -re ".*addbf,n r1,r4,.* <addb_tests_2>.*.*addbf,=,n r1,r4,.* <addb_tests_2>.*.*addbf,<,n r1,r4,.* <addb_tests_2>.*.*addbf,<=,n r1,r4,.* <addb_tests_2>.*.*addbf,nuv,n r1,r4,.* <addb_tests_2>.*.*addbf,znv,n r1,r4,.* <addb_tests_2>.*.*addbf,sv,n r1,r4,.* <addb_tests_2>.*.*addbf,od,n r1,r4,.* <addb_tests_2>.*.*$gdb_prompt $" { pass "addb_nullified_tests_2" } -re "$gdb_prompt $" { fail "addb_nullified_tests_2" } timeout { fail "(timeout) addb_nullified_tests_2" } } send_gdb "x/8i addib_tests_1\n" gdb_expect { -re ".*addib -1,r4,.* <addib_tests_1>.*.*addib,= -1,r4,.* <addib_tests_1>.*.*addib,< -1,r4,.* <addib_tests_1>.*.*addib,<= -1,r4,.* <addib_tests_1>.*.*addib,nuv -1,r4,.* <addib_tests_1>.*.*addib,znv -1,r4,.* <addib_tests_1>.*.*addib,sv -1,r4,.* <addib_tests_1>.*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -