diff options
Diffstat (limited to 'gdb/testsuite/gdb.disasm/sh3.exp')
-rw-r--r-- | gdb/testsuite/gdb.disasm/sh3.exp | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.disasm/sh3.exp b/gdb/testsuite/gdb.disasm/sh3.exp new file mode 100644 index 0000000..f8c2053 --- /dev/null +++ b/gdb/testsuite/gdb.disasm/sh3.exp @@ -0,0 +1,125 @@ +# Copyright (C) 1992 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 +} + +set prms_id 0 +set bug_id 0 + +set binfile "sh3" +set srcfile $binfile.s + +proc all_fp_move_and_load_tests { } { + global prompt + global hex + global decimal + + send "x/9i fp_move_and_load_tests\n" + expect { + -re " +.*fmov.s\t@r0,fr0.* +.*fmov.s\tfr0,@r0.* +.*fmov.s\t@r0\\+,fr0.* +.*fmov.s\tfr0,@-r0.* +.*fmov.s\t@\\(r0,r0\\),fr0.* +.*fmov.s\tfr0,@\\(r0,r0\\).* +.*fmov\tfr0,fr1.* +.*fldi0\tfr0.* +.*fldi1\tfr0.* +.*$prompt $" { pass "fp_move_and_load_tests" } + -re "$prompt $" { fail "fp_move_and_load_tests" } + timeout { fail "(timeout) fp_move_and_load_tests" } + } +} + +proc all_fp_arithmetic_tests { } { + global prompt + global hex + global decimal + + send "x/13i fp_arithmetic_tests\n" + expect { + -re " +.*fadd\tfr0,fr1.* +.*fsub\tfr0,fr1.* +.*fmul\tfr0,fr1.* +.*fdiv\tfr0,fr1.* +.*fmac\tfr0,fr1.* +.*fcmp/eq\tfr0,fr1.* +.*fcmp/gt\tfr0,fr1.* +.*ftst/nan\tfr0.* +.*fneg\tfr0.* +.*fabs\tfr0.* +.*fsqrt\tfr0.* +.*float\tfpul,fr0.* +.*ftrc\tfr0,fpul.* +.*$prompt $" { pass "fp_arithmetic_tests" } + -re "$prompt $" { fail "fp_arithmetic_tests" } + timeout { fail "(timeout) fp_arithmetic_tests" } + } +} + +proc all_fp_misc_tests { } { + global prompt + global hex + global decimal + + send "x/10i fp_misc_tests\n" + expect { + -re " +.*fsts\tfpul,fr0.* +.*flds\tfr0,fpul.* +.*lds\tr3,fpul.* +.*lds\\.l\t@r3\\+,fpul.* +.*lds\tr3,fpscr.* +.*lds\\.l\t@r3\\+,fpscr.* +.*sts\tfpul,r3.* +.*sts\\.l\tfpul,@-r3.* +.*sts\tfpscr,r3.* +.*sts\\.l\tfpscr,@-r3.* +.*$prompt $" { pass "fp_misc_tests" } + -re "$prompt $" { fail "fp_misc_tests" } + timeout { fail "(timeout) fp_misc_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 + + all_fp_move_and_load_tests + all_fp_arithmetic_tests + + # SH3E V1.6 manual doesn't have the right bit patterns for some of + # the new insns, so we don't know how to assemble them correctly. + setup_xfail "sh*-*-*" + all_fp_misc_tests +} |