URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [gdb-5.3/] [gdb/] [testsuite/] [gdb.disasm/] [hppa.exp] - Rev 1765
Compare with Previous | Blame | View Log
# Copyright 1992, 1993, 1994, 1995, 1996, 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_promptglobal hexglobal decimalsend_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_promptglobal hexglobal decimalsend_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_promptglobal hexglobal decimalsend_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>.*.*addib,od -1,r4,.* <addib_tests_1>.*.*$gdb_prompt $" { pass "addib_tests_1" }-re "$gdb_prompt $" { fail "addib_tests_1" }timeout { fail "(timeout) addib_tests_1" }}send_gdb "x/8i addib_tests_2\n"gdb_expect {-re ".*addibf -1,r4,.* <addib_tests_2>.*.*addibf,= -1,r4,.* <addib_tests_2>.*.*addibf,< -1,r4,.* <addib_tests_2>.*.*addibf,<= -1,r4,.* <addib_tests_2>.*.*addibf,nuv -1,r4,.* <addib_tests_2>.*.*addibf,znv -1,r4,.* <addib_tests_2>.*.*addibf,sv -1,r4,.* <addib_tests_2>.*.*addibf,od -1,r4,.* <addib_tests_2>.*.*$gdb_prompt $" { pass "addib_tests_2" }-re "$gdb_prompt $" { fail "addib_tests_2" }timeout { fail "(timeout) addib_tests_2" }}send_gdb "x/8i addib_nullified_tests_1\n"gdb_expect {-re ".*addib,n -1,r4,.* <addib_tests_1>.*.*addib,=,n -1,r4,.* <addib_tests_1>.*.*addib,<,n -1,r4,.* <addib_tests_1>.*.*addib,<=,n -1,r4,.* <addib_tests_1>.*.*addib,nuv,n -1,r4,.* <addib_tests_1>.*.*addib,znv,n -1,r4,.* <addib_tests_1>.*.*addib,sv,n -1,r4,.* <addib_tests_1>.*.*addib,od,n -1,r4,.* <addib_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 addib_nullified_tests_2\n"gdb_expect {-re ".*addibf,n -1,r4,.* <addib_tests_2>.*.*addibf,=,n -1,r4,.* <addib_tests_2>.*.*addibf,<,n -1,r4,.* <addib_tests_2>.*.*addibf,<=,n -1,r4,.* <addib_tests_2>.*.*addibf,nuv,n -1,r4,.* <addib_tests_2>.*.*addibf,znv,n -1,r4,.* <addib_tests_2>.*.*addibf,sv,n -1,r4,.* <addib_tests_2>.*.*addibf,od,n -1,r4,.* <addib_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 bb_tests\n"gdb_expect {-re ".*bvb,< r4,.* <bb_tests>.*.*bvb,>= r4,.* <bb_tests>.*.*bvb,<,n r4,.* <bb_tests>.*.*bvb,>=,n r4,.* <bb_tests>.*.*bb,< r4,5,.* <bb_tests>.*.*bb,>= r4,5,.* <bb_tests>.*.*bb,<,n r4,5,.* <bb_tests>.*.*bb,>=,n r4,5,.* <bb_tests>.*.*$gdb_prompt $" { pass "bb_tests" }-re "$gdb_prompt $" { fail "bb_tests" }timeout { fail "(timeout) bb_tests " }}}proc all_integer_computational_tests { } {global gdb_promptglobal hexglobal decimalset add_insns [list {add} {addl} {addo} {addc} {addco} \{sh1add} {sh1addl} {sh1addo} \{sh2add} {sh2addl} {sh2addo} \{sh3add} {sh3addl} {sh3addo} ]foreach i $add_insns {send_gdb "x/16i $i"; send_gdb "_tests\n"gdb_expect {-re ".*$i r4,r5,r6.*.*$i,= r4,r5,r6.*.*$i,< r4,r5,r6.*.*$i,<= r4,r5,r6.*.*$i,nuv r4,r5,r6.*.*$i,znv r4,r5,r6.*.*$i,sv r4,r5,r6.*.*$i,od r4,r5,r6.*.*$i,tr r4,r5,r6.*.*$i,<> r4,r5,r6.*.*$i,>= r4,r5,r6.*.*$i,> r4,r5,r6.*.*$i,uv r4,r5,r6.*.*$i,vnz r4,r5,r6.*.*$i,nsv r4,r5,r6.*.*$i,ev r4,r5,r6.*.*$gdb_prompt $" { pass "$i tests" }-re "$gdb_prompt $" { fail "$i tests" }timeout { fail "(timeout) $i tests" }}}set sub_insns [list {sub} {subo} {subb} {subbo} {subt} {subto} \{ds} {comclr} ]foreach i $sub_insns {send_gdb "x/16i $i"; send_gdb "_tests\n"gdb_expect {-re ".*$i r4,r5,r6.*.*$i,= r4,r5,r6.*.*$i,< r4,r5,r6.*.*$i,<= r4,r5,r6.*.*$i,<< r4,r5,r6.*.*$i,<<= r4,r5,r6.*.*$i,sv r4,r5,r6.*.*$i,od r4,r5,r6.*.*$i,tr r4,r5,r6.*.*$i,<> r4,r5,r6.*.*$i,>= r4,r5,r6.*.*$i,> r4,r5,r6.*.*$i,>>= r4,r5,r6.*.*$i,>> r4,r5,r6.*.*$i,nsv r4,r5,r6.*.*$i,ev r4,r5,r6.*.*$gdb_prompt $" { pass "$i tests" }-re "$gdb_prompt $" { fail "$i tests" }timeout { fail "(timeout) $i tests" }}}set logical_insns [list {or} {xor} {and} {andcm} ]foreach i $logical_insns {send_gdb "x/10i $i"; send_gdb "_tests\n"gdb_expect {-re ".*$i r4,r5,r6.*.*$i,= r4,r5,r6.*.*$i,< r4,r5,r6.*.*$i,<= r4,r5,r6.*.*$i,od r4,r5,r6.*.*$i,tr r4,r5,r6.*.*$i,<> r4,r5,r6.*.*$i,>= r4,r5,r6.*.*$i,> r4,r5,r6.*.*$i,ev r4,r5,r6.*.*$gdb_prompt $" { pass "$i tests" }-re "$gdb_prompt $" { fail "$i tests" }timeout { fail "(timeout) $i tests" }}}set unit_insns1 [list {uxor} {uaddcm} {uaddcmt} ]foreach i $unit_insns1 {send_gdb "x/12i $i"; send_gdb "_tests\n"gdb_expect {-re ".*$i r4,r5,r6.*.*$i,sbz r4,r5,r6.*.*$i,shz r4,r5,r6.*.*$i,sdc r4,r5,r6.*.*$i,sbc r4,r5,r6.*.*$i,shc r4,r5,r6.*.*$i,tr r4,r5,r6.*.*$i,nbz r4,r5,r6.*.*$i,nhz r4,r5,r6.*.*$i,ndc r4,r5,r6.*.*$i,nbc r4,r5,r6.*.*$i,nhc r4,r5,r6.*.*$gdb_prompt $" { pass "$i tests" }-re "$gdb_prompt $" { fail "$i tests" }timeout { fail "(timeout) $i tests" }}}set unit_insns2 [list {dcor} {idcor} ]foreach i $unit_insns2 {send_gdb "x/12i $i"; send_gdb "_tests\n"gdb_expect {-re ".*$i r4,r5.*.*$i,sbz r4,r5.*.*$i,shz r4,r5.*.*$i,sdc r4,r5.*.*$i,sbc r4,r5.*.*$i,shc r4,r5.*.*$i,tr r4,r5.*.*$i,nbz r4,r5.*.*$i,nhz r4,r5.*.*$i,ndc r4,r5.*.*$i,nbc r4,r5.*.*$i,nhc r4,r5.*.*$gdb_prompt $" { pass "$i tests" }-re "$gdb_prompt $" { fail "$i tests" }timeout { fail "(timeout) $i tests" }}}set addi_insns [list {addi} {addio} {addit} {addito} ]foreach i $addi_insns {send_gdb "x/16i $i"; send_gdb "_tests\n"gdb_expect {-re ".*$i 7b,r5,r6.*.*$i,= 7b,r5,r6.*.*$i,< 7b,r5,r6.*.*$i,<= 7b,r5,r6.*.*$i,nuv 7b,r5,r6.*.*$i,znv 7b,r5,r6.*.*$i,sv 7b,r5,r6.*.*$i,od 7b,r5,r6.*.*$i,tr 7b,r5,r6.*.*$i,<> 7b,r5,r6.*.*$i,>= 7b,r5,r6.*.*$i,> 7b,r5,r6.*.*$i,uv 7b,r5,r6.*.*$i,vnz 7b,r5,r6.*.*$i,nsv 7b,r5,r6.*.*$i,ev 7b,r5,r6.*.*$gdb_prompt $" { pass "$i tests" }-re "$gdb_prompt $" { fail "$i tests" }timeout { fail "(timeout) $i tests" }}}set subi_insns [list {subi} {subio} {comiclr} ]foreach i $subi_insns {send_gdb "x/16i $i"; send_gdb "_tests\n"gdb_expect {-re ".*$i 7b,r5,r6.*.*$i,= 7b,r5,r6.*.*$i,< 7b,r5,r6.*.*$i,<= 7b,r5,r6.*.*$i,<< 7b,r5,r6.*.*$i,<<= 7b,r5,r6.*.*$i,sv 7b,r5,r6.*.*$i,od 7b,r5,r6.*.*$i,tr 7b,r5,r6.*.*$i,<> 7b,r5,r6.*.*$i,>= 7b,r5,r6.*.*$i,> 7b,r5,r6.*.*$i,>>= 7b,r5,r6.*.*$i,>> 7b,r5,r6.*.*$i,nsv 7b,r5,r6.*.*$i,ev 7b,r5,r6.*.*$gdb_prompt $" { pass "$i tests" }-re "$gdb_prompt $" { fail "$i tests" }timeout { fail "(timeout) $i tests" }}}send_gdb "x/8i vshd_tests\n"gdb_expect {-re ".*vshd r4,r5,r6.*.*vshd,= r4,r5,r6.*.*vshd,< r4,r5,r6.*.*vshd,od r4,r5,r6.*.*vshd,tr r4,r5,r6.*.*vshd,<> r4,r5,r6.*.*vshd,>= r4,r5,r6.*.*vshd,ev r4,r5,r6.*.*$gdb_prompt $" { pass "vshd tests" }-re "$gdb_prompt $" { fail "vshd tests" }timeout { fail "(timeout) "vshd tests" }}send_gdb "x/8i shd_tests\n"gdb_expect {-re ".*shd r4,r5,5,r6.*.*shd,= r4,r5,5,r6.*.*shd,< r4,r5,5,r6.*.*shd,od r4,r5,5,r6.*.*shd,tr r4,r5,5,r6.*.*shd,<> r4,r5,5,r6.*.*shd,>= r4,r5,5,r6.*.*shd,ev r4,r5,5,r6.*.*$gdb_prompt $" { pass "shd tests" }-re "$gdb_prompt $" { fail "shd tests" }timeout { fail "(timeout) "shd tests" }}set extract_insns1 [list {extru} {extrs} {zdep} {dep} ]foreach i $extract_insns1 {send_gdb "x/8i $i"; send_gdb "_tests\n"gdb_expect {-re ".*$i r4,5,10,r6.*.*$i,= r4,5,10,r6.*.*$i,< r4,5,10,r6.*.*$i,od r4,5,10,r6.*.*$i,tr r4,5,10,r6.*.*$i,<> r4,5,10,r6.*.*$i,>= r4,5,10,r6.*.*$i,ev r4,5,10,r6.*.*$gdb_prompt $" { pass "$i tests" }-re "$gdb_prompt $" { fail "$i tests" }timeout { fail "(timeout) $i tests" }}}set extract_insns2 [list {vextru} {vextrs} {zvdep} {vdep} ]foreach i $extract_insns2 {send_gdb "x/8i $i"; send_gdb "_tests\n"gdb_expect {-re ".*$i r4,5,r6.*.*$i,= r4,5,r6.*.*$i,< r4,5,r6.*.*$i,od r4,5,r6.*.*$i,tr r4,5,r6.*.*$i,<> r4,5,r6.*.*$i,>= r4,5,r6.*.*$i,ev r4,5,r6.*.*$gdb_prompt $" { pass "$i tests" }-re "$gdb_prompt $" { fail "$i tests" }timeout { fail "(timeout) $i tests" }}}set extract_insns3 [list {vdepi} {zvdepi} ]foreach i $extract_insns3 {send_gdb "x/8i $i"; send_gdb "_tests\n"gdb_expect {-re ".*$i -1,5,r6.*.*$i,= -1,5,r6.*.*$i,< -1,5,r6.*.*$i,od -1,5,r6.*.*$i,tr -1,5,r6.*.*$i,<> -1,5,r6.*.*$i,>= -1,5,r6.*.*$i,ev -1,5,r6.*.*$gdb_prompt $" { pass "$i tests" }-re "$gdb_prompt $" { fail "$i tests" }timeout { fail "(timeout) $i tests" }}}set extract_insns4 [list {depi} {zdepi} ]foreach i $extract_insns4 {send_gdb "x/8i $i"; send_gdb "_tests\n"gdb_expect {-re ".*$i -1,4,10,r6.*.*$i,= -1,4,10,r6.*.*$i,< -1,4,10,r6.*.*$i,od -1,4,10,r6.*.*$i,tr -1,4,10,r6.*.*$i,<> -1,4,10,r6.*.*$i,>= -1,4,10,r6.*.*$i,ev -1,4,10,r6.*.*$gdb_prompt $" { pass "$i tests" }-re "$gdb_prompt $" { fail "$i tests" }timeout { fail "(timeout) $i tests" }}}}proc all_system_control_tests { } {global gdb_promptglobal hexglobal decimalsend_gdb "x/14i system_control_tests\n"gdb_expect {-re ".*break 5,c.*.*rfi.*.*rfir.*.*ssm 5,r4.*.*rsm 5,r4.*.*mtsm r4.*.*ldsid \\(sr0,r5\\),r4.*.*mtsp r4,sr0.*.*mtctl r4,ccr.*.*mfsp sr0,r4.*.*mfctl ccr,r4.*.*sync.*.*syncdma.*.*diag 4d2.*.*$gdb_prompt $" { pass "system_constrol_tests" }-re "$gdb_prompt $" { fail "system_control_tests" }timeout { file "(timeout) system_control_tests" }}send_gdb "x/4i probe_tests\n"gdb_expect {-re ".*prober \\(sr0,r5\\),r6,r7.*.*proberi \\(sr0,r5\\),1,r7.*.*probew \\(sr0,r5\\),r6,r7.*.*probewi \\(sr0,r5\\),1,r7.*.*$gdb_prompt $" { pass "probe_tests" }-re "$gdb_prompt $" { fail "probe_tests" }timeout { file "(timeout) probe_tests" }}# lci uses the same bit pattern as lha, so accept lha.send_gdb "x/5i lpa_tests\n"gdb_expect {-re ".*lpa r4\\(sr0,r5\\),r6.*.*lpa,m r4\\(sr0,r5\\),r6.*.*lha r4\\(sr0,r5\\),r6.*.*lha,m r4\\(sr0,r5\\),r6.*.*lha r4\\(sr0,r5\\),r6.*.*$gdb_prompt $" { pass "lpa_tests" }-re "$gdb_prompt $" { fail "lpa_tests" }timeout { file "(timeout) lpa_tests" }}send_gdb "x/18i purge_tests\n"gdb_expect {-re ".*pdtlb r4\\(sr0,r5\\).*.*pdtlb,m r4\\(sr0,r5\\).*.*pitlb r4\\(sr0,r5\\).*.*pitlb,m r4\\(sr0,r5\\).*.*pdtlbe r4\\(sr0,r5\\).*.*pdtlbe,m r4\\(sr0,r5\\).*.*pitlbe r4\\(sr0,r5\\).*.*pitlbe,m r4\\(sr0,r5\\).*.*pdc r4\\(sr0,r5\\).*.*pdc,m r4\\(sr0,r5\\).*.*fdc r4\\(sr0,r5\\).*.*fdc,m r4\\(sr0,r5\\).*.*fic r4\\(sr0,r5\\).*.*fic,m r4\\(sr0,r5\\).*.*fdce r4\\(sr0,r5\\).*.*fdce,m r4\\(sr0,r5\\).*.*fice r4\\(sr0,r5\\).*.*fice,m r4\\(sr0,r5\\).*.*$gdb_prompt $" { pass "purge_tests" }-re "$gdb_prompt $" { fail "purge_tests" }timeout { file "(timeout) purge_tests" }}send_gdb "x/4i insert_tests\n"gdb_expect {-re ".*idtlba r4,\\(sr0,r5\\).*.*iitlba r4,\\(sr0,r5\\).*.*idtlbp r4,\\(sr0,r5\\).*.*iitlbp r4,\\(sr0,r5\\).*.*$gdb_prompt $" { pass "insert_tests" }-re "$gdb_prompt $" { fail "insert_tests" }timeout { file "(timeout) insert_tests" }}}proc all_fpu_memory_tests { } {global gdb_promptglobal hexglobal decimalsend_gdb "x/20i fpu_memory_indexing_tests\n"gdb_expect {-re ".*fldwx r4\\(sr0,r5\\),fr6.*.*fldwx,s r4\\(sr0,r5\\),fr6.*.*fldwx,m r4\\(sr0,r5\\),fr6.*.*fldwx,sm r4\\(sr0,r5\\),fr6.*.*flddx r4\\(sr0,r5\\),fr6.*.*flddx,s r4\\(sr0,r5\\),fr6.*.*flddx,m r4\\(sr0,r5\\),fr6.*.*flddx,sm r4\\(sr0,r5\\),fr6.*.*fstwx fr6,r4\\(sr0,r5\\).*.*fstwx,s fr6,r4\\(sr0,r5\\).*.*fstwx,m fr6,r4\\(sr0,r5\\).*.*fstwx,sm fr6,r4\\(sr0,r5\\).*.*fstdx fr6,r4\\(sr0,r5\\).*.*fstdx,s fr6,r4\\(sr0,r5\\).*.*fstdx,m fr6,r4\\(sr0,r5\\).*.*fstdx,sm fr6,r4\\(sr0,r5\\).*.*fstqx fr6,r4\\(sr0,r5\\).*.*fstqx,s fr6,r4\\(sr0,r5\\).*.*fstqx,m fr6,r4\\(sr0,r5\\).*.*fstqx,sm fr6,r4\\(sr0,r5\\).*.*$gdb_prompt $" { pass "fpu_memory_indexing_tests" }-re "$gdb_prompt $" { fail "fpu_memory_indexing_tests" }timeout { file "(timeout) fpu_memory_indexing_tests" }}send_gdb "x/15i fpu_short_memory_tests\n"gdb_expect {-re ".*fldws 0\\(sr0,r5\\),fr6.*.*fldws,mb 0\\(sr0,r5\\),fr6.*.*fldws,ma 0\\(sr0,r5\\),fr6.*.*fldds 0\\(sr0,r5\\),fr6.*.*fldds,mb 0\\(sr0,r5\\),fr6.*.*fldds,ma 0\\(sr0,r5\\),fr6.*.*fstws fr6,0\\(sr0,r5\\).*.*fstws,mb fr6,0\\(sr0,r5\\).*.*fstws,ma fr6,0\\(sr0,r5\\).*.*fstds fr6,0\\(sr0,r5\\).*.*fstds,mb fr6,0\\(sr0,r5\\).*.*fstds,ma fr6,0\\(sr0,r5\\).*.*fstqs fr6,0\\(sr0,r5\\).*.*fstqs,mb fr6,0\\(sr0,r5\\).*.*fstqs,ma fr6,0\\(sr0,r5\\).*.*$gdb_prompt $" { pass "fpu_short_memory_tests" }-re "$gdb_prompt $" { fail "fpu_short_memory_tests" }timeout { file "(timeout) fpu_short_memory_tests" }}}proc all_fpu_computational_tests { } {global gdb_promptglobal hexglobal decimalsend_gdb "x/1i fpu_misc_tests\n"gdb_expect {-re ".*ftest.*.*$gdb_prompt $" { pass "fpu_misc_tests" }-re "$gdb_prompt $" { fail "fpu_misc_tests" }timeout { file "(timeout) fpu_misc_tests" }}set fpu_two_op_insns [list {fcpy} {fabs} {fsqrt} {frnd} ]foreach i $fpu_two_op_insns {send_gdb "x/5i $i"; send_gdb "_tests\n"gdb_expect {-re ".*$i,sgl fr5,fr10.*.*$i,dbl fr5,fr10.*.*$i,quad fr5,fr10.*.*$i,sgl fr20,fr24.*.*$i,dbl fr20,fr24.*.*$gdb_prompt $" { pass "$i tests" }-re "$gdb_prompt $" { fail "$i tests" }timeout { fail "(timeout) $i tests" }}}set fpu_conversions [list {fcnvff} {fcnvxf} {fcnvfx} {fcnvfxt} ]foreach i $fpu_conversions {send_gdb "x/18i $i"; send_gdb "_tests\n"gdb_expect {-re ".*$i,sgl,sgl fr5,fr10.*.*$i,sgl,dbl fr5,fr10.*.*$i,sgl,quad fr5,fr10.*.*$i,dbl,sgl fr5,fr10.*.*$i,dbl,dbl fr5,fr10.*.*$i,dbl,quad fr5,fr10.*.*$i,quad,sgl fr5,fr10.*.*$i,quad,dbl fr5,fr10.*.*$i,quad,quad fr5,fr10.*.*$i,sgl,sgl fr20,fr24.*.*$i,sgl,dbl fr20,fr24.*.*$i,sgl,quad fr20,fr24.*.*$i,dbl,sgl fr20,fr24.*.*$i,dbl,dbl fr20,fr24.*.*$i,dbl,quad fr20,fr24.*.*$i,quad,sgl fr20,fr24.*.*$i,quad,dbl fr20,fr24.*.*$i,quad,quad fr20,fr24.*.*$gdb_prompt $" { pass "$i tests" }-re "$gdb_prompt $" { fail "$i tests" }timeout { fail "(timeout) $i tests" }}}set fpu_three_op_insns [list {fadd} {fsub} {fmpy} {fdiv} {frem} ]foreach i $fpu_three_op_insns {send_gdb "x/6i $i"; send_gdb "_tests\n"gdb_expect {-re ".*$i,sgl fr4,fr8,fr12.*.*$i,dbl fr4,fr8,fr12.*.*$i,quad fr4,fr8,fr12.*.*$i,sgl fr20,fr24,fr28.*.*$i,dbl fr20,fr24,fr28.*.*$i,quad fr20,fr24,fr28.*.*$gdb_prompt $" { pass "$i tests" }-re "$gdb_prompt $" { fail "$i tests" }timeout { fail "(timeout) $i tests" }}}send_gdb "x/4i fmpy_addsub_tests\n"gdb_expect {-re ".*fmpyadd,sgl fr16,fr17,fr18,fr19,fr20.*.*fmpyadd,dbl fr16,fr17,fr18,fr19,fr20.*.*fmpysub,sgl fr16,fr17,fr18,fr19,fr20.*.*fmpysub,dbl fr16,fr17,fr18,fr19,fr20.*.*$gdb_prompt $" { pass "fmpy_addsub_tests" }-re "$gdb_prompt $" { fail "fmpy_addsub_tests" }timeout { fail "(timeout) fmpy_addsub_tests" }}send_gdb "x/i xmpyu_tests\n"gdb_expect {-re ".*xmpyu fr4,fr5,fr6.*.*$gdb_prompt $" {pass "xmpyu_tests" }-re "$gdb_prompt $" {fail "xmpyu_tests" }timeout { fail "(timeout) xmpyu_tests" }}}proc all_fpu_comparison_tests { } {global gdb_promptglobal hexglobal decimalset fpu_comparison_formats [list {sgl} {dbl} {quad} ]foreach i $fpu_comparison_formats {send_gdb "x/8i fcmp_$i"; send_gdb "_tests_1\n"gdb_expect {-re ".*fcmp,$i,false\\? fr4,fr5.*.*fcmp,$i,false fr4,fr5.*.*fcmp,$i,\\? fr4,fr5.*.*fcmp,$i,!<=> fr4,fr5.*.*fcmp,$i,= fr4,fr5.*.*fcmp,$i,=t fr4,fr5.*.*fcmp,$i,\\?= fr4,fr5.*.*fcmp,$i,!<> fr4,fr5.*.*$gdb_prompt $" { pass "$i tests (part1) " }-re "$gdb_prompt $" { fail "fcmp_$i tests (part1) " }timeout { fail "(timeout) fcmp_$i tests (part1) " }}send_gdb "x/8i fcmp_$i"; send_gdb "_tests_2\n"gdb_expect {-re ".*fcmp,$i,!\\?>= fr4,fr5.*.*fcmp,$i,< fr4,fr5.*.*fcmp,$i,\\?< fr4,fr5.*.*fcmp,$i,!>= fr4,fr5.*.*fcmp,$i,!\\?> fr4,fr5.*.*fcmp,$i,<= fr4,fr5.*.*fcmp,$i,\\?<= fr4,fr5.*.*fcmp,$i,!> fr4,fr5.*.*$gdb_prompt $" { pass "$i tests (part2) " }-re "$gdb_prompt $" { fail "fcmp_$i tests (part2) " }timeout { fail "(timeout) fcmp_$i tests (part2) " }}send_gdb "x/8i fcmp_$i"; send_gdb "_tests_3\n"gdb_expect {-re ".*fcmp,$i,!\\?<= fr4,fr5.*.*fcmp,$i,> fr4,fr5.*.*fcmp,$i,\\?> fr4,fr5.*.*fcmp,$i,!<= fr4,fr5.*.*fcmp,$i,!\\?< fr4,fr5.*.*fcmp,$i,>= fr4,fr5.*.*fcmp,$i,\\?>= fr4,fr5.*.*fcmp,$i,!< fr4,fr5.*.*$gdb_prompt $" { pass "$i tests (part3) " }-re "$gdb_prompt $" { fail "fcmp_$i tests (part3) " }timeout { fail "(timeout) fcmp_$i tests (part3) " }}send_gdb "x/8i fcmp_$i"; send_gdb "_tests_4\n"gdb_expect {-re ".*fcmp,$i,!\\?= fr4,fr5.*.*fcmp,$i,<> fr4,fr5.*.*fcmp,$i,!= fr4,fr5.*.*fcmp,$i,!=t fr4,fr5.*.*fcmp,$i,!\\? fr4,fr5.*.*fcmp,$i,<=> fr4,fr5.*.*fcmp,$i,true\\? fr4,fr5.*.*fcmp,$i,true fr4,fr5.*.*$gdb_prompt $" { pass "$i tests (part4) " }-re "$gdb_prompt $" { fail "fcmp_$i tests (part4) " }timeout { fail "(timeout) fcmp_$i tests (part4) " }}}}proc all_special_tests { } {global gdb_promptglobal hexglobal decimalsend_gdb "x/4i special_tests\n"gdb_expect {-re ".*gfw r4\\(sr0,r5\\).*.*gfw,m r4\\(sr0,r5\\).*.*gfr r4\\(sr0,r5\\).*.*gfr,m r4\\(sr0,r5\\).*.*$gdb_prompt $" { pass "special tests" }-re "$gdb_prompt $" { fail "special tests" }timeout { fail "(timeout) special tests " }}}proc all_sfu_tests { } {global gdb_promptglobal hexglobal decimalsend_gdb "x/16i sfu_tests\n"gdb_expect {-re ".*spop0,4,5.*.*spop0,4,73.*.*spop0,4,5,n.*.*spop0,4,73,n.*.*spop1,4,5 r5.*.*spop1,4,73 r5.*.*spop1,4,5,n r5.*.*spop1,4,73,n r5.*.*spop2,4,5 r5.*.*spop2,4,73 r5.*.*spop2,4,5,n r5.*.*spop2,4,73,n r5.*.*spop3,4,5 r5,r6.*.*spop3,4,73 r5,r6.*.*spop3,4,5,n r5,r6.*.*spop3,4,73,n r5,r6.*.*$gdb_prompt $" { pass "sfu tests" }-re "$gdb_prompt $" { fail "sfu tests" }timeout { fail "(timeout) sfu tests " }}}proc all_copr_tests { } {global gdb_promptglobal hexglobal decimalsend_gdb "x/4i copr_tests\n"gdb_expect {-re ".*copr,4,5.*.*copr,4,73.*.*copr,4,5,n.*.*copr,4,73,n.*.*$gdb_prompt $" { pass "copr tests" }-re "$gdb_prompt $" { fail "copr tests" }timeout { fail "(timeout) copr tests " }}}proc all_copr_mem_tests { } {global gdb_promptglobal hexglobal decimalsend_gdb "x/8i copr_indexing_load\n"gdb_expect {-re ".*cldwx,4 r5\\(sr0,r4\\),r26.*.*cldwx,4,s r5\\(sr0,r4\\),r26.*.*cldwx,4,m r5\\(sr0,r4\\),r26.*.*cldwx,4,sm r5\\(sr0,r4\\),r26.*.*clddx,4 r5\\(sr0,r4\\),r26.*.*clddx,4,s r5\\(sr0,r4\\),r26.*.*clddx,4,m r5\\(sr0,r4\\),r26.*.*clddx,4,sm r5\\(sr0,r4\\),r26.*.*$gdb_prompt $" { pass "copr indexed load tests" }-re "$gdb_prompt $" { fail "copr indexed load tests" }timeout { fail "(timeout) copr indexed load tests " }}send_gdb "x/8i copr_indexing_store\n"gdb_expect {-re ".*cstwx,4 r26,r5\\(sr0,r4\\).*.*cstwx,4,s r26,r5\\(sr0,r4\\).*.*cstwx,4,m r26,r5\\(sr0,r4\\).*.*cstwx,4,sm r26,r5\\(sr0,r4\\).*.*cstdx,4 r26,r5\\(sr0,r4\\).*.*cstdx,4,s r26,r5\\(sr0,r4\\).*.*cstdx,4,m r26,r5\\(sr0,r4\\).*.*cstdx,4,sm r26,r5\\(sr0,r4\\).*.*$gdb_prompt $" { pass "copr indexed store tests" }-re "$gdb_prompt $" { fail "copr indexed store tests" }timeout { fail "(timeout) copr indexed load tests " }}send_gdb "x/12i copr_short_memory\n"gdb_expect {-re ".*cldws,4 0\\(sr0,r4\\),r26.*.*cldws,4,mb 0\\(sr0,r4\\),r26.*.*cldws,4,ma 0\\(sr0,r4\\),r26.*.*cldds,4 0\\(sr0,r4\\),r26.*.*cldds,4,mb 0\\(sr0,r4\\),r26.*.*cldds,4,ma 0\\(sr0,r4\\),r26.*.*cstws,4 r26,0\\(sr0,r4\\).*.*cstws,4,mb r26,0\\(sr0,r4\\).*.*cstws,4,ma r26,0\\(sr0,r4\\).*.*cstds,4 r26,0\\(sr0,r4\\).*.*cstds,4,mb r26,0\\(sr0,r4\\).*.*cstds,4,ma r26,0\\(sr0,r4\\).*.*$gdb_prompt $" { pass "copr short memory tests" }-re "$gdb_prompt $" { fail "copr short memory tests" }timeout { fail "(timeout) copr short memory tests " }}}proc fmemLRbug_tests { } {global gdb_promptglobal hexglobal decimalsend_gdb "x/12i fmemLRbug_tests_1\n"gdb_expect {-re ".*fstws fr6R,0\\(sr0,r26\\).*.*fstws fr6,4\\(sr0,r26\\).*.*fstws fr6,8\\(sr0,r26\\).*.*fstds fr6,0\\(sr0,r26\\).*.*fstds fr6,4\\(sr0,r26\\).*.*fstds fr6,8\\(sr0,r26\\).*.*fldws 0\\(sr0,r26\\),fr6R.*.*fldws 4\\(sr0,r26\\),fr6.*.*fldws 8\\(sr0,r26\\),fr6.*.*fldds 0\\(sr0,r26\\),fr6.*.*fldds 4\\(sr0,r26\\),fr6.*.*fldds 8\\(sr0,r26\\),fr6.*.*$gdb_prompt $" { pass "fmem LR register selector tests (part1)" }-re "$gdb_prompt $" { fail "fmem LR register selector tests (part1)" }timeout { fail "(timeout) fmem LR register selector tests (part1)" }}send_gdb "x/12i fmemLRbug_tests_2\n"gdb_expect {-re ".*fstws fr6R,0\\(sr0,r26\\).*.*fstws fr6,4\\(sr0,r26\\).*.*fstws fr6,8\\(sr0,r26\\).*.*fstds fr6,0\\(sr0,r26\\).*.*fstds fr6,4\\(sr0,r26\\).*.*fstds fr6,8\\(sr0,r26\\).*.*fldws 0\\(sr0,r26\\),fr6R.*.*fldws 4\\(sr0,r26\\),fr6.*.*fldws 8\\(sr0,r26\\),fr6.*.*fldds 0\\(sr0,r26\\),fr6.*.*fldds 4\\(sr0,r26\\),fr6.*.*fldds 8\\(sr0,r26\\),fr6.*.*$gdb_prompt $" { pass "fmem LR register selector tests (part2)" }-re "$gdb_prompt $" { fail "fmem LR register selector tests (part2)" }timeout { fail "(timeout) fmem LR register selector tests (part2)" }}send_gdb "x/12i fmemLRbug_tests_3\n"gdb_expect {-re ".*fstwx fr6R,r25\\(sr0,r26\\).*.*fstwx fr6,r25\\(sr0,r26\\).*.*fstwx fr6,r25\\(sr0,r26\\).*.*fstdx fr6,r25\\(sr0,r26\\).*.*fstdx fr6,r25\\(sr0,r26\\).*.*fstdx fr6,r25\\(sr0,r26\\).*.*fldwx r25\\(sr0,r26\\),fr6R.*.*fldwx r25\\(sr0,r26\\),fr6.*.*fldwx r25\\(sr0,r26\\),fr6.*.*flddx r25\\(sr0,r26\\),fr6.*.*flddx r25\\(sr0,r26\\),fr6.*.*flddx r25\\(sr0,r26\\),fr6.*.*$gdb_prompt $" { pass "fmem LR register selector tests (part3)" }-re "$gdb_prompt $" { fail "fmem LR register selector tests (part3)" }timeout { fail "(timeout) fmem LR register selector tests (part3)" }}send_gdb "x/12i fmemLRbug_tests_4\n"gdb_expect {-re ".*fstwx fr6R,r25\\(sr0,r26\\).*.*fstwx fr6,r25\\(sr0,r26\\).*.*fstwx fr6,r25\\(sr0,r26\\).*.*fstdx fr6,r25\\(sr0,r26\\).*.*fstdx fr6,r25\\(sr0,r26\\).*.*fstdx fr6,r25\\(sr0,r26\\).*.*fldwx r25\\(sr0,r26\\),fr6R.*.*fldwx r25\\(sr0,r26\\),fr6.*.*fldwx r25\\(sr0,r26\\),fr6.*.*flddx r25\\(sr0,r26\\),fr6.*.*flddx r25\\(sr0,r26\\),fr6.*.*flddx r25\\(sr0,r26\\),fr6.*.*$gdb_prompt $" { pass "fmem LR register selector tests (part4)" }-re "$gdb_prompt $" { fail "fmem LR register selector tests (part4)" }timeout { fail "(timeout) fmem LR register selector tests (part4)" }}}# Start with a fresh gdb.gdb_exitgdb_startgdb_reinitialize_dir $srcdir/$subdirgdb_load $binfileall_integer_memory_testsall_immediate_testsall_branch_testsall_integer_computational_testsall_system_control_testsall_fpu_memory_testsall_fpu_computational_testsall_fpu_comparison_testsall_special_testsall_sfu_testsall_copr_testsall_copr_mem_tests# Regression test for a bug Tege found.fmemLRbug_tests
