diff options
Diffstat (limited to 'gdb/testsuite/gdb.disasm/hppa.exp')
-rw-r--r-- | gdb/testsuite/gdb.disasm/hppa.exp | 150 |
1 files changed, 130 insertions, 20 deletions
diff --git a/gdb/testsuite/gdb.disasm/hppa.exp b/gdb/testsuite/gdb.disasm/hppa.exp index c3d790a..3ab5411 100644 --- a/gdb/testsuite/gdb.disasm/hppa.exp +++ b/gdb/testsuite/gdb.disasm/hppa.exp @@ -29,11 +29,6 @@ set bug_id 0 set binfile "hppa" set srcfile $binfile.s -if ![file exists $objdir/$subdir/$binfile] then { - error "$objdir/$subdir/$binfile does not exist." - continue -} - proc all_integer_memory_tests { } { global prompt global hex @@ -868,7 +863,7 @@ proc all_fpu_memory_tests { } { global hex global decimal - send "x/16i fpu_memory_indexing_tests\n" + send "x/20i fpu_memory_indexing_tests\n" expect { -re ".* .*fldwx r4\(sr0,r5\),fr6\r\n\ @@ -887,12 +882,16 @@ proc all_fpu_memory_tests { } { .*fstdx,s fr6,r4\(sr0,r5\)\r\n\ .*fstdx,m fr6,r4\(sr0,r5\)\r\n\ .*fstdx,sm fr6,r4\(sr0,r5\)\r\n\ +.*fstqx fr6,r4\(sr0,r5\)\r\n\ +.*fstqx,s fr6,r4\(sr0,r5\)\r\n\ +.*fstqx,m fr6,r4\(sr0,r5\)\r\n\ +.*fstqx,sm fr6,r4\(sr0,r5\)\r\n\ .*$prompt $" { pass "fpu_memory_indexing_tests" } -re "$prompt $" { fail "fpu_memory_indexing_tests" } timeout { file "(timeout) fpu_memory_indexing_tests" } } - send "x/12i fpu_short_memory_tests\n" + send "x/15i fpu_short_memory_tests\n" expect { -re ".* .*fldws 0\(sr0,r5\),fr6\r\n\ @@ -907,6 +906,9 @@ proc all_fpu_memory_tests { } { .*fstds fr6,0\(sr0,r5\)\r\n\ .*fstds,mb fr6,0\(sr0,r5\)\r\n\ .*fstds,ma fr6,0\(sr0,r5\)\r\n\ +.*fstqs fr6,0\(sr0,r5\)\r\n\ +.*fstqs,mb fr6,0\(sr0,r5\)\r\n\ +.*fstqs,ma fr6,0\(sr0,r5\)\r\n\ .*$prompt $" { pass "fpu_short_memory_tests" } -re "$prompt $" { fail "fpu_short_memory_tests" } timeout { file "(timeout) fpu_short_memory_tests" } @@ -919,12 +921,9 @@ proc all_fpu_computational_tests { } { global hex global decimal - # Fails due to space between copr and ",". - setup_xfail "hppa*-*-*" - send "x/2i fpu_misc_tests\n" + send "x/1i fpu_misc_tests\n" expect { -re ".* -.*copr,0,0\r\n\ .*ftest\r\n\ .*$prompt $" { pass "fpu_misc_tests" } -re "$prompt $" { fail "fpu_misc_tests" } @@ -1010,12 +1009,10 @@ proc all_fpu_computational_tests { } { timeout { fail "(timeout) fmpy_addsub_tests" } } - # fails because it should not print a format - setup_xfail hppa*-*-* send "x/i xmpyu_tests\n" expect { -re ".* -.*xmpyu fr4,fr5,fr6 +.*xmpyu fr4,fr5,fr6\r\n\ .*$prompt $" {pass "xmpyu_tests" } -re "$prompt $" {fail "xmpyu_tests" } timeout { fail "(timeout) xmpyu_tests" } @@ -1094,14 +1091,124 @@ proc all_special_tests { } { } -# Start with a fresh gdb. +proc all_sfu_tests { } { + global prompt + global hex + global decimal + + send "x/16i sfu_tests\n" + expect { + -re ".* +.*spop0,4,5\r\n\ +.*spop0,4,73\r\n\ +.*spop0,4,5,n\r\n\ +.*spop0,4,73,n\r\n\ +.*spop1,4,5 r5\r\n\ +.*spop1,4,73 r5\r\n\ +.*spop1,4,5,n r5\r\n\ +.*spop1,4,73,n r5\r\n\ +.*spop2,4,5 r5\r\n\ +.*spop2,4,73 r5\r\n\ +.*spop2,4,5,n r5\r\n\ +.*spop2,4,73,n r5\r\n\ +.*spop3,4,5 r5,r6\r\n\ +.*spop3,4,73 r5,r6\r\n\ +.*spop3,4,5,n r5,r6\r\n\ +.*spop3,4,73,n r5,r6\r\n\ +.*$prompt $" { pass "sfu tests" } + -re "$prompt $" { fail "sfu tests" } + timeout { fail "(timeout) sfu tests " } + } +} + +proc all_copr_tests { } { + global prompt + global hex + global decimal + + send "x/4i copr_tests\n" + expect { + -re ".* +.*copr,4,5\r\n\ +.*copr,4,73\r\n\ +.*copr,4,5,n\r\n\ +.*copr,4,73,n\r\n\ +.*$prompt $" { pass "copr tests" } + -re "$prompt $" { fail "copr tests" } + timeout { fail "(timeout) copr tests " } + } +} + +proc all_copr_mem_tests { } { + global prompt + global hex + global decimal + + send "x/8i copr_indexing_load\n" + expect { + -re ".* +.*cldwx,4 r5\(sr0,r4\),arg0\r\n\ +.*cldwx,4,s r5\(sr0,r4\),arg0\r\n\ +.*cldwx,4,m r5\(sr0,r4\),arg0\r\n\ +.*cldwx,4,sm r5\(sr0,r4\),arg0\r\n\ +.*clddx,4 r5\(sr0,r4\),arg0\r\n\ +.*clddx,4,s r5\(sr0,r4\),arg0\r\n\ +.*clddx,4,m r5\(sr0,r4\),arg0\r\n\ +.*clddx,4,sm r5\(sr0,r4\),arg0\r\n\ +.*$prompt $" { pass "copr indexed load tests" } + -re "$prompt $" { fail "copr indexed load tests" } + timeout { fail "(timeout) copr indexed load tests " } + } + + send "x/8i copr_indexing_store\n" + expect { + -re ".* +.*cstwx,4 arg0,r5\(sr0,r4\)\r\n\ +.*cstwx,4,s arg0,r5\(sr0,r4\)\r\n\ +.*cstwx,4,m arg0,r5\(sr0,r4\)\r\n\ +.*cstwx,4,sm arg0,r5\(sr0,r4\)\r\n\ +.*cstdx,4 arg0,r5\(sr0,r4\)\r\n\ +.*cstdx,4,s arg0,r5\(sr0,r4\)\r\n\ +.*cstdx,4,m arg0,r5\(sr0,r4\)\r\n\ +.*cstdx,4,sm arg0,r5\(sr0,r4\)\r\n\ +.*$prompt $" { pass "copr indexed store tests" } + -re "$prompt $" { fail "copr indexed store tests" } + timeout { fail "(timeout) copr indexed load tests " } + } + + send "x/12i copr_short_memory\n" + expect { + -re ".* +.*cldws,4 0\(sr0,r4\),arg0\r\n\ +.*cldws,4,mb 0\(sr0,r4\),arg0\r\n\ +.*cldws,4,ma 0\(sr0,r4\),arg0\r\n\ +.*cldds,4 0\(sr0,r4\),arg0\r\n\ +.*cldds,4,mb 0\(sr0,r4\),arg0\r\n\ +.*cldds,4,ma 0\(sr0,r4\),arg0\r\n\ +.*cstws,4 arg0,0\(sr0,r4\)\r\n\ +.*cstws,4,mb arg0,0\(sr0,r4\)\r\n\ +.*cstws,4,ma arg0,0\(sr0,r4\)\r\n\ +.*cstds,4 arg0,0\(sr0,r4\)\r\n\ +.*cstds,4,mb arg0,0\(sr0,r4\)\r\n\ +.*cstds,4,ma arg0,0\(sr0,r4\)\r\n\ +.*$prompt $" { pass "copr short memory tests" } + -re "$prompt $" { fail "copr short memory tests" } + timeout { fail "(timeout) copr short memory tests " } + } +} + +if ![file exists $objdir/$subdir/$binfile] then { + if $all_flag then { + warning "$objdir/$subdir/$binfile does not exist; tests suppressed" + } +} else { + # Start with a fresh gdb. -gdb_exit -gdb_start -gdb_reinitialize_dir $srcdir/$subdir -gdb_load $objdir/$subdir/$binfile + gdb_exit + gdb_start + gdb_reinitialize_dir $srcdir/$subdir + gdb_load $objdir/$subdir/$binfile -if [istarget "hppa*-*-*"] then { all_integer_memory_tests all_immediate_tests all_branch_tests @@ -1111,4 +1218,7 @@ if [istarget "hppa*-*-*"] then { all_fpu_computational_tests all_fpu_comparison_tests all_special_tests + all_sfu_tests + all_copr_tests + all_copr_mem_tests } |