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
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\
.*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\
.*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" }
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" }
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" }
}
-# 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
all_fpu_computational_tests
all_fpu_comparison_tests
all_special_tests
+ all_sfu_tests
+ all_copr_tests
+ all_copr_mem_tests
}