* gdb.disasm/sh3.s: Source for sh3 disassembler tests.
authorJeff Law <law@redhat.com>
Mon, 7 Aug 1995 08:48:22 +0000 (08:48 +0000)
committerJeff Law <law@redhat.com>
Mon, 7 Aug 1995 08:48:22 +0000 (08:48 +0000)
* gdb.disasm/sh3.exp: Run the sh3 disassembler tests.
* gdb.disasm/configure.in (sh-*-*): Use sh3.mt makefile fragment.
* gdb.disasm/sh3.mt: Makefile fragment for sh3 ests.

sh3e disassembler tests.  Sanitized out for now.

gdb/testsuite/.Sanitize
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.disasm/.Sanitize
gdb/testsuite/gdb.disasm/configure.in
gdb/testsuite/gdb.disasm/sh3.exp [new file with mode: 0644]
gdb/testsuite/gdb.disasm/sh3.mt [new file with mode: 0644]
gdb/testsuite/gdb.disasm/sh3.s [new file with mode: 0644]

index 6576c686efc4bcb43a8a6a8d2414e39980c642ca..fec24fbcb3bdc6b8216f605ee48548e48aca2983 100644 (file)
@@ -45,5 +45,25 @@ Things-to-lose:
 # done.
 
 Do-last:
+sh3e_files="ChangeLog"
+if ( echo $* | grep keep\-sh3e > /dev/null ) ; then
+       if [ -n "${verbose}" ] ; then
+               echo Keeping sh3e stuff in $sh3e_files.
+       fi
+else
+       if [ -n "${verbose}" ]; then
+               echo -n Cleaning sh3e in `pwd`:
+       fi
+       for f in $sh3e_files ; do
+               if [ -n "${verbose}" ] ; then
+                       echo -n " " $f
+               fi
+               sed -e '/start\-sanitize\-sh3e/,/end\-sanitize\-sh3e/d' -e '/ xl /d' < $f > new
+               if [ -n "${safe}" ] ; then
+                       mv $f .Recover
+               fi
+               mv new $f
+       done
+fi
 
 # eof
index 150b8955f58ad3b624547833b7b3cad020ad2d2c..b5b9ce98f3f048e1c87e2a0ef5957c9f0000d0c3 100644 (file)
@@ -1,3 +1,12 @@
+start-sanitize-sh3e
+Mon Aug  7 02:43:28 1995  Jeff Law  (law@snake.cs.utah.edu)
+
+       * gdb.disasm/sh3.s: Source for sh3 disassembler tests.
+       * gdb.disasm/sh3.exp: Run the sh3 disassembler tests.
+       * gdb.disasm/configure.in (sh-*-*): Use sh3.mt makefile fragment.
+       * gdb.disasm/sh3.mt: Makefile fragment for sh3 ests.
+
+end-sanitize-sh3e
 Sun Aug  6 16:52:29 1995  Fred Fish  <fnf@cygnus.com>
 
        * gdb.base/corefile.exp:  Change xfail for backtrace in
index 0fab3f2aa574176e0a3406c94ab21203c472e38b..21d98cea864673c1bf92703f6e062a38ea625f85 100644 (file)
@@ -30,11 +30,35 @@ hppa.mt
 hppa.s
 
 Things-to-lose:
-
+sh3.exp
+sh3.mt
+sh3.s
 
 # The lines between the "Do-last:" line and the end of the file
 # are executed as a /bin/sh shell script after everything else is
 # done.
 
 Do-last:
+
+sh3e_files="configure.in"
+if ( echo $* | grep keep\-sh3e > /dev/null ) ; then
+       if [ -n "${verbose}" ] ; then
+               echo Keeping sh3e stuff in $sh3e_files.
+       fi
+else
+       if [ -n "${verbose}" ]; then
+               echo -n Cleaning sh3e in `pwd`:
+       fi
+       for f in $sh3e_files ; do
+               if [ -n "${verbose}" ] ; then
+                       echo -n " " $f
+               fi
+               sed -e '/start\-sanitize\-sh3e/,/end\-sanitize\-sh3e/d' -e '/ xl /d' < $f > new
+               if [ -n "${safe}" ] ; then
+                       mv $f .Recover
+               fi
+               mv new $f
+       done
+fi
+
 # eof
index 76e66184cbe773dfc815b71c5399bb27c456198b..f8d95fdc514cb76980568ba720e2d7434b314227 100644 (file)
@@ -13,5 +13,8 @@ srcname="gdb.disasm"
 case "${target}" in
 
 hppa*-*-*)             target_makefile_frag=hppa.mt ;;
+# start-sanitize-sh3e
+sh*-*-*)               target_makefile_frag=sh3.mt ;;
+# end-sanitize-sh3e
 
 esac
diff --git a/gdb/testsuite/gdb.disasm/sh3.exp b/gdb/testsuite/gdb.disasm/sh3.exp
new file mode 100644 (file)
index 0000000..f8c2053
--- /dev/null
@@ -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
+}
diff --git a/gdb/testsuite/gdb.disasm/sh3.mt b/gdb/testsuite/gdb.disasm/sh3.mt
new file mode 100644 (file)
index 0000000..fa79d8c
--- /dev/null
@@ -0,0 +1,5 @@
+EXECUTABLES = sh3
+sh3: sh3.s
+       $(CC) -c $(srcdir)/sh3.s
+       $(CC) -o sh3 sh3.o
+
diff --git a/gdb/testsuite/gdb.disasm/sh3.s b/gdb/testsuite/gdb.disasm/sh3.s
new file mode 100644 (file)
index 0000000..7b7a52e
--- /dev/null
@@ -0,0 +1,54 @@
+       .file   "test.c"
+       .data
+
+! Hitachi SH cc1 (cygnus-2.7.1-950728) arguments: -O -fpeephole
+! -ffunction-cse -freg-struct-return -fdelayed-branch -fcommon -fgnu-linker
+
+gcc2_compiled.:
+___gnu_compiled_c:
+       .text
+       .align 2
+       .global _fp_move_and_load_tests
+       .global _fp_arithmetic_tests
+       .global _fp_misc_tests
+       .global _main
+
+_main:
+_fp_move_and_load_tests:
+       fmov.s  @r0,fr0
+       fmov.s  fr0,@r0
+       fmov.s  @r0+,fr0
+       fmov.s  fr0,@-r0
+       fmov.s  @(r0,r0),fr0
+       fmov.s  fr0,@(r0,r0)
+       fmov    fr0,fr1
+       fldi0   fr0
+       fldi1   fr0
+
+_fp_arithmetic_tests:
+       fadd    fr0,fr1
+       fsub    fr0,fr1
+       fmul    fr0,fr1
+       fdiv    fr0,fr1
+       fmac    fr0,fr1
+       fcmp/eq fr0,fr1
+       fcmp/gt fr0,fr1
+       ftst/nan        fr0
+       fneg    fr0
+       fabs    fr0
+       fsqrt   fr0
+       float   fpul,fr0
+       ftrc    fr0,fpul
+
+_fp_misc_tests:
+       fsts    fpul,fr0
+       flds    fr0,fpul
+       lds     r3,fpul
+       lds.l   @r3+,fpul
+       lds     r3,fpscr
+       lds.l   @r3+,fpscr
+       sts     fpul,r3
+       sts.l   fpul,@-r3
+       sts     fpscr,r3
+       sts.l   fpscr,@-r3
+