diff options
Diffstat (limited to 'gdb/testsuite/gdb.disasm/sh3.exp')
-rw-r--r-- | gdb/testsuite/gdb.disasm/sh3.exp | 123 |
1 files changed, 123 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..6c82f91 --- /dev/null +++ b/gdb/testsuite/gdb.disasm/sh3.exp @@ -0,0 +1,123 @@ +# 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 "sh3*-*-*"] { + verbose "Tests ignored for all but sh3 based targets." + return +} + +set prms_id 0 +set bug_id 0 + +set testfile "sh3" +set srcfile ${srcdir}/${subdir}/${testfile}.s +set binfile ${objdir}/${subdir}/${testfile} +if { [gdb_compile "${srcfile}" "${binfile}" executable ""] != "" } { + gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." +} + +proc all_fp_move_and_load_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/9i fp_move_and_load_tests\n" + gdb_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.* +.*$gdb_prompt $" { pass "fp_move_and_load_tests" } + -re "$gdb_prompt $" { fail "fp_move_and_load_tests" } + timeout { fail "(timeout) fp_move_and_load_tests" } + } +} + +proc all_fp_arithmetic_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/13i fp_arithmetic_tests\n" + gdb_expect { + -re " +.*fadd\tfr0,fr1.* +.*fsub\tfr0,fr1.* +.*fmul\tfr0,fr1.* +.*fdiv\tfr0,fr1.* +.*fmac\tfr0,fr0,fr1.* +.*fcmp/eq\tfr0,fr1.* +.*fcmp/gt\tfr0,fr1.* +.*ftst/nan\tfr0.* +.*fneg\tfr0.* +.*fabs\tfr0.* +.*fsqrt\tfr0.* +.*float\tfpul,fr0.* +.*ftrc\tfr0,fpul.* +.*$gdb_prompt $" { pass "fp_arithmetic_tests" } + -re "$gdb_prompt $" { fail "fp_arithmetic_tests" } + timeout { fail "(timeout) fp_arithmetic_tests" } + } +} + +proc all_fp_misc_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/10i fp_misc_tests\n" + gdb_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.* +.*$gdb_prompt $" { pass "fp_misc_tests" } + -re "$gdb_prompt $" { fail "fp_misc_tests" } + timeout { fail "(timeout) fp_misc_tests" } + } +} + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load $binfile + +all_fp_move_and_load_tests +all_fp_arithmetic_tests +all_fp_misc_tests + |