diff options
Diffstat (limited to 'gdb/testsuite/gdb.disasm')
-rw-r--r-- | gdb/testsuite/gdb.disasm/Makefile.in | 20 | ||||
-rw-r--r-- | gdb/testsuite/gdb.disasm/configure | 899 | ||||
-rw-r--r-- | gdb/testsuite/gdb.disasm/configure.in | 15 | ||||
-rw-r--r-- | gdb/testsuite/gdb.disasm/hppa.exp | 1403 | ||||
-rw-r--r-- | gdb/testsuite/gdb.disasm/hppa.s | 1738 | ||||
-rw-r--r-- | gdb/testsuite/gdb.disasm/mn10200.exp | 478 | ||||
-rw-r--r-- | gdb/testsuite/gdb.disasm/mn10200.s | 217 | ||||
-rw-r--r-- | gdb/testsuite/gdb.disasm/mn10300.exp | 569 | ||||
-rw-r--r-- | gdb/testsuite/gdb.disasm/mn10300.s | 300 | ||||
-rw-r--r-- | gdb/testsuite/gdb.disasm/sh3.exp | 123 | ||||
-rw-r--r-- | gdb/testsuite/gdb.disasm/sh3.s | 54 |
11 files changed, 5816 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.disasm/Makefile.in b/gdb/testsuite/gdb.disasm/Makefile.in new file mode 100644 index 00000000000..ab228ddf935 --- /dev/null +++ b/gdb/testsuite/gdb.disasm/Makefile.in @@ -0,0 +1,20 @@ +#### host, target, and site specific Makefile frags come in here. + +VPATH = @srcdir@ +srcdir = @srcdir@ + +.PHONY: all clean mostlyclean distclean realclean + +all: + @echo "Nothing to be done for all..." + +clean mostlyclean: + -rm -f *.o *.diff *~ *.bad core sh3 hppa mn10200 mn10300 + +distclean maintainer-clean realclean: clean + -rm -f Makefile config.status config.log + +Makefile: $(srcdir)/Makefile.in $(srcdir)/configure.in + $(SHELL) ./config.status --recheck + + diff --git a/gdb/testsuite/gdb.disasm/configure b/gdb/testsuite/gdb.disasm/configure new file mode 100644 index 00000000000..0e6cbf20749 --- /dev/null +++ b/gdb/testsuite/gdb.disasm/configure @@ -0,0 +1,899 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.12.1 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.12.1" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=sh3.s + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +CC=${CC-cc} + +ac_aux_dir= +for ac_dir in `cd $srcdir;pwd`/../../.. $srcdir/`cd $srcdir;pwd`/../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in `cd $srcdir;pwd`/../../.. $srcdir/`cd $srcdir;pwd`/../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Do some error checking and defaulting for the host and target type. +# The inputs are: +# configure --host=HOST --target=TARGET --build=BUILD NONOPT +# +# The rules are: +# 1. You are not allowed to specify --host, --target, and nonopt at the +# same time. +# 2. Host defaults to nonopt. +# 3. If nonopt is not specified, then host defaults to the current host, +# as determined by config.guess. +# 4. Target and build default to nonopt. +# 5. If nonopt is not specified, then target and build default to host. + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +case $host---$target---$nonopt in +NONE---*---* | *---NONE---* | *---*---NONE) ;; +*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; +esac + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:573: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + +echo $ac_n "checking target system type""... $ac_c" 1>&6 +echo "configure:594: checking target system type" >&5 + +target_alias=$target +case "$target_alias" in +NONE) + case $nonopt in + NONE) target_alias=$host_alias ;; + *) target_alias=$nonopt ;; + esac ;; +esac + +target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` +target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$target" 1>&6 + +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:612: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + +test "$host_alias" != "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set) 2>&1 | grep ac_space` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.12.1" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@CC@%$CC%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@target@%$target%g +s%@target_alias@%$target_alias%g +s%@target_cpu@%$target_cpu%g +s%@target_vendor@%$target_vendor%g +s%@target_os@%$target_os%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/gdb/testsuite/gdb.disasm/configure.in b/gdb/testsuite/gdb.disasm/configure.in new file mode 100644 index 00000000000..508636ff2c6 --- /dev/null +++ b/gdb/testsuite/gdb.disasm/configure.in @@ -0,0 +1,15 @@ +dnl Process this file file with autoconf to produce a configure script. +dnl This file is a shell script fragment that supplies the information +dnl necessary to tailor a template configure script into the configure +dnl script appropriate for this directory. For more information, check +dnl any existing configure script. + +AC_PREREQ(2.5) +AC_INIT(sh3.s) + +CC=${CC-cc} +AC_SUBST(CC) +AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../../..) +AC_CANONICAL_SYSTEM + +AC_OUTPUT(Makefile) diff --git a/gdb/testsuite/gdb.disasm/hppa.exp b/gdb/testsuite/gdb.disasm/hppa.exp new file mode 100644 index 00000000000..4c679a9c63c --- /dev/null +++ b/gdb/testsuite/gdb.disasm/hppa.exp @@ -0,0 +1,1403 @@ + +# 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 "hppa*-*-*"] { + verbose "Tests ignored for all but hppa based targets." + return +} + +set prms_id 0 +set bug_id 0 + +set testfile "hppa" +set srcfile ${srcdir}/${subdir}/${testfile}.s +set 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_prompt + global hex + global decimal + + send_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_prompt + global hex + global decimal + + send_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_prompt + global hex + global decimal + + send_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_prompt + global hex + global decimal + + set 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_prompt + global hex + global decimal + + send_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_prompt + global hex + global decimal + + send_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_prompt + global hex + global decimal + + send_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_prompt + global hex + global decimal + + set 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_prompt + global hex + global decimal + + send_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_prompt + global hex + global decimal + + send_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_prompt + global hex + global decimal + + send_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_prompt + global hex + global decimal + + send_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_prompt + global hex + global decimal + + send_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_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load $binfile + +all_integer_memory_tests +all_immediate_tests +all_branch_tests +all_integer_computational_tests +all_system_control_tests +all_fpu_memory_tests +all_fpu_computational_tests +all_fpu_comparison_tests +all_special_tests +all_sfu_tests +all_copr_tests +all_copr_mem_tests + +# Regression test for a bug Tege found. +fmemLRbug_tests diff --git a/gdb/testsuite/gdb.disasm/hppa.s b/gdb/testsuite/gdb.disasm/hppa.s new file mode 100644 index 00000000000..593d8bfefee --- /dev/null +++ b/gdb/testsuite/gdb.disasm/hppa.s @@ -0,0 +1,1738 @@ + .SPACE $PRIVATE$ + .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31 + .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82 + .SPACE $TEXT$ + .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44 + .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY + .IMPORT $global$,DATA + .IMPORT $$dyncall,MILLICODE +; gcc_compiled.: + .SPACE $TEXT$ + .SUBSPA $CODE$ + + .align 4 + .EXPORT integer_memory_tests,CODE + .EXPORT integer_indexing_load,CODE + .EXPORT integer_load_short_memory,CODE + .EXPORT integer_store_short_memory,CODE + .EXPORT immediate_tests,CODE + .EXPORT branch_tests_1,CODE + .EXPORT branch_tests_2,CODE + .EXPORT movb_tests,CODE + .EXPORT movb_nullified_tests,CODE + .EXPORT movib_tests,CODE + .EXPORT movib_nullified_tests,CODE + .EXPORT comb_tests_1,CODE + .EXPORT comb_tests_2,CODE + .EXPORT comb_nullified_tests_1,CODE + .EXPORT comb_nullified_tests_2,CODE + .EXPORT comib_tests_1,CODE + .EXPORT comib_tests_2,CODE + .EXPORT comib_nullified_tests_1,CODE + .EXPORT comib_nullified_tests_2,CODE + .EXPORT addb_tests_1,CODE + .EXPORT addb_tests_2,CODE + .EXPORT addb_nullified_tests_1,CODE + .EXPORT addb_nullified_tests_2,CODE + .EXPORT addib_tests_1,CODE + .EXPORT addib_tests_2,CODE + .EXPORT addib_nullified_tests_1,CODE + .EXPORT addib_nullified_tests_2,CODE + .EXPORT bb_tests,CODE + .EXPORT add_tests,CODE + .EXPORT addl_tests,CODE + .EXPORT addo_tests,CODE + .EXPORT addc_tests,CODE + .EXPORT addco_tests,CODE + .EXPORT sh1add_tests,CODE + .EXPORT sh1addl_tests,CODE + .EXPORT sh1addo_tests,CODE + .EXPORT sh2add_tests,CODE + .EXPORT sh2addl_tests,CODE + .EXPORT sh2addo_tests,CODE + .EXPORT sh3add_tests,CODE + .EXPORT sh3addl_tests,CODE + .EXPORT sh3addo_tests,CODE + .EXPORT sub_tests,CODE + .EXPORT subo_tests,CODE + .EXPORT subb_tests,CODE + .EXPORT subbo_tests,CODE + .EXPORT subt_tests,CODE + .EXPORT subto_tests,CODE + .EXPORT ds_tests,CODE + .EXPORT comclr_tests,CODE + .EXPORT or_tests,CODE + .EXPORT xor_tests,CODE + .EXPORT and_tests,CODE + .EXPORT andcm_tests,CODE + .EXPORT uxor_tests,CODE + .EXPORT uaddcm_tests,CODE + .EXPORT uaddcmt_tests,CODE + .EXPORT dcor_tests,CODE + .EXPORT idcor_tests,CODE + .EXPORT addi_tests,CODE + .EXPORT addio_tests,CODE + .EXPORT addit_tests,CODE + .EXPORT addito_tests,CODE + .EXPORT subi_tests,CODE + .EXPORT subio_tests,CODE + .EXPORT comiclr_tests,CODE + .EXPORT vshd_tests,CODE + .EXPORT shd_tests,CODE + .EXPORT extru_tests,CODE + .EXPORT extrs_tests,CODE + .EXPORT zdep_tests,CODE + .EXPORT dep_tests,CODE + .EXPORT vextru_tests,CODE + .EXPORT vextrs_tests,CODE + .EXPORT zvdep_tests,CODE + .EXPORT vdep_tests,CODE + .EXPORT vdepi_tests,CODE + .EXPORT zvdepi_tests,CODE + .EXPORT depi_tests,CODE + .EXPORT zdepi_tests,CODE + .EXPORT system_control_tests,CODE + .EXPORT probe_tests,CODE + .EXPORT lpa_tests,CODE + .EXPORT purge_tests,CODE + .EXPORT insert_tests,CODE + .EXPORT fpu_misc_tests,CODE + .EXPORT fpu_memory_indexing_tests,CODE + .EXPORT fpu_short_memory_tests,CODE + .EXPORT fcpy_tests,CODE + .EXPORT fabs_tests,CODE + .EXPORT fsqrt_tests,CODE + .EXPORT frnd_tests,CODE + .EXPORT fcnvff_tests,CODE + .EXPORT fcnvxf_tests,CODE + .EXPORT fcnvfx_tests,CODE + .EXPORT fcnvfxt_tests,CODE + .EXPORT fadd_tests,CODE + .EXPORT fsub_tests,CODE + .EXPORT fmpy_tests,CODE + .EXPORT fdiv_tests,CODE + .EXPORT frem_tests,CODE + .EXPORT fcmp_sgl_tests_1,CODE + .EXPORT fcmp_sgl_tests_2,CODE + .EXPORT fcmp_sgl_tests_3,CODE + .EXPORT fcmp_sgl_tests_4,CODE + .EXPORT fcmp_dbl_tests_1,CODE + .EXPORT fcmp_dbl_tests_2,CODE + .EXPORT fcmp_dbl_tests_3,CODE + .EXPORT fcmp_dbl_tests_4,CODE + .EXPORT fcmp_quad_tests_1,CODE + .EXPORT fcmp_quad_tests_2,CODE + .EXPORT fcmp_quad_tests_3,CODE + .EXPORT fcmp_quad_tests_4,CODE + .EXPORT fmpy_addsub_tests,CODE + .EXPORT xmpyu_tests,CODE + .EXPORT special_tests,CODE + .EXPORT sfu_tests,CODE + .EXPORT copr_tests,CODE + .EXPORT copr_indexing_load,CODE + .EXPORT copr_indexing_store,CODE + .EXPORT copr_short_memory,CODE + .EXPORT fmemLRbug_tests_1,CODE + .EXPORT fmemLRbug_tests_2,CODE + .EXPORT fmemLRbug_tests_3,CODE + .EXPORT fmemLRbug_tests_4,CODE + .EXPORT main,CODE + .EXPORT main,ENTRY,PRIV_LEV=3,RTNVAL=GR +main + .PROC + .CALLINFO FRAME=64,NO_CALLS,SAVE_SP + .ENTRY + copy %r4,%r1 + copy %r30,%r4 + stwm %r1,64(0,%r30) +; First memory reference instructions. +; Should try corner cases for each field extraction. +; Should deal with s == 0 case somehow?!? +integer_memory_tests + ldw 0(0,%r4),%r26 + ldh 0(0,%r4),%r26 + ldb 0(0,%r4),%r26 + stw %r26,0(0,%r4) + sth %r26,0(0,%r4) + stb %r26,0(0,%r4) + +; Should make sure pre/post modes are recognized correctly. + ldwm 0(0,%r4),%r26 + stwm %r26,0(0,%r4) + +integer_indexing_load + ldwx %r5(0,%r4),%r26 + ldwx,s %r5(0,%r4),%r26 + ldwx,m %r5(0,%r4),%r26 + ldwx,sm %r5(0,%r4),%r26 + ldhx %r5(0,%r4),%r26 + ldhx,s %r5(0,%r4),%r26 + ldhx,m %r5(0,%r4),%r26 + ldhx,sm %r5(0,%r4),%r26 + ldbx %r5(0,%r4),%r26 + ldbx,s %r5(0,%r4),%r26 + ldbx,m %r5(0,%r4),%r26 + ldbx,sm %r5(0,%r4),%r26 + ldwax %r5(%r4),%r26 + ldwax,s %r5(%r4),%r26 + ldwax,m %r5(%r4),%r26 + ldwax,sm %r5(%r4),%r26 + ldcwx %r5(0,%r4),%r26 + ldcwx,s %r5(0,%r4),%r26 + ldcwx,m %r5(0,%r4),%r26 + ldcwx,sm %r5(0,%r4),%r26 + +integer_load_short_memory + ldws 0(0,%r4),%r26 + ldws,mb 0(0,%r4),%r26 + ldws,ma 0(0,%r4),%r26 + ldhs 0(0,%r4),%r26 + ldhs,mb 0(0,%r4),%r26 + ldhs,ma 0(0,%r4),%r26 + ldbs 0(0,%r4),%r26 + ldbs,mb 0(0,%r4),%r26 + ldbs,ma 0(0,%r4),%r26 + ldwas 0(%r4),%r26 + ldwas,mb 0(%r4),%r26 + ldwas,ma 0(%r4),%r26 + ldcws 0(0,%r4),%r26 + ldcws,mb 0(0,%r4),%r26 + ldcws,ma 0(0,%r4),%r26 + +integer_store_short_memory + stws %r26,0(0,%r4) + stws,mb %r26,0(0,%r4) + stws,ma %r26,0(0,%r4) + sths %r26,0(0,%r4) + sths,mb %r26,0(0,%r4) + sths,ma %r26,0(0,%r4) + stbs %r26,0(0,%r4) + stbs,mb %r26,0(0,%r4) + stbs,ma %r26,0(0,%r4) + stwas %r26,0(%r4) + stwas,mb %r26,0(%r4) + stwas,ma %r26,0(%r4) + stbys %r26,0(0,%r4) + stbys,b %r26,0(0,%r4) + stbys,e %r26,0(0,%r4) + stbys,b,m %r26,0(0,%r4) + stbys,e,m %r26,0(0,%r4) + +; Immediate instructions. +immediate_tests + ldo 5(%r26),%r26 + ldil L%0xdeadbeef,%r26 + addil L%0xdeadbeef,%r5 + +; Lots of branch instructions. +; blr with %r0 as return pointer should really be just br <target>, +; but the assemblers can't handle it. +branch_tests_1 + bl main,%r2 + bl,n main,%r2 + b main + b,n main + gate main,%r2 + gate,n main,%r2 + blr %r4,%r2 + blr,n %r4,%r2 + blr %r4,%r0 + blr,n %r4,%r0 +branch_tests_2 + bv 0(%r2) + bv,n 0(%r2) + be 0x1234(%sr1,%r2) + be,n 0x1234(%sr1,%r2) + ble 0x1234(%sr1,%r2) + ble,n 0x1234(%sr1,%r2) + +; GAS can't assemble movb,n or movib,n. +movb_tests + 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 +movb_nullified_tests + 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 + +movib_tests + 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 +movib_nullified_tests + 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 + +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,<<= %r0,%r4,comb_tests_1 + comb,sv %r0,%r4,comb_tests_1 + comb,od %r0,%r4,comb_tests_1 + +comb_tests_2 + comb,tr %r0,%r4,comb_tests_2 + comb,<> %r0,%r4,comb_tests_2 + comb,>= %r0,%r4,comb_tests_2 + comb,> %r0,%r4,comb_tests_2 + comb,>>= %r0,%r4,comb_tests_2 + comb,>> %r0,%r4,comb_tests_2 + comb,nsv %r0,%r4,comb_tests_2 + comb,ev %r0,%r4,comb_tests_2 + +comb_nullified_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,<<=,n %r0,%r4,comb_tests_1 + comb,sv,n %r0,%r4,comb_tests_1 + comb,od,n %r0,%r4,comb_tests_1 + +comb_nullified_tests_2 + comb,tr,n %r0,%r4,comb_tests_2 + comb,<>,n %r0,%r4,comb_tests_2 + comb,>=,n %r0,%r4,comb_tests_2 + comb,>,n %r0,%r4,comb_tests_2 + comb,>>=,n %r0,%r4,comb_tests_2 + comb,>>,n %r0,%r4,comb_tests_2 + comb,nsv,n %r0,%r4,comb_tests_2 + comb,ev,n %r0,%r4,comb_tests_2 + +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,<<= 0,%r4,comib_tests_1 + comib,sv 0,%r4,comib_tests_1 + comib,od 0,%r4,comib_tests_1 + +comib_tests_2 + comib,tr 0,%r4,comib_tests_2 + comib,<> 0,%r4,comib_tests_2 + comib,>= 0,%r4,comib_tests_2 + comib,> 0,%r4,comib_tests_2 + comib,>>= 0,%r4,comib_tests_2 + comib,>> 0,%r4,comib_tests_2 + comib,nsv 0,%r4,comib_tests_2 + comib,ev 0,%r4,comib_tests_2 + +comib_nullified_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,<<=,n 0,%r4,comib_tests_1 + comib,sv,n 0,%r4,comib_tests_1 + comib,od,n 0,%r4,comib_tests_1 + +comib_nullified_tests_2 + comib,tr,n 0,%r4,comib_tests_2 + comib,<>,n 0,%r4,comib_tests_2 + comib,>=,n 0,%r4,comib_tests_2 + comib,>,n 0,%r4,comib_tests_2 + comib,>>=,n 0,%r4,comib_tests_2 + comib,>>,n 0,%r4,comib_tests_2 + comib,nsv,n 0,%r4,comib_tests_2 + comib,ev,n 0,%r4,comib_tests_2 + +addb_tests_1 + 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 + +addb_tests_2 + addb,tr %r1,%r4,addb_tests_2 + addb,<> %r1,%r4,addb_tests_2 + addb,>= %r1,%r4,addb_tests_2 + addb,> %r1,%r4,addb_tests_2 + addb,uv %r1,%r4,addb_tests_2 + addb,vnz %r1,%r4,addb_tests_2 + addb,nsv %r1,%r4,addb_tests_2 + addb,ev %r1,%r4,addb_tests_2 + +addb_nullified_tests_1 + 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 + +addb_nullified_tests_2 + addb,tr,n %r1,%r4,addb_tests_2 + addb,<>,n %r1,%r4,addb_tests_2 + addb,>=,n %r1,%r4,addb_tests_2 + addb,>,n %r1,%r4,addb_tests_2 + addb,uv,n %r1,%r4,addb_tests_2 + addb,vnz,n %r1,%r4,addb_tests_2 + addb,nsv,n %r1,%r4,addb_tests_2 + addb,ev,n %r1,%r4,addb_tests_2 + +addib_tests_1 + 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 + +addib_tests_2 + addib,tr -1,%r4,addib_tests_2 + addib,<> -1,%r4,addib_tests_2 + addib,>= -1,%r4,addib_tests_2 + addib,> -1,%r4,addib_tests_2 + addib,uv -1,%r4,addib_tests_2 + addib,vnz -1,%r4,addib_tests_2 + addib,nsv -1,%r4,addib_tests_2 + addib,ev -1,%r4,addib_tests_2 + +addib_nullified_tests_1 + 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 + +addib_nullified_tests_2 + addib,tr,n -1,%r4,addib_tests_2 + addib,<>,n -1,%r4,addib_tests_2 + addib,>=,n -1,%r4,addib_tests_2 + addib,>,n -1,%r4,addib_tests_2 + addib,uv,n -1,%r4,addib_tests_2 + addib,vnz,n -1,%r4,addib_tests_2 + addib,nsv,n -1,%r4,addib_tests_2 + addib,ev,n -1,%r4,addib_tests_2 + + +; Needs to check lots of stuff (like corner bit cases) +bb_tests + 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 + +; Computational instructions +add_tests + add %r4,%r5,%r6 + add,= %r4,%r5,%r6 + add,< %r4,%r5,%r6 + add,<= %r4,%r5,%r6 + add,nuv %r4,%r5,%r6 + add,znv %r4,%r5,%r6 + add,sv %r4,%r5,%r6 + add,od %r4,%r5,%r6 + add,tr %r4,%r5,%r6 + add,<> %r4,%r5,%r6 + add,>= %r4,%r5,%r6 + add,> %r4,%r5,%r6 + add,uv %r4,%r5,%r6 + add,vnz %r4,%r5,%r6 + add,nsv %r4,%r5,%r6 + add,ev %r4,%r5,%r6 + +addl_tests + addl %r4,%r5,%r6 + addl,= %r4,%r5,%r6 + addl,< %r4,%r5,%r6 + addl,<= %r4,%r5,%r6 + addl,nuv %r4,%r5,%r6 + addl,znv %r4,%r5,%r6 + addl,sv %r4,%r5,%r6 + addl,od %r4,%r5,%r6 + addl,tr %r4,%r5,%r6 + addl,<> %r4,%r5,%r6 + addl,>= %r4,%r5,%r6 + addl,> %r4,%r5,%r6 + addl,uv %r4,%r5,%r6 + addl,vnz %r4,%r5,%r6 + addl,nsv %r4,%r5,%r6 + addl,ev %r4,%r5,%r6 + +addo_tests + addo %r4,%r5,%r6 + addo,= %r4,%r5,%r6 + addo,< %r4,%r5,%r6 + addo,<= %r4,%r5,%r6 + addo,nuv %r4,%r5,%r6 + addo,znv %r4,%r5,%r6 + addo,sv %r4,%r5,%r6 + addo,od %r4,%r5,%r6 + addo,tr %r4,%r5,%r6 + addo,<> %r4,%r5,%r6 + addo,>= %r4,%r5,%r6 + addo,> %r4,%r5,%r6 + addo,uv %r4,%r5,%r6 + addo,vnz %r4,%r5,%r6 + addo,nsv %r4,%r5,%r6 + addo,ev %r4,%r5,%r6 + +addc_tests + addc %r4,%r5,%r6 + addc,= %r4,%r5,%r6 + addc,< %r4,%r5,%r6 + addc,<= %r4,%r5,%r6 + addc,nuv %r4,%r5,%r6 + addc,znv %r4,%r5,%r6 + addc,sv %r4,%r5,%r6 + addc,od %r4,%r5,%r6 + addc,tr %r4,%r5,%r6 + addc,<> %r4,%r5,%r6 + addc,>= %r4,%r5,%r6 + addc,> %r4,%r5,%r6 + addc,uv %r4,%r5,%r6 + addc,vnz %r4,%r5,%r6 + addc,nsv %r4,%r5,%r6 + addc,ev %r4,%r5,%r6 + +addco_tests + addco %r4,%r5,%r6 + addco,= %r4,%r5,%r6 + addco,< %r4,%r5,%r6 + addco,<= %r4,%r5,%r6 + addco,nuv %r4,%r5,%r6 + addco,znv %r4,%r5,%r6 + addco,sv %r4,%r5,%r6 + addco,od %r4,%r5,%r6 + addco,tr %r4,%r5,%r6 + addco,<> %r4,%r5,%r6 + addco,>= %r4,%r5,%r6 + addco,> %r4,%r5,%r6 + addco,uv %r4,%r5,%r6 + addco,vnz %r4,%r5,%r6 + addco,nsv %r4,%r5,%r6 + addco,ev %r4,%r5,%r6 + +sh1add_tests + sh1add %r4,%r5,%r6 + sh1add,= %r4,%r5,%r6 + sh1add,< %r4,%r5,%r6 + sh1add,<= %r4,%r5,%r6 + sh1add,nuv %r4,%r5,%r6 + sh1add,znv %r4,%r5,%r6 + sh1add,sv %r4,%r5,%r6 + sh1add,od %r4,%r5,%r6 + sh1add,tr %r4,%r5,%r6 + sh1add,<> %r4,%r5,%r6 + sh1add,>= %r4,%r5,%r6 + sh1add,> %r4,%r5,%r6 + sh1add,uv %r4,%r5,%r6 + sh1add,vnz %r4,%r5,%r6 + sh1add,nsv %r4,%r5,%r6 + sh1add,ev %r4,%r5,%r6 + +sh1addl_tests + sh1addl %r4,%r5,%r6 + sh1addl,= %r4,%r5,%r6 + sh1addl,< %r4,%r5,%r6 + sh1addl,<= %r4,%r5,%r6 + sh1addl,nuv %r4,%r5,%r6 + sh1addl,znv %r4,%r5,%r6 + sh1addl,sv %r4,%r5,%r6 + sh1addl,od %r4,%r5,%r6 + sh1addl,tr %r4,%r5,%r6 + sh1addl,<> %r4,%r5,%r6 + sh1addl,>= %r4,%r5,%r6 + sh1addl,> %r4,%r5,%r6 + sh1addl,uv %r4,%r5,%r6 + sh1addl,vnz %r4,%r5,%r6 + sh1addl,nsv %r4,%r5,%r6 + sh1addl,ev %r4,%r5,%r6 + +sh1addo_tests + sh1addo %r4,%r5,%r6 + sh1addo,= %r4,%r5,%r6 + sh1addo,< %r4,%r5,%r6 + sh1addo,<= %r4,%r5,%r6 + sh1addo,nuv %r4,%r5,%r6 + sh1addo,znv %r4,%r5,%r6 + sh1addo,sv %r4,%r5,%r6 + sh1addo,od %r4,%r5,%r6 + sh1addo,tr %r4,%r5,%r6 + sh1addo,<> %r4,%r5,%r6 + sh1addo,>= %r4,%r5,%r6 + sh1addo,> %r4,%r5,%r6 + sh1addo,uv %r4,%r5,%r6 + sh1addo,vnz %r4,%r5,%r6 + sh1addo,nsv %r4,%r5,%r6 + sh1addo,ev %r4,%r5,%r6 + + +sh2add_tests + sh2add %r4,%r5,%r6 + sh2add,= %r4,%r5,%r6 + sh2add,< %r4,%r5,%r6 + sh2add,<= %r4,%r5,%r6 + sh2add,nuv %r4,%r5,%r6 + sh2add,znv %r4,%r5,%r6 + sh2add,sv %r4,%r5,%r6 + sh2add,od %r4,%r5,%r6 + sh2add,tr %r4,%r5,%r6 + sh2add,<> %r4,%r5,%r6 + sh2add,>= %r4,%r5,%r6 + sh2add,> %r4,%r5,%r6 + sh2add,uv %r4,%r5,%r6 + sh2add,vnz %r4,%r5,%r6 + sh2add,nsv %r4,%r5,%r6 + sh2add,ev %r4,%r5,%r6 + +sh2addl_tests + sh2addl %r4,%r5,%r6 + sh2addl,= %r4,%r5,%r6 + sh2addl,< %r4,%r5,%r6 + sh2addl,<= %r4,%r5,%r6 + sh2addl,nuv %r4,%r5,%r6 + sh2addl,znv %r4,%r5,%r6 + sh2addl,sv %r4,%r5,%r6 + sh2addl,od %r4,%r5,%r6 + sh2addl,tr %r4,%r5,%r6 + sh2addl,<> %r4,%r5,%r6 + sh2addl,>= %r4,%r5,%r6 + sh2addl,> %r4,%r5,%r6 + sh2addl,uv %r4,%r5,%r6 + sh2addl,vnz %r4,%r5,%r6 + sh2addl,nsv %r4,%r5,%r6 + sh2addl,ev %r4,%r5,%r6 + +sh2addo_tests + sh2addo %r4,%r5,%r6 + sh2addo,= %r4,%r5,%r6 + sh2addo,< %r4,%r5,%r6 + sh2addo,<= %r4,%r5,%r6 + sh2addo,nuv %r4,%r5,%r6 + sh2addo,znv %r4,%r5,%r6 + sh2addo,sv %r4,%r5,%r6 + sh2addo,od %r4,%r5,%r6 + sh2addo,tr %r4,%r5,%r6 + sh2addo,<> %r4,%r5,%r6 + sh2addo,>= %r4,%r5,%r6 + sh2addo,> %r4,%r5,%r6 + sh2addo,uv %r4,%r5,%r6 + sh2addo,vnz %r4,%r5,%r6 + sh2addo,nsv %r4,%r5,%r6 + sh2addo,ev %r4,%r5,%r6 + + +sh3add_tests + sh3add %r4,%r5,%r6 + sh3add,= %r4,%r5,%r6 + sh3add,< %r4,%r5,%r6 + sh3add,<= %r4,%r5,%r6 + sh3add,nuv %r4,%r5,%r6 + sh3add,znv %r4,%r5,%r6 + sh3add,sv %r4,%r5,%r6 + sh3add,od %r4,%r5,%r6 + sh3add,tr %r4,%r5,%r6 + sh3add,<> %r4,%r5,%r6 + sh3add,>= %r4,%r5,%r6 + sh3add,> %r4,%r5,%r6 + sh3add,uv %r4,%r5,%r6 + sh3add,vnz %r4,%r5,%r6 + sh3add,nsv %r4,%r5,%r6 + sh3add,ev %r4,%r5,%r6 + +sh3addl_tests + sh3addl %r4,%r5,%r6 + sh3addl,= %r4,%r5,%r6 + sh3addl,< %r4,%r5,%r6 + sh3addl,<= %r4,%r5,%r6 + sh3addl,nuv %r4,%r5,%r6 + sh3addl,znv %r4,%r5,%r6 + sh3addl,sv %r4,%r5,%r6 + sh3addl,od %r4,%r5,%r6 + sh3addl,tr %r4,%r5,%r6 + sh3addl,<> %r4,%r5,%r6 + sh3addl,>= %r4,%r5,%r6 + sh3addl,> %r4,%r5,%r6 + sh3addl,uv %r4,%r5,%r6 + sh3addl,vnz %r4,%r5,%r6 + sh3addl,nsv %r4,%r5,%r6 + sh3addl,ev %r4,%r5,%r6 + +sh3addo_tests + sh3addo %r4,%r5,%r6 + sh3addo,= %r4,%r5,%r6 + sh3addo,< %r4,%r5,%r6 + sh3addo,<= %r4,%r5,%r6 + sh3addo,nuv %r4,%r5,%r6 + sh3addo,znv %r4,%r5,%r6 + sh3addo,sv %r4,%r5,%r6 + sh3addo,od %r4,%r5,%r6 + sh3addo,tr %r4,%r5,%r6 + sh3addo,<> %r4,%r5,%r6 + sh3addo,>= %r4,%r5,%r6 + sh3addo,> %r4,%r5,%r6 + sh3addo,uv %r4,%r5,%r6 + sh3addo,vnz %r4,%r5,%r6 + sh3addo,nsv %r4,%r5,%r6 + sh3addo,ev %r4,%r5,%r6 + + +sub_tests + sub %r4,%r5,%r6 + sub,= %r4,%r5,%r6 + sub,< %r4,%r5,%r6 + sub,<= %r4,%r5,%r6 + sub,<< %r4,%r5,%r6 + sub,<<= %r4,%r5,%r6 + sub,sv %r4,%r5,%r6 + sub,od %r4,%r5,%r6 + sub,tr %r4,%r5,%r6 + sub,<> %r4,%r5,%r6 + sub,>= %r4,%r5,%r6 + sub,> %r4,%r5,%r6 + sub,>>= %r4,%r5,%r6 + sub,>> %r4,%r5,%r6 + sub,nsv %r4,%r5,%r6 + sub,ev %r4,%r5,%r6 + +subo_tests + subo %r4,%r5,%r6 + subo,= %r4,%r5,%r6 + subo,< %r4,%r5,%r6 + subo,<= %r4,%r5,%r6 + subo,<< %r4,%r5,%r6 + subo,<<= %r4,%r5,%r6 + subo,sv %r4,%r5,%r6 + subo,od %r4,%r5,%r6 + subo,tr %r4,%r5,%r6 + subo,<> %r4,%r5,%r6 + subo,>= %r4,%r5,%r6 + subo,> %r4,%r5,%r6 + subo,>>= %r4,%r5,%r6 + subo,>> %r4,%r5,%r6 + subo,nsv %r4,%r5,%r6 + subo,ev %r4,%r5,%r6 + +subb_tests + subb %r4,%r5,%r6 + subb,= %r4,%r5,%r6 + subb,< %r4,%r5,%r6 + subb,<= %r4,%r5,%r6 + subb,<< %r4,%r5,%r6 + subb,<<= %r4,%r5,%r6 + subb,sv %r4,%r5,%r6 + subb,od %r4,%r5,%r6 + subb,tr %r4,%r5,%r6 + subb,<> %r4,%r5,%r6 + subb,>= %r4,%r5,%r6 + subb,> %r4,%r5,%r6 + subb,>>= %r4,%r5,%r6 + subb,>> %r4,%r5,%r6 + subb,nsv %r4,%r5,%r6 + subb,ev %r4,%r5,%r6 + +subbo_tests + subbo %r4,%r5,%r6 + subbo,= %r4,%r5,%r6 + subbo,< %r4,%r5,%r6 + subbo,<= %r4,%r5,%r6 + subbo,<< %r4,%r5,%r6 + subbo,<<= %r4,%r5,%r6 + subbo,sv %r4,%r5,%r6 + subbo,od %r4,%r5,%r6 + subbo,tr %r4,%r5,%r6 + subbo,<> %r4,%r5,%r6 + subbo,>= %r4,%r5,%r6 + subbo,> %r4,%r5,%r6 + subbo,>>= %r4,%r5,%r6 + subbo,>> %r4,%r5,%r6 + subbo,nsv %r4,%r5,%r6 + subbo,ev %r4,%r5,%r6 + +subt_tests + subt %r4,%r5,%r6 + subt,= %r4,%r5,%r6 + subt,< %r4,%r5,%r6 + subt,<= %r4,%r5,%r6 + subt,<< %r4,%r5,%r6 + subt,<<= %r4,%r5,%r6 + subt,sv %r4,%r5,%r6 + subt,od %r4,%r5,%r6 + subt,tr %r4,%r5,%r6 + subt,<> %r4,%r5,%r6 + subt,>= %r4,%r5,%r6 + subt,> %r4,%r5,%r6 + subt,>>= %r4,%r5,%r6 + subt,>> %r4,%r5,%r6 + subt,nsv %r4,%r5,%r6 + subt,ev %r4,%r5,%r6 + +subto_tests + subto %r4,%r5,%r6 + subto,= %r4,%r5,%r6 + subto,< %r4,%r5,%r6 + subto,<= %r4,%r5,%r6 + subto,<< %r4,%r5,%r6 + subto,<<= %r4,%r5,%r6 + subto,sv %r4,%r5,%r6 + subto,od %r4,%r5,%r6 + subto,tr %r4,%r5,%r6 + subto,<> %r4,%r5,%r6 + subto,>= %r4,%r5,%r6 + subto,> %r4,%r5,%r6 + subto,>>= %r4,%r5,%r6 + subto,>> %r4,%r5,%r6 + subto,nsv %r4,%r5,%r6 + subto,ev %r4,%r5,%r6 + +ds_tests + ds %r4,%r5,%r6 + ds,= %r4,%r5,%r6 + ds,< %r4,%r5,%r6 + ds,<= %r4,%r5,%r6 + ds,<< %r4,%r5,%r6 + ds,<<= %r4,%r5,%r6 + ds,sv %r4,%r5,%r6 + ds,od %r4,%r5,%r6 + ds,tr %r4,%r5,%r6 + ds,<> %r4,%r5,%r6 + ds,>= %r4,%r5,%r6 + ds,> %r4,%r5,%r6 + ds,>>= %r4,%r5,%r6 + ds,>> %r4,%r5,%r6 + ds,nsv %r4,%r5,%r6 + ds,ev %r4,%r5,%r6 + +comclr_tests + comclr %r4,%r5,%r6 + comclr,= %r4,%r5,%r6 + comclr,< %r4,%r5,%r6 + comclr,<= %r4,%r5,%r6 + comclr,<< %r4,%r5,%r6 + comclr,<<= %r4,%r5,%r6 + comclr,sv %r4,%r5,%r6 + comclr,od %r4,%r5,%r6 + comclr,tr %r4,%r5,%r6 + comclr,<> %r4,%r5,%r6 + comclr,>= %r4,%r5,%r6 + comclr,> %r4,%r5,%r6 + comclr,>>= %r4,%r5,%r6 + comclr,>> %r4,%r5,%r6 + comclr,nsv %r4,%r5,%r6 + comclr,ev %r4,%r5,%r6 + +or_tests + or %r4,%r5,%r6 + or,= %r4,%r5,%r6 + or,< %r4,%r5,%r6 + or,<= %r4,%r5,%r6 + or,od %r4,%r5,%r6 + or,tr %r4,%r5,%r6 + or,<> %r4,%r5,%r6 + or,>= %r4,%r5,%r6 + or,> %r4,%r5,%r6 + or,ev %r4,%r5,%r6 +xor_tests + xor %r4,%r5,%r6 + xor,= %r4,%r5,%r6 + xor,< %r4,%r5,%r6 + xor,<= %r4,%r5,%r6 + xor,od %r4,%r5,%r6 + xor,tr %r4,%r5,%r6 + xor,<> %r4,%r5,%r6 + xor,>= %r4,%r5,%r6 + xor,> %r4,%r5,%r6 + xor,ev %r4,%r5,%r6 + +and_tests + and %r4,%r5,%r6 + and,= %r4,%r5,%r6 + and,< %r4,%r5,%r6 + and,<= %r4,%r5,%r6 + and,od %r4,%r5,%r6 + and,tr %r4,%r5,%r6 + and,<> %r4,%r5,%r6 + and,>= %r4,%r5,%r6 + and,> %r4,%r5,%r6 + and,ev %r4,%r5,%r6 + +andcm_tests + andcm %r4,%r5,%r6 + andcm,= %r4,%r5,%r6 + andcm,< %r4,%r5,%r6 + andcm,<= %r4,%r5,%r6 + andcm,od %r4,%r5,%r6 + andcm,tr %r4,%r5,%r6 + andcm,<> %r4,%r5,%r6 + andcm,>= %r4,%r5,%r6 + andcm,> %r4,%r5,%r6 + andcm,ev %r4,%r5,%r6 + + +uxor_tests + uxor %r4,%r5,%r6 + uxor,sbz %r4,%r5,%r6 + uxor,shz %r4,%r5,%r6 + uxor,sdc %r4,%r5,%r6 + uxor,sbc %r4,%r5,%r6 + uxor,shc %r4,%r5,%r6 + uxor,tr %r4,%r5,%r6 + uxor,nbz %r4,%r5,%r6 + uxor,nhz %r4,%r5,%r6 + uxor,ndc %r4,%r5,%r6 + uxor,nbc %r4,%r5,%r6 + uxor,nhc %r4,%r5,%r6 + +uaddcm_tests + uaddcm %r4,%r5,%r6 + uaddcm,sbz %r4,%r5,%r6 + uaddcm,shz %r4,%r5,%r6 + uaddcm,sdc %r4,%r5,%r6 + uaddcm,sbc %r4,%r5,%r6 + uaddcm,shc %r4,%r5,%r6 + uaddcm,tr %r4,%r5,%r6 + uaddcm,nbz %r4,%r5,%r6 + uaddcm,nhz %r4,%r5,%r6 + uaddcm,ndc %r4,%r5,%r6 + uaddcm,nbc %r4,%r5,%r6 + uaddcm,nhc %r4,%r5,%r6 + +uaddcmt_tests + uaddcmt %r4,%r5,%r6 + uaddcmt,sbz %r4,%r5,%r6 + uaddcmt,shz %r4,%r5,%r6 + uaddcmt,sdc %r4,%r5,%r6 + uaddcmt,sbc %r4,%r5,%r6 + uaddcmt,shc %r4,%r5,%r6 + uaddcmt,tr %r4,%r5,%r6 + uaddcmt,nbz %r4,%r5,%r6 + uaddcmt,nhz %r4,%r5,%r6 + uaddcmt,ndc %r4,%r5,%r6 + uaddcmt,nbc %r4,%r5,%r6 + uaddcmt,nhc %r4,%r5,%r6 + +dcor_tests + dcor %r4,%r5 + dcor,sbz %r4,%r5 + dcor,shz %r4,%r5 + dcor,sdc %r4,%r5 + dcor,sbc %r4,%r5 + dcor,shc %r4,%r5 + dcor,tr %r4,%r5 + dcor,nbz %r4,%r5 + dcor,nhz %r4,%r5 + dcor,ndc %r4,%r5 + dcor,nbc %r4,%r5 + dcor,nhc %r4,%r5 + +idcor_tests + idcor %r4,%r5 + idcor,sbz %r4,%r5 + idcor,shz %r4,%r5 + idcor,sdc %r4,%r5 + idcor,sbc %r4,%r5 + idcor,shc %r4,%r5 + idcor,tr %r4,%r5 + idcor,nbz %r4,%r5 + idcor,nhz %r4,%r5 + idcor,ndc %r4,%r5 + idcor,nbc %r4,%r5 + idcor,nhc %r4,%r5 + +addi_tests + addi 123,%r5,%r6 + addi,= 123,%r5,%r6 + addi,< 123,%r5,%r6 + addi,<= 123,%r5,%r6 + addi,nuv 123,%r5,%r6 + addi,znv 123,%r5,%r6 + addi,sv 123,%r5,%r6 + addi,od 123,%r5,%r6 + addi,tr 123,%r5,%r6 + addi,<> 123,%r5,%r6 + addi,>= 123,%r5,%r6 + addi,> 123,%r5,%r6 + addi,uv 123,%r5,%r6 + addi,vnz 123,%r5,%r6 + addi,nsv 123,%r5,%r6 + addi,ev 123,%r5,%r6 + +addio_tests + addio 123,%r5,%r6 + addio,= 123,%r5,%r6 + addio,< 123,%r5,%r6 + addio,<= 123,%r5,%r6 + addio,nuv 123,%r5,%r6 + addio,znv 123,%r5,%r6 + addio,sv 123,%r5,%r6 + addio,od 123,%r5,%r6 + addio,tr 123,%r5,%r6 + addio,<> 123,%r5,%r6 + addio,>= 123,%r5,%r6 + addio,> 123,%r5,%r6 + addio,uv 123,%r5,%r6 + addio,vnz 123,%r5,%r6 + addio,nsv 123,%r5,%r6 + addio,ev 123,%r5,%r6 + +addit_tests + addit 123,%r5,%r6 + addit,= 123,%r5,%r6 + addit,< 123,%r5,%r6 + addit,<= 123,%r5,%r6 + addit,nuv 123,%r5,%r6 + addit,znv 123,%r5,%r6 + addit,sv 123,%r5,%r6 + addit,od 123,%r5,%r6 + addit,tr 123,%r5,%r6 + addit,<> 123,%r5,%r6 + addit,>= 123,%r5,%r6 + addit,> 123,%r5,%r6 + addit,uv 123,%r5,%r6 + addit,vnz 123,%r5,%r6 + addit,nsv 123,%r5,%r6 + addit,ev 123,%r5,%r6 + +addito_tests + addito 123,%r5,%r6 + addito,= 123,%r5,%r6 + addito,< 123,%r5,%r6 + addito,<= 123,%r5,%r6 + addito,nuv 123,%r5,%r6 + addito,znv 123,%r5,%r6 + addito,sv 123,%r5,%r6 + addito,od 123,%r5,%r6 + addito,tr 123,%r5,%r6 + addito,<> 123,%r5,%r6 + addito,>= 123,%r5,%r6 + addito,> 123,%r5,%r6 + addito,uv 123,%r5,%r6 + addito,vnz 123,%r5,%r6 + addito,nsv 123,%r5,%r6 + addito,ev 123,%r5,%r6 + +subi_tests + subi 123,%r5,%r6 + subi,= 123,%r5,%r6 + subi,< 123,%r5,%r6 + subi,<= 123,%r5,%r6 + subi,<< 123,%r5,%r6 + subi,<<= 123,%r5,%r6 + subi,sv 123,%r5,%r6 + subi,od 123,%r5,%r6 + subi,tr 123,%r5,%r6 + subi,<> 123,%r5,%r6 + subi,>= 123,%r5,%r6 + subi,> 123,%r5,%r6 + subi,>>= 123,%r5,%r6 + subi,>> 123,%r5,%r6 + subi,nsv 123,%r5,%r6 + subi,ev 123,%r5,%r6 + +subio_tests + subio 123,%r5,%r6 + subio,= 123,%r5,%r6 + subio,< 123,%r5,%r6 + subio,<= 123,%r5,%r6 + subio,<< 123,%r5,%r6 + subio,<<= 123,%r5,%r6 + subio,sv 123,%r5,%r6 + subio,od 123,%r5,%r6 + subio,tr 123,%r5,%r6 + subio,<> 123,%r5,%r6 + subio,>= 123,%r5,%r6 + subio,> 123,%r5,%r6 + subio,>>= 123,%r5,%r6 + subio,>> 123,%r5,%r6 + subio,nsv 123,%r5,%r6 + subio,ev 123,%r5,%r6 + +comiclr_tests + comiclr 123,%r5,%r6 + comiclr,= 123,%r5,%r6 + comiclr,< 123,%r5,%r6 + comiclr,<= 123,%r5,%r6 + comiclr,<< 123,%r5,%r6 + comiclr,<<= 123,%r5,%r6 + comiclr,sv 123,%r5,%r6 + comiclr,od 123,%r5,%r6 + comiclr,tr 123,%r5,%r6 + comiclr,<> 123,%r5,%r6 + comiclr,>= 123,%r5,%r6 + comiclr,> 123,%r5,%r6 + comiclr,>>= 123,%r5,%r6 + comiclr,>> 123,%r5,%r6 + comiclr,nsv 123,%r5,%r6 + comiclr,ev 123,%r5,%r6 + +vshd_tests + 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 + +shd_tests + 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 + +extru_tests + extru %r4,5,10,%r6 + extru,= %r4,5,10,%r6 + extru,< %r4,5,10,%r6 + extru,od %r4,5,10,%r6 + extru,tr %r4,5,10,%r6 + extru,<> %r4,5,10,%r6 + extru,>= %r4,5,10,%r6 + extru,ev %r4,5,10,%r6 + +extrs_tests + extrs %r4,5,10,%r6 + extrs,= %r4,5,10,%r6 + extrs,< %r4,5,10,%r6 + extrs,od %r4,5,10,%r6 + extrs,tr %r4,5,10,%r6 + extrs,<> %r4,5,10,%r6 + extrs,>= %r4,5,10,%r6 + extrs,ev %r4,5,10,%r6 + +zdep_tests + zdep %r4,5,10,%r6 + zdep,= %r4,5,10,%r6 + zdep,< %r4,5,10,%r6 + zdep,od %r4,5,10,%r6 + zdep,tr %r4,5,10,%r6 + zdep,<> %r4,5,10,%r6 + zdep,>= %r4,5,10,%r6 + zdep,ev %r4,5,10,%r6 + +dep_tests + dep %r4,5,10,%r6 + dep,= %r4,5,10,%r6 + dep,< %r4,5,10,%r6 + dep,od %r4,5,10,%r6 + dep,tr %r4,5,10,%r6 + dep,<> %r4,5,10,%r6 + dep,>= %r4,5,10,%r6 + dep,ev %r4,5,10,%r6 + +vextru_tests + vextru %r4,5,%r6 + vextru,= %r4,5,%r6 + vextru,< %r4,5,%r6 + vextru,od %r4,5,%r6 + vextru,tr %r4,5,%r6 + vextru,<> %r4,5,%r6 + vextru,>= %r4,5,%r6 + vextru,ev %r4,5,%r6 + +vextrs_tests + vextrs %r4,5,%r6 + vextrs,= %r4,5,%r6 + vextrs,< %r4,5,%r6 + vextrs,od %r4,5,%r6 + vextrs,tr %r4,5,%r6 + vextrs,<> %r4,5,%r6 + vextrs,>= %r4,5,%r6 + vextrs,ev %r4,5,%r6 + +zvdep_tests + zvdep %r4,5,%r6 + zvdep,= %r4,5,%r6 + zvdep,< %r4,5,%r6 + zvdep,od %r4,5,%r6 + zvdep,tr %r4,5,%r6 + zvdep,<> %r4,5,%r6 + zvdep,>= %r4,5,%r6 + zvdep,ev %r4,5,%r6 + + +vdep_tests + vdep %r4,5,%r6 + vdep,= %r4,5,%r6 + vdep,< %r4,5,%r6 + vdep,od %r4,5,%r6 + vdep,tr %r4,5,%r6 + vdep,<> %r4,5,%r6 + vdep,>= %r4,5,%r6 + vdep,ev %r4,5,%r6 + +vdepi_tests + vdepi -1,5,%r6 + vdepi,= -1,5,%r6 + vdepi,< -1,5,%r6 + vdepi,od -1,5,%r6 + vdepi,tr -1,5,%r6 + vdepi,<> -1,5,%r6 + vdepi,>= -1,5,%r6 + vdepi,ev -1,5,%r6 + +zvdepi_tests + zvdepi -1,5,%r6 + zvdepi,= -1,5,%r6 + zvdepi,< -1,5,%r6 + zvdepi,od -1,5,%r6 + zvdepi,tr -1,5,%r6 + zvdepi,<> -1,5,%r6 + zvdepi,>= -1,5,%r6 + zvdepi,ev -1,5,%r6 + +depi_tests + depi -1,4,10,%r6 + depi,= -1,4,10,%r6 + depi,< -1,4,10,%r6 + depi,od -1,4,10,%r6 + depi,tr -1,4,10,%r6 + depi,<> -1,4,10,%r6 + depi,>= -1,4,10,%r6 + depi,ev -1,4,10,%r6 + +zdepi_tests + zdepi -1,4,10,%r6 + zdepi,= -1,4,10,%r6 + zdepi,< -1,4,10,%r6 + zdepi,od -1,4,10,%r6 + zdepi,tr -1,4,10,%r6 + zdepi,<> -1,4,10,%r6 + zdepi,>= -1,4,10,%r6 + zdepi,ev -1,4,10,%r6 + + +system_control_tests + break 5,12 + rfi + rfir + ssm 5,%r4 + rsm 5,%r4 + mtsm %r4 + ldsid (%sr0,%r5),%r4 + mtsp %r4,%sr0 + mtctl %r4,%cr10 + mfsp %sr0,%r4 + mfctl %cr10,%r4 + sync + syncdma + diag 1234 + +probe_tests + prober (%sr0,%r5),%r6,%r7 + proberi (%sr0,%r5),1,%r7 + probew (%sr0,%r5),%r6,%r7 + probewi (%sr0,%r5),1,%r7 + +lpa_tests + lpa %r4(%sr0,%r5),%r6 + lpa,m %r4(%sr0,%r5),%r6 + lha %r4(%sr0,%r5),%r6 + lha,m %r4(%sr0,%r5),%r6 + lci %r4(%sr0,%r5),%r6 + +purge_tests + 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) + +insert_tests + idtlba %r4,(%sr0,%r5) + iitlba %r4,(%sr0,%r5) + idtlbp %r4,(%sr0,%r5) + iitlbp %r4,(%sr0,%r5) + +fpu_misc_tests + ftest + +fpu_memory_indexing_tests + 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) + +fpu_short_memory_tests + 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) + + +fcpy_tests + fcpy,sgl %fr5,%fr10 + fcpy,dbl %fr5,%fr10 + fcpy,quad %fr5,%fr10 + fcpy,sgl %fr20,%fr24 + fcpy,dbl %fr20,%fr24 + +fabs_tests + fabs,sgl %fr5,%fr10 + fabs,dbl %fr5,%fr10 + fabs,quad %fr5,%fr10 + fabs,sgl %fr20,%fr24 + fabs,dbl %fr20,%fr24 + +fsqrt_tests + fsqrt,sgl %fr5,%fr10 + fsqrt,dbl %fr5,%fr10 + fsqrt,quad %fr5,%fr10 + fsqrt,sgl %fr20,%fr24 + fsqrt,dbl %fr20,%fr24 + +frnd_tests + frnd,sgl %fr5,%fr10 + frnd,dbl %fr5,%fr10 + frnd,quad %fr5,%fr10 + frnd,sgl %fr20,%fr24 + frnd,dbl %fr20,%fr24 + +fcnvff_tests + fcnvff,sgl,sgl %fr5,%fr10 + fcnvff,sgl,dbl %fr5,%fr10 + fcnvff,sgl,quad %fr5,%fr10 + fcnvff,dbl,sgl %fr5,%fr10 + fcnvff,dbl,dbl %fr5,%fr10 + fcnvff,dbl,quad %fr5,%fr10 + fcnvff,quad,sgl %fr5,%fr10 + fcnvff,quad,dbl %fr5,%fr10 + fcnvff,quad,quad %fr5,%fr10 + fcnvff,sgl,sgl %fr20,%fr24 + fcnvff,sgl,dbl %fr20,%fr24 + fcnvff,sgl,quad %fr20,%fr24 + fcnvff,dbl,sgl %fr20,%fr24 + fcnvff,dbl,dbl %fr20,%fr24 + fcnvff,dbl,quad %fr20,%fr24 + fcnvff,quad,sgl %fr20,%fr24 + fcnvff,quad,dbl %fr20,%fr24 + fcnvff,quad,quad %fr20,%fr24 + +fcnvxf_tests + fcnvxf,sgl,sgl %fr5,%fr10 + fcnvxf,sgl,dbl %fr5,%fr10 + fcnvxf,sgl,quad %fr5,%fr10 + fcnvxf,dbl,sgl %fr5,%fr10 + fcnvxf,dbl,dbl %fr5,%fr10 + fcnvxf,dbl,quad %fr5,%fr10 + fcnvxf,quad,sgl %fr5,%fr10 + fcnvxf,quad,dbl %fr5,%fr10 + fcnvxf,quad,quad %fr5,%fr10 + fcnvxf,sgl,sgl %fr20,%fr24 + fcnvxf,sgl,dbl %fr20,%fr24 + fcnvxf,sgl,quad %fr20,%fr24 + fcnvxf,dbl,sgl %fr20,%fr24 + fcnvxf,dbl,dbl %fr20,%fr24 + fcnvxf,dbl,quad %fr20,%fr24 + fcnvxf,quad,sgl %fr20,%fr24 + fcnvxf,quad,dbl %fr20,%fr24 + fcnvxf,quad,quad %fr20,%fr24 + +fcnvfx_tests + fcnvfx,sgl,sgl %fr5,%fr10 + fcnvfx,sgl,dbl %fr5,%fr10 + fcnvfx,sgl,quad %fr5,%fr10 + fcnvfx,dbl,sgl %fr5,%fr10 + fcnvfx,dbl,dbl %fr5,%fr10 + fcnvfx,dbl,quad %fr5,%fr10 + fcnvfx,quad,sgl %fr5,%fr10 + fcnvfx,quad,dbl %fr5,%fr10 + fcnvfx,quad,quad %fr5,%fr10 + fcnvfx,sgl,sgl %fr20,%fr24 + fcnvfx,sgl,dbl %fr20,%fr24 + fcnvfx,sgl,quad %fr20,%fr24 + fcnvfx,dbl,sgl %fr20,%fr24 + fcnvfx,dbl,dbl %fr20,%fr24 + fcnvfx,dbl,quad %fr20,%fr24 + fcnvfx,quad,sgl %fr20,%fr24 + fcnvfx,quad,dbl %fr20,%fr24 + fcnvfx,quad,quad %fr20,%fr24 + +fcnvfxt_tests + fcnvfxt,sgl,sgl %fr5,%fr10 + fcnvfxt,sgl,dbl %fr5,%fr10 + fcnvfxt,sgl,quad %fr5,%fr10 + fcnvfxt,dbl,sgl %fr5,%fr10 + fcnvfxt,dbl,dbl %fr5,%fr10 + fcnvfxt,dbl,quad %fr5,%fr10 + fcnvfxt,quad,sgl %fr5,%fr10 + fcnvfxt,quad,dbl %fr5,%fr10 + fcnvfxt,quad,quad %fr5,%fr10 + fcnvfxt,sgl,sgl %fr20,%fr24 + fcnvfxt,sgl,dbl %fr20,%fr24 + fcnvfxt,sgl,quad %fr20,%fr24 + fcnvfxt,dbl,sgl %fr20,%fr24 + fcnvfxt,dbl,dbl %fr20,%fr24 + fcnvfxt,dbl,quad %fr20,%fr24 + fcnvfxt,quad,sgl %fr20,%fr24 + fcnvfxt,quad,dbl %fr20,%fr24 + fcnvfxt,quad,quad %fr20,%fr24 + +fadd_tests + fadd,sgl %fr4,%fr8,%fr12 + fadd,dbl %fr4,%fr8,%fr12 + fadd,quad %fr4,%fr8,%fr12 + fadd,sgl %fr20,%fr24,%fr28 + fadd,dbl %fr20,%fr24,%fr28 + fadd,quad %fr20,%fr24,%fr28 + +fsub_tests + fsub,sgl %fr4,%fr8,%fr12 + fsub,dbl %fr4,%fr8,%fr12 + fsub,quad %fr4,%fr8,%fr12 + fsub,sgl %fr20,%fr24,%fr28 + fsub,dbl %fr20,%fr24,%fr28 + fsub,quad %fr20,%fr24,%fr28 + +fmpy_tests + fmpy,sgl %fr4,%fr8,%fr12 + fmpy,dbl %fr4,%fr8,%fr12 + fmpy,quad %fr4,%fr8,%fr12 + fmpy,sgl %fr20,%fr24,%fr28 + fmpy,dbl %fr20,%fr24,%fr28 + fmpy,quad %fr20,%fr24,%fr28 + +fdiv_tests + fdiv,sgl %fr4,%fr8,%fr12 + fdiv,dbl %fr4,%fr8,%fr12 + fdiv,quad %fr4,%fr8,%fr12 + fdiv,sgl %fr20,%fr24,%fr28 + fdiv,dbl %fr20,%fr24,%fr28 + fdiv,quad %fr20,%fr24,%fr28 + +frem_tests + frem,sgl %fr4,%fr8,%fr12 + frem,dbl %fr4,%fr8,%fr12 + frem,quad %fr4,%fr8,%fr12 + frem,sgl %fr20,%fr24,%fr28 + frem,dbl %fr20,%fr24,%fr28 + frem,quad %fr20,%fr24,%fr28 + +fcmp_sgl_tests_1 + fcmp,sgl,false? %fr4,%fr5 + fcmp,sgl,false %fr4,%fr5 + fcmp,sgl,? %fr4,%fr5 + fcmp,sgl,!<=> %fr4,%fr5 + fcmp,sgl,= %fr4,%fr5 + fcmp,sgl,=T %fr4,%fr5 + fcmp,sgl,?= %fr4,%fr5 + fcmp,sgl,!<> %fr4,%fr5 +fcmp_sgl_tests_2 + fcmp,sgl,!?>= %fr4,%fr5 + fcmp,sgl,< %fr4,%fr5 + fcmp,sgl,?< %fr4,%fr5 + fcmp,sgl,!>= %fr4,%fr5 + fcmp,sgl,!?> %fr4,%fr5 + fcmp,sgl,<= %fr4,%fr5 + fcmp,sgl,?<= %fr4,%fr5 + fcmp,sgl,!> %fr4,%fr5 +fcmp_sgl_tests_3 + fcmp,sgl,!?<= %fr4,%fr5 + fcmp,sgl,> %fr4,%fr5 + fcmp,sgl,?> %fr4,%fr5 + fcmp,sgl,!<= %fr4,%fr5 + fcmp,sgl,!?< %fr4,%fr5 + fcmp,sgl,>= %fr4,%fr5 + fcmp,sgl,?>= %fr4,%fr5 + fcmp,sgl,!< %fr4,%fr5 +fcmp_sgl_tests_4 + fcmp,sgl,!?= %fr4,%fr5 + fcmp,sgl,<> %fr4,%fr5 + fcmp,sgl,!= %fr4,%fr5 + fcmp,sgl,!=T %fr4,%fr5 + fcmp,sgl,!? %fr4,%fr5 + fcmp,sgl,<=> %fr4,%fr5 + fcmp,sgl,true? %fr4,%fr5 + fcmp,sgl,true %fr4,%fr5 + +fcmp_dbl_tests_1 + fcmp,dbl,false? %fr4,%fr5 + fcmp,dbl,false %fr4,%fr5 + fcmp,dbl,? %fr4,%fr5 + fcmp,dbl,!<=> %fr4,%fr5 + fcmp,dbl,= %fr4,%fr5 + fcmp,dbl,=T %fr4,%fr5 + fcmp,dbl,?= %fr4,%fr5 + fcmp,dbl,!<> %fr4,%fr5 +fcmp_dbl_tests_2 + fcmp,dbl,!?>= %fr4,%fr5 + fcmp,dbl,< %fr4,%fr5 + fcmp,dbl,?< %fr4,%fr5 + fcmp,dbl,!>= %fr4,%fr5 + fcmp,dbl,!?> %fr4,%fr5 + fcmp,dbl,<= %fr4,%fr5 + fcmp,dbl,?<= %fr4,%fr5 + fcmp,dbl,!> %fr4,%fr5 +fcmp_dbl_tests_3 + fcmp,dbl,!?<= %fr4,%fr5 + fcmp,dbl,> %fr4,%fr5 + fcmp,dbl,?> %fr4,%fr5 + fcmp,dbl,!<= %fr4,%fr5 + fcmp,dbl,!?< %fr4,%fr5 + fcmp,dbl,>= %fr4,%fr5 + fcmp,dbl,?>= %fr4,%fr5 + fcmp,dbl,!< %fr4,%fr5 +fcmp_dbl_tests_4 + fcmp,dbl,!?= %fr4,%fr5 + fcmp,dbl,<> %fr4,%fr5 + fcmp,dbl,!= %fr4,%fr5 + fcmp,dbl,!=T %fr4,%fr5 + fcmp,dbl,!? %fr4,%fr5 + fcmp,dbl,<=> %fr4,%fr5 + fcmp,dbl,true? %fr4,%fr5 + fcmp,dbl,true %fr4,%fr5 + +fcmp_quad_tests_1 + fcmp,quad,false? %fr4,%fr5 + fcmp,quad,false %fr4,%fr5 + fcmp,quad,? %fr4,%fr5 + fcmp,quad,!<=> %fr4,%fr5 + fcmp,quad,= %fr4,%fr5 + fcmp,quad,=T %fr4,%fr5 + fcmp,quad,?= %fr4,%fr5 + fcmp,quad,!<> %fr4,%fr5 +fcmp_quad_tests_2 + fcmp,quad,!?>= %fr4,%fr5 + fcmp,quad,< %fr4,%fr5 + fcmp,quad,?< %fr4,%fr5 + fcmp,quad,!>= %fr4,%fr5 + fcmp,quad,!?> %fr4,%fr5 + fcmp,quad,<= %fr4,%fr5 + fcmp,quad,?<= %fr4,%fr5 + fcmp,quad,!> %fr4,%fr5 +fcmp_quad_tests_3 + fcmp,quad,!?<= %fr4,%fr5 + fcmp,quad,> %fr4,%fr5 + fcmp,quad,?> %fr4,%fr5 + fcmp,quad,!<= %fr4,%fr5 + fcmp,quad,!?< %fr4,%fr5 + fcmp,quad,>= %fr4,%fr5 + fcmp,quad,?>= %fr4,%fr5 + fcmp,quad,!< %fr4,%fr5 +fcmp_quad_tests_4 + fcmp,quad,!?= %fr4,%fr5 + fcmp,quad,<> %fr4,%fr5 + fcmp,quad,!= %fr4,%fr5 + fcmp,quad,!=T %fr4,%fr5 + fcmp,quad,!? %fr4,%fr5 + fcmp,quad,<=> %fr4,%fr5 + fcmp,quad,true? %fr4,%fr5 + fcmp,quad,true %fr4,%fr5 + +fmpy_addsub_tests + 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 + +xmpyu_tests + xmpyu %fr4,%fr5,%fr6 + +special_tests + gfw %r4(%sr0,%r5) + gfw,m %r4(%sr0,%r5) + gfr %r4(%sr0,%r5) + gfr,m %r4(%sr0,%r5) + +sfu_tests + spop0,4,5 + spop0,4,115 + spop0,4,5,n + spop0,4,115,n + spop1,4,5 5 + spop1,4,115 5 + spop1,4,5,n 5 + spop1,4,115,n 5 + spop2,4,5 5 + spop2,4,115 5 + spop2,4,5,n 5 + spop2,4,115,n 5 + spop3,4,5 5,6 + spop3,4,115 5,6 + spop3,4,5,n 5,6 + spop3,4,115,n 5,6 + +copr_tests + copr,4,5 + copr,4,115 + copr,4,5,n + copr,4,115,n + +copr_indexing_load + cldwx,4 5(0,4),26 + cldwx,4,s 5(0,4),26 + cldwx,4,m 5(0,4),26 + cldwx,4,sm 5(0,4),26 + clddx,4 5(0,4),26 + clddx,4,s 5(0,4),26 + clddx,4,m 5(0,4),26 + clddx,4,sm 5(0,4),26 + +copr_indexing_store + cstwx,4 26,5(0,4) + cstwx,4,s 26,5(0,4) + cstwx,4,m 26,5(0,4) + cstwx,4,sm 26,5(0,4) + cstdx,4 26,5(0,4) + cstdx,4,s 26,5(0,4) + cstdx,4,m 26,5(0,4) + cstdx,4,sm 26,5(0,4) + +copr_short_memory + cldws,4 0(0,4),26 + cldws,4,mb 0(0,4),26 + cldws,4,ma 0(0,4),26 + cldds,4 0(0,4),26 + cldds,4,mb 0(0,4),26 + cldds,4,ma 0(0,4),26 + cstws,4 26,0(0,4) + cstws,4,mb 26,0(0,4) + cstws,4,ma 26,0(0,4) + cstds,4 26,0(0,4) + cstds,4,mb 26,0(0,4) + cstds,4,ma 26,0(0,4) + +fmemLRbug_tests_1 + fstws %fr6R,0(%r26) + fstws %fr6L,4(%r26) + fstws %fr6,8(%r26) + fstds %fr6R,0(%r26) + fstds %fr6L,4(%r26) + fstds %fr6,8(%r26) + fldws 0(%r26),%fr6R + fldws 4(%r26),%fr6L + fldws 8(%r26),%fr6 + fldds 0(%r26),%fr6R + fldds 4(%r26),%fr6L + fldds 8(%r26),%fr6 + +fmemLRbug_tests_2 + fstws %fr6R,0(%sr0,%r26) + fstws %fr6L,4(%sr0,%r26) + fstws %fr6,8(%sr0,%r26) + fstds %fr6R,0(%sr0,%r26) + fstds %fr6L,4(%sr0,%r26) + fstds %fr6,8(%sr0,%r26) + fldws 0(%sr0,%r26),%fr6R + fldws 4(%sr0,%r26),%fr6L + fldws 8(%sr0,%r26),%fr6 + fldds 0(%sr0,%r26),%fr6R + fldds 4(%sr0,%r26),%fr6L + fldds 8(%sr0,%r26),%fr6 + +fmemLRbug_tests_3 + fstwx %fr6R,%r25(%r26) + fstwx %fr6L,%r25(%r26) + fstwx %fr6,%r25(%r26) + fstdx %fr6R,%r25(%r26) + fstdx %fr6L,%r25(%r26) + fstdx %fr6,%r25(%r26) + fldwx %r25(%r26),%fr6R + fldwx %r25(%r26),%fr6L + fldwx %r25(%r26),%fr6 + flddx %r25(%r26),%fr6R + flddx %r25(%r26),%fr6L + flddx %r25(%r26),%fr6 + +fmemLRbug_tests_4 + fstwx %fr6R,%r25(%sr0,%r26) + fstwx %fr6L,%r25(%sr0,%r26) + fstwx %fr6,%r25(%sr0,%r26) + fstdx %fr6R,%r25(%sr0,%r26) + fstdx %fr6L,%r25(%sr0,%r26) + fstdx %fr6,%r25(%sr0,%r26) + fldwx %r25(%sr0,%r26),%fr6R + fldwx %r25(%sr0,%r26),%fr6L + fldwx %r25(%sr0,%r26),%fr6 + flddx %r25(%sr0,%r26),%fr6R + flddx %r25(%sr0,%r26),%fr6L + flddx %r25(%sr0,%r26),%fr6 + + ldw 0(0,%r4),%r26 + ldw 0(0,%r4),%r26 + ldo 64(%r4),%r30 + ldwm -64(0,%r30),%r4 + bv,n 0(%r2) + .EXIT + .PROCEND diff --git a/gdb/testsuite/gdb.disasm/mn10200.exp b/gdb/testsuite/gdb.disasm/mn10200.exp new file mode 100644 index 00000000000..f9e71df30ab --- /dev/null +++ b/gdb/testsuite/gdb.disasm/mn10200.exp @@ -0,0 +1,478 @@ + +# Copyright (C) 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@cygnus.com) + +if $tracelevel then { + strace $tracelevel +} + +if ![istarget "mn10200*-*-*"] { + verbose "Tests ignored for all but mn10200 based targets." + return +} + +global exec_output +set prms_id 0 +set bug_id 0 + +set testfile "mn10200" +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 add_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/12i add_tests\n" + gdb_expect { + -re " +.*add d1,d2.* +.*add d2,a3.* +.*add a2,d1.* +.*add a3,a2.* +.*add 16,d1.* +.*add 256,d2.* +.*add 131071,d3.* +.*add 16,a1.* +.*add 256,a2.* +.*add 131071,a3.* +.*addc d1,d2.* +.*addnf 16,a2.* +.*$gdb_prompt $" { pass "add tests" } + -re "$gdb_prompt $" { fail "add tests" } + timeout { fail "(timeout) add tests" } + } +} + +proc bcc_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/15i bCC_tests\n" + gdb_expect { + -re " +.*beq 0x\[0-9a-f]+ <bCC_tests>.* +.*bne 0x\[0-9a-f]+ <bCC_tests>.* +.*bgt 0x\[0-9a-f]+ <bCC_tests>.* +.*bge 0x\[0-9a-f]+ <bCC_tests>.* +.*ble 0x\[0-9a-f]+ <bCC_tests>.* +.*blt 0x\[0-9a-f]+ <bCC_tests>.* +.*bhi 0x\[0-9a-f]+ <bCC_tests>.* +.*bcc 0x\[0-9a-f]+ <bCC_tests>.* +.*bls 0x\[0-9a-f]+ <bCC_tests>.* +.*bcs 0x\[0-9a-f]+ <bCC_tests>.* +.*bvc 0x\[0-9a-f]+ <bCC_tests>.* +.*bvs 0x\[0-9a-f]+ <bCC_tests>.* +.*bnc 0x\[0-9a-f]+ <bCC_tests>.* +.*bns 0x\[0-9a-f]+ <bCC_tests>.* +.*bra 0x\[0-9a-f]+ <bCC_tests>.* +.*$gdb_prompt $" { pass "bCC tests" } + -re "$gdb_prompt $" { fail "bCC tests" } + timeout { fail "(timeout) bCC tests" } + } +} + +proc bccx_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/14i bCCx_tests\n" + gdb_expect { + -re " +.*beqx 0x\[0-9a-f]+ <bCCx_tests>.* +.*bnex 0x\[0-9a-f]+ <bCCx_tests>.* +.*bgtx 0x\[0-9a-f]+ <bCCx_tests>.* +.*bgex 0x\[0-9a-f]+ <bCCx_tests>.* +.*blex 0x\[0-9a-f]+ <bCCx_tests>.* +.*bltx 0x\[0-9a-f]+ <bCCx_tests>.* +.*bhix 0x\[0-9a-f]+ <bCCx_tests>.* +.*bccx 0x\[0-9a-f]+ <bCCx_tests>.* +.*blsx 0x\[0-9a-f]+ <bCCx_tests>.* +.*bcsx 0x\[0-9a-f]+ <bCCx_tests>.* +.*bvcx 0x\[0-9a-f]+ <bCCx_tests>.* +.*bvsx 0x\[0-9a-f]+ <bCCx_tests>.* +.*bncx 0x\[0-9a-f]+ <bCCx_tests>.* +.*bnsx 0x\[0-9a-f]+ <bCCx_tests>.* +.*$gdb_prompt $" { pass "bCCx tests" } + -re "$gdb_prompt $" { fail "bCCx tests" } + timeout { fail "(timeout) bCCx tests" } + } +} + +proc bit_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/4 bit_tests\n" + gdb_expect { + -re " +.*btst 64,d1.* +.*btst 8192,d2.* +.*bset d1,\\(a2\\).* +.*bclr d1,\\(a2\\).* +.*$gdb_prompt $" { pass "bit tests" } + -re "$gdb_prompt $" { fail "bit tests" } + timeout { fail "(timeout) bit tests" } + } +} + +proc cmp_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/9i cmp_tests\n" + gdb_expect { + -re " +.*cmp d1,d2.* +.*cmp d2,a3.* +.*cmp a3,d3.* +.*cmp a3,a2.* +.*cmp 16,d3.* +.*cmp 256,d2.* +.*cmp 131071,d1.* +.*cmp 256,a2.* +.*cmp 131071,a1.* +.*$gdb_prompt $" { pass "cmp tests" } + -re "$gdb_prompt $" { fail "cmp tests" } + timeout { fail "(timeout) cmp tests" } + } +} + +proc extend_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/5i extend_tests\n" + gdb_expect { + -re " +.*ext d1.* +.*extx d2.* +.*extxu d3.* +.*extxb d2.* +.*extxbu d1.* +.*$gdb_prompt $" { pass "extend tests" } + -re "$gdb_prompt $" { fail "extend tests" } + timeout { fail "(timeout) extend tests" } + } +} + +proc logical_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/11i logical_tests\n" + gdb_expect { + -re " +.*and d1,d2.* +.*and 127,d2.* +.*and 32767,d3.* +.*and 32767,psw.* +.*or d1,d2.* +.*or 127,d2.* +.*or 32767,d3.* +.*or 32767,psw.* +.*xor d1,d2.* +.*xor 32767,d3.* +.*not d3.* +.*$gdb_prompt $" { pass "logical tests" } + -re "$gdb_prompt $" { fail "logical tests" } + timeout { fail "(timeout) logical tests" } + } +} + +proc mov_tests_1 { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/12i mov_tests_1\n" + gdb_expect { + -re " +.*mov d1,a2.* +.*mov a2,d1.* +.*mov d1,d2.* +.*mov a2,a1.* +.*mov psw,d3.* +.*mov d2,psw.* +.*mov mdr,d1.* +.*mov d2,mdr.* +.*mov \\(a2\\),d1.* +.*mov \\(8,a2\\),d1.* +.*mov \\(256,a2\\),d1.* +.*mov \\(131071,a2\\),d1.* +.*$gdb_prompt $" { pass "mov1 tests" } + -re "$gdb_prompt $" { fail "mov1 tests" } + timeout { fail "(timeout) mov1 tests" } + } +} + +proc mov_tests_2 { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/9 mov_tests_2\n" + gdb_expect { + -re " +.*mov \\(d1,a1\\),d2.* +.*mov \\(0x8000.*\\),d1.* +.*mov \\(0x1ffff.*\\),d1.* +.*mov \\(8,a2\\),a1.* +.*mov \\(256,a2\\),a1.* +.*mov \\(131071,a2\\),a1.* +.*mov \\(d1,a1\\),a2.* +.*mov \\(0x8000.*\\),a1.* +.*mov \\(0x1ffff.*\\),a1.* +.*$gdb_prompt $" { pass "mov2 tests" } + -re "$gdb_prompt $" { fail "mov2 tests" } + timeout { fail "(timeout) mov2 tests" } + } +} + +proc mov_tests_3 { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/10 mov_tests_3\n" + gdb_expect { + -re " +.*mov d1,\\(a2\\).* +.*mov d1,\\(32,a2\\).* +.*mov d1,\\(256,a2\\).* +.*mov d1,\\(131071,a2\\).* +.*mov d1,\\(d2,a2\\).* +.*mov d1,\\(0x80.*\\).* +.*mov d1,\\(0x1ffff.*\\).* +.*mov a1,\\(32,a2\\).* +.*mov a1,\\(256,a2\\).* +.*mov a1,\\(131071,a2\\).* +.*$gdb_prompt $" { pass "mov3 tests" } + -re "$gdb_prompt $" { fail "mov3 tests" } + timeout { fail "(timeout) mov3 tests" } + } +} + +proc mov_tests_4 { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/8 mov_tests_4\n" + gdb_expect { + -re " +.*mov a1,\\(d2,a2\\).* +.*mov a1,\\(0x80.*\\).* +.*mov a1,\\(0x1ffff.*\\).* +.*mov 8,d1.* +.*mov 256,d1.* +.*mov 131071,d1.* +.*mov 256,a1.* +.*mov 131071,a1.* +.*$gdb_prompt $" { pass "mov4 tests" } + -re "$gdb_prompt $" { fail "mov4 tests" } + timeout { fail "(timeout) mov4 tests" } + } +} + +proc movb_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/12 movb_tests\n" + gdb_expect { + -re " +.*movb \\(8,a2\\),d1.* +.*movb \\(256,a2\\),d1.* +.*movb \\(131071,a2\\),d1.* +.*movb \\(d2,a2\\),d3.* +.*movb \\(0x1ffff.*\\),d2.* +.*movb d1,\\(a2\\).* +.*movb d1,\\(8,a2\\).* +.*movb d1,\\(256,a2\\).* +.*movb d1,\\(131071,a2\\).* +.*movb d1,\\(d2,a2\\).* +.*movb d1,\\(0x100.*\\).* +.*movb d1,\\(0x1ffff.*\\).* +.*$gdb_prompt $" { pass "movb tests" } + -re "$gdb_prompt $" { fail "movb tests" } + timeout { fail "(timeout) movb tests" } + } +} + +proc movbu_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/7 movbu_tests\n" + gdb_expect { + -re " +.*movbu \\(a2\\),d1.* +.*movbu \\(8,a2\\),d1.* +.*movbu \\(256,a2\\),d1.* +.*movbu \\(131071,a2\\),d1.* +.*movbu \\(d1,a1\\),d2.* +.*movbu \\(0x8000.*\\),d1.* +.*movbu \\(0x1ffff.*\\),d1.* +.*$gdb_prompt $" { pass "movbu tests" } + -re "$gdb_prompt $" { fail "movbu tests" } + timeout { fail "(timeout) movbu tests" } + } +} + +proc movx_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/6 movx_tests\n" + gdb_expect { + -re " +.*movx \\(8,a2\\),d1.* +.*movx \\(256,a2\\),d1.* +.*movx \\(131071,a2\\),d1.* +.*movx d1,\\(8,a2\\).* +.*movx d1,\\(256,a2\\).* +.*movx d1,\\(131071,a2\\).* +.*$gdb_prompt $" { pass "movx tests" } + -re "$gdb_prompt $" { fail "movx tests" } + timeout { fail "(timeout) movx tests" } + } +} + +proc muldiv_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/3 muldiv_tests\n" + gdb_expect { + -re " +.*mul d1,d2.* +.*mulu d2,d3.* +.*divu d3,d2.* +.*$gdb_prompt $" { pass "muldiv tests" } + -re "$gdb_prompt $" { fail "muldiv tests" } + timeout { fail "(timeout) muldiv tests" } + } +} + +proc misc_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/9 misc_tests\n" + gdb_expect { + -re " +.*jmp 0x\[0-9a-f]+ <main>.* +.*jmp 0x\[0-9a-f]+ <start>.* +.*jmp \\(a2\\).* +.*jsr 0x\[0-9a-f]+ <main>.* +.*jsr 0x\[0-9a-f]+ <start>.* +.*jsr \\(a2\\).* +.*rts.* +.*rti.* +.*nop.* +.*$gdb_prompt $" { pass "misc tests" } + -re "$gdb_prompt $" { fail "misc tests" } + timeout { fail "(timeout) misc tests" } + } +} + +proc shift_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/4i shift_tests\n" + gdb_expect { + -re " +.*asr d2.* +.*lsr d3.* +.*ror d1.* +.*rol d2.* +.*$gdb_prompt $" { pass "shift tests" } + -re "$gdb_prompt $" { fail "shift tests" } + timeout { fail "(timeout) shift tests" } + } +} + +proc sub_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/9i sub_tests\n" + gdb_expect { + -re " +.*sub d1,d2.* +.*sub d2,a3.* +.*sub a3,d3.* +.*sub a3,a2.* +.*sub 32767,d2.* +.*sub 131071,d2.* +.*sub 32767,a2.* +.*sub 131071,a2.* +.*subc d1,d2.* +.*$gdb_prompt $" { pass "sub tests" } + -re "$gdb_prompt $" { fail "sub tests" } + timeout { fail "(timeout) sub tests" } + } +} + +# Start with a fresh gdb. + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load $binfile + +add_tests +bcc_tests +bccx_tests +bit_tests +cmp_tests +extend_tests +logical_tests +mov_tests_1 +mov_tests_2 +mov_tests_3 +mov_tests_4 +movb_tests +movbu_tests +movx_tests +muldiv_tests +misc_tests +shift_tests +sub_tests diff --git a/gdb/testsuite/gdb.disasm/mn10200.s b/gdb/testsuite/gdb.disasm/mn10200.s new file mode 100644 index 00000000000..32357b0401b --- /dev/null +++ b/gdb/testsuite/gdb.disasm/mn10200.s @@ -0,0 +1,217 @@ + .text + .global _main + .global add_tests + .global bCC_tests + .global bCCx_tests + .global bit_tests + .global cmp_tests + .global extend_tests + .global logical_tests + .global mov_tests_1 + .global mov_tests_2 + .global mov_tests_3 + .global mov_tests_4 + .global movb_tests + .global movbu_tests + .global movx_tests + .global misc_tests + .global shift_tests + .global sub_tests + +_main: + nop + +add_tests: + add d1,d2 + add d2,a3 + add a2,d1 + add a3,a2 + add 16,d1 + add 256,d2 + add 131071,d3 + add 16,a1 + add 256,a2 + add 131071,a3 + addc d1,d2 + addnf 16,a2 + +bCC_tests: + beq bCC_tests + bne bCC_tests + bgt bCC_tests + bge bCC_tests + ble bCC_tests + blt bCC_tests + bhi bCC_tests + bcc bCC_tests + bls bCC_tests + bcs bCC_tests + bvc bCC_tests + bvs bCC_tests + bnc bCC_tests + bns bCC_tests + bra bCC_tests + +bCCx_tests: + beqx bCCx_tests + bnex bCCx_tests + bgtx bCCx_tests + bgex bCCx_tests + blex bCCx_tests + bltx bCCx_tests + bhix bCCx_tests + bccx bCCx_tests + blsx bCCx_tests + bcsx bCCx_tests + bvcx bCCx_tests + bvsx bCCx_tests + bncx bCCx_tests + bnsx bCCx_tests + +bit_tests: + btst 64,d1 + btst 8192,d2 + bset d1,(a2) + bclr d1,(a2) + +cmp_tests: + cmp d1,d2 + cmp d2,a3 + cmp a3,d3 + cmp a3,a2 + cmp 16,d3 + cmp 256,d2 + cmp 131071,d1 + cmp 256,a2 + cmp 131071,a1 + +extend_tests: + ext d1 + extx d2 + extxu d3 + extxb d2 + extxbu d1 + +logical_tests: + and d1,d2 + and 127,d2 + and 32767,d3 + and 32767,psw + or d1,d2 + or 127,d2 + or 32767,d3 + or 32767,psw + xor d1,d2 + xor 32767,d3 + not d3 + +mov_tests_1: + mov d1,a2 + mov a2,d1 + mov d1,d2 + mov a2,a1 + mov psw,d3 + mov d2,psw + mov mdr,d1 + mov d2,mdr + mov (a2),d1 + mov (8,a2),d1 + mov (256,a2),d1 + mov (131071,a2),d1 + +mov_tests_2: + mov (d1,a1),d2 + mov (32768),d1 + mov (131071),d1 + mov (8,a2),a1 + mov (256,a2),a1 + mov (131071,a2),a1 + mov (d1,a1),a2 + mov (32768),a1 + mov (131071),a1 + +mov_tests_3: + mov d1,(a2) + mov d1,(32,a2) + mov d1,(256,a2) + mov d1,(131071,a2) + mov d1,(d2,a2) + mov d1,(128) + mov d1,(131071) + mov a1,(32,a2) + mov a1,(256,a2) + mov a1,(131071,a2) + +mov_tests_4: + mov a1,(d2,a2) + mov a1,(128) + mov a1,(131071) + mov 8,d1 + mov 256,d1 + mov 131071,d1 + mov 256,a1 + mov 131071,a1 + +movb_tests: + movb (8,a2),d1 + movb (256,a2),d1 + movb (131071,a2),d1 + movb (d2,a2),d3 + movb (131071),d2 + movb d1,(a2) + movb d1,(8,a2) + movb d1,(256,a2) + movb d1,(131071,a2) + movb d1,(d2,a2) + movb d1,(256) + movb d1,(131071) + +movbu_tests: + movbu (a2),d1 + movbu (8,a2),d1 + movbu (256,a2),d1 + movbu (131071,a2),d1 + movbu (d1,a1),d2 + movbu (32768),d1 + movbu (131071),d1 + +movx_tests: + movx (8,a2),d1 + movx (256,a2),d1 + movx (131071,a2),d1 + movx d1,(8,a2) + movx d1,(256,a2) + movx d1,(131071,a2) + +muldiv_tests: + mul d1,d2 + mulu d2,d3 + divu d3,d2 + +misc_tests: + jmp _main + jmp _start + jmp (a2) + jsr _main + jsr _start + jsr (a2) + rts + rti + nop + +shift_tests: + asr d2 + lsr d3 + ror d1 + rol d2 + +sub_tests: + sub d1,d2 + sub d2,a3 + sub a3,d3 + sub a3,a2 + sub 32767,d2 + sub 131071,d2 + sub 32767,a2 + sub 131071,a2 + subc d1,d2 diff --git a/gdb/testsuite/gdb.disasm/mn10300.exp b/gdb/testsuite/gdb.disasm/mn10300.exp new file mode 100644 index 00000000000..b61a2cb594f --- /dev/null +++ b/gdb/testsuite/gdb.disasm/mn10300.exp @@ -0,0 +1,569 @@ + +# Copyright (C) 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@cygnus.com) + +if $tracelevel then { + strace $tracelevel +} + +if ![istarget "mn10300*-*-*"] { + verbose "Tests ignored for all but mn10300 based targets." + return +} + +global exec_output +set prms_id 0 +set bug_id 0 + +set testfile "mn10300" +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 add_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/14i add_tests\n" + gdb_expect { + -re " +.*add d1,d2.* +.*add d2,a3.* +.*add a3,a2.* +.*add a2,d1.* +.*add 16,d1.* +.*add 256,d2.* +.*add 131071,d3.* +.*add 16,a1.* +.*add 256,a2.* +.*add 131071,a3.* +.*add 16,sp.* +.*add 256,sp.* +.*add 131071,sp.* +.*addc d1,d2.* +.*$gdb_prompt $" { pass "add tests" } + -re "$gdb_prompt $" { fail "add tests" } + timeout { fail "(timeout) add tests" } + } +} + +proc bcc_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/15i bCC_tests\n" + gdb_expect { + -re " +.*beq 0x\[0-9a-f]+ <bCC_tests>.* +.*bne 0x\[0-9a-f]+ <bCC_tests>.* +.*bgt 0x\[0-9a-f]+ <bCC_tests>.* +.*bge 0x\[0-9a-f]+ <bCC_tests>.* +.*ble 0x\[0-9a-f]+ <bCC_tests>.* +.*blt 0x\[0-9a-f]+ <bCC_tests>.* +.*bhi 0x\[0-9a-f]+ <bCC_tests>.* +.*bcc 0x\[0-9a-f]+ <bCC_tests>.* +.*bls 0x\[0-9a-f]+ <bCC_tests>.* +.*bcs 0x\[0-9a-f]+ <bCC_tests>.* +.*bvc 0x\[0-9a-f]+ <bCC_tests>.* +.*bvs 0x\[0-9a-f]+ <bCC_tests>.* +.*bnc 0x\[0-9a-f]+ <bCC_tests>.* +.*bns 0x\[0-9a-f]+ <bCC_tests>.* +.*bra 0x\[0-9a-f]+ <bCC_tests>.* +.*$gdb_prompt $" { pass "bCC tests" } + -re "$gdb_prompt $" { fail "bCC tests" } + timeout { fail "(timeout) bCC tests" } + } +} + +proc bit_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/11i bit_tests\n" + gdb_expect { + -re " +.*btst 64,d1.* +.*btst 8192,d2.* +.*btst 131071,d3.* +.*btst 64,\\(8,a1\\).* +.*btst 64,\\(0x1ffff\\).* +.*bset d1,\\(a2\\).* +.*bset 64,\\(8,a1\\).* +.*bset 64,\\(0x1ffff\\).* +.*bclr d1,\\(a2\\).* +.*bclr 64,\\(8,a1\\).* +.*bclr 64,\\(0x1ffff\\).* +.*$gdb_prompt $" { pass "bit tests" } + -re "$gdb_prompt $" { fail "bit tests" } + timeout { fail "(timeout) bit tests" } + } +} + +proc cmp_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/10i cmp_tests\n" + gdb_expect { + -re " +.*cmp d1,d2.* +.*cmp d2,a3.* +.*cmp a3,d3.* +.*cmp a3,a2.* +.*cmp 16,d3.* +.*cmp 256,d2.* +.*cmp 131071,d1.* +.*cmp 16,a3.* +.*cmp 256,a2.* +.*cmp 131071,a1.* +.*$gdb_prompt $" { pass "cmp tests" } + -re "$gdb_prompt $" { fail "cmp tests" } + timeout { fail "(timeout) cmp tests" } + } +} + +proc extend_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/5i extend_tests\n" + gdb_expect { + -re " +.*ext d1.* +.*extb d2.* +.*extbu d3.* +.*exth d2.* +.*exthu d1.* +.*$gdb_prompt $" { pass "extend tests" } + -re "$gdb_prompt $" { fail "extend tests" } + timeout { fail "(timeout) extend tests" } + } +} + +proc extended_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/13i extended_tests\n" + gdb_expect { + -re " +.*putx d1.* +.*getx d2.* +.*mulq d1,d2.* +.*mulq 16,d2.* +.*mulq 256,d3.* +.*mulq 131071,d3.* +.*mulqu d1,d2.* +.*mulqu 16,d2.* +.*mulqu 256,d3.* +.*mulqu 131071,d3.* +.*sat16 d2,d3.* +.*sat24 d3,d2.* +.*bsch d1,d2.* +.*$gdb_prompt $" { pass "extended tests" } + -re "$gdb_prompt $" { fail "extended tests" } + timeout { fail "(timeout) extended tests" } + } +} + +proc logical_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/14i logical_tests\n" + gdb_expect { + -re " +.*and d1,d2.* +.*and 127,d2.* +.*and 32767,d3.* +.*and 131071,d3.* +.*and 32767,psw.* +.*or d1,d2.* +.*or 127,d2.* +.*or 32767,d3.* +.*or 131071,d3.* +.*or 32767,psw.* +.*xor d1,d2.* +.*xor 32767,d3.* +.*xor 131071,d3.* +.*not d3.* +.*$gdb_prompt $" { pass "logical tests" } + -re "$gdb_prompt $" { fail "logical tests" } + timeout { fail "(timeout) logical tests" } + } +} + +proc loop_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/12i loop_tests\n" + gdb_expect { + -re " +.*leq.* +.*lne.* +.*lgt.* +.*lge.* +.*lle.* +.*llt.* +.*lhi.* +.*lcc.* +.*lls.* +.*lcs.* +.*lra.* +.*setlb.* +.*$gdb_prompt $" { pass "loop tests" } + -re "$gdb_prompt $" { fail "loop tests" } + timeout { fail "(timeout) loop tests" } + } +} + +proc mov_tests_1 { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/16i mov_tests_1\n" + gdb_expect { + -re " +.*mov d1,d2.* +.*mov d1,a2.* +.*mov a2,d1.* +.*mov a2,a1.* +.*mov sp,a2.* +.*mov a1,sp.* +.*mov d2,psw.* +.*mov mdr,d1.* +.*mov d2,mdr.* +.*mov \\(a2\\),d1.* +.*mov \\(8,a2\\),d1.* +.*mov \\(256,a2\\),d1.* +.*mov \\(131071,a2\\),d1.* +.*mov \\(8,sp\\),d1.* +.*mov \\(256,sp\\),d1.* +.*mov psw,d3.* +.*$gdb_prompt $" { pass "mov1 tests" } + -re "$gdb_prompt $" { fail "mov1 tests" } + timeout { fail "(timeout) mov1 tests" } + } +} + +proc mov_tests_2 { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/15i mov_tests_2\n" + gdb_expect { + -re " +.*mov \\(131071,sp\\),d1.* +.*mov \\(d1,a1\\),d2.* +.*mov \\(0x8000.*\\),d1.* +.*mov \\(0x1ffff.*\\),d1.* +.*mov \\(a2\\),a1.* +.*mov \\(8,a2\\),a1.* +.*mov \\(256,a2\\),a1.* +.*mov \\(131071,a2\\),a1.* +.*mov \\(8,sp\\),a1.* +.*mov \\(256,sp\\),a1.* +.*mov \\(131071,sp\\),a1.* +.*mov \\(d1,a1\\),a2.* +.*mov \\(0x8000.*\\),a1.* +.*mov \\(0x1ffff.*\\),a1.* +.*mov \\(32,a1\\),sp.* +.*$gdb_prompt $" { pass "mov2 tests" } + -re "$gdb_prompt $" { fail "mov2 tests" } + timeout { fail "(timeout) mov2 tests" } + } +} + +proc mov_tests_3 { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/15i mov_tests_3\n" + gdb_expect { + -re " +.*mov d1,\\(a2\\).* +.*mov d1,\\(32,a2\\).* +.*mov d1,\\(256,a2\\).* +.*mov d1,\\(131071,a2\\).* +.*mov d1,\\(32,sp\\).* +.*mov d1,\\(32768,sp\\).* +.*mov d1,\\(131071,sp\\).* +.*mov d1,\\(d2,a2\\).* +.*mov d1,\\(0x80.*\\).* +.*mov d1,\\(0x1ffff.*\\).* +.*mov a1,\\(a2\\).* +.*mov a1,\\(32,a2\\).* +.*mov a1,\\(256,a2\\).* +.*mov a1,\\(131071,a2\\).* +.*mov a1,\\(32,sp\\).* +.*$gdb_prompt $" { pass "mov3 tests" } + -re "$gdb_prompt $" { fail "mov3 tests" } + timeout { fail "(timeout) mov3 tests" } + } +} + +proc mov_tests_4 { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/12i mov_tests_4\n" + gdb_expect { + -re " +.*mov a1,\\(32768,sp\\).* +.*mov a1,\\(131071,sp\\).* +.*mov a1,\\(d2,a2\\).* +.*mov a1,\\(0x80.*\\).* +.*mov a1,\\(0x1ffff.*\\).* +.*mov sp,\\(32,a1\\).* +.*mov 8,d1.* +.*mov 256,d1.* +.*mov 131071,d1.* +.*mov 8,a1.* +.*mov 256,a1.* +.*mov 131071,a1.* +.*$gdb_prompt $" { pass "mov4 tests" } + -re "$gdb_prompt $" { fail "mov4 tests" } + timeout { fail "(timeout) mov4 tests" } + } +} + +proc movbu_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/20i movbu_tests\n" + gdb_expect { + -re " +.*movbu \\(a2\\),d1.* +.*movbu \\(8,a2\\),d1.* +.*movbu \\(256,a2\\),d1.* +.*movbu \\(131071,a2\\),d1.* +.*movbu \\(8,sp\\),d1.* +.*movbu \\(256,sp\\),d1.* +.*movbu \\(131071,sp\\),d1.* +.*movbu \\(d1,a1\\),d2.* +.*movbu \\(0x8000.*\\),d1.* +.*movbu \\(0x1ffff.*\\),d1.* +.*movbu d1,\\(a2\\).* +.*movbu d1,\\(32,a2\\).* +.*movbu d1,\\(256,a2\\).* +.*movbu d1,\\(131071,a2\\).* +.*movbu d1,\\(32,sp\\).* +.*movbu d1,\\(32768,sp\\).* +.*movbu d1,\\(131071,sp\\).* +.*movbu d1,\\(d2,a2\\).* +.*movbu d1,\\(0x80.*\\).* +.*movbu d1,\\(0x1ffff.*\\).* +.*$gdb_prompt $" { pass "movbu tests" } + -re "$gdb_prompt $" { fail "movbu tests" } + timeout { fail "(timeout) movbu tests" } + } +} + +proc movhu_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/20i movhu_tests\n" + gdb_expect { + -re " +.*movhu \\(a2\\),d1.* +.*movhu \\(8,a2\\),d1.* +.*movhu \\(256,a2\\),d1.* +.*movhu \\(131071,a2\\),d1.* +.*movhu \\(8,sp\\),d1.* +.*movhu \\(256,sp\\),d1.* +.*movhu \\(131071,sp\\),d1.* +.*movhu \\(d1,a1\\),d2.* +.*movhu \\(0x8000.*\\),d1.* +.*movhu \\(0x1ffff.*\\),d1.* +.*movhu d1,\\(a2\\).* +.*movhu d1,\\(32,a2\\).* +.*movhu d1,\\(256,a2\\).* +.*movhu d1,\\(131071,a2\\).* +.*movhu d1,\\(32,sp\\).* +.*movhu d1,\\(32768,sp\\).* +.*movhu d1,\\(131071,sp\\).* +.*movhu d1,\\(d2,a2\\).* +.*movhu d1,\\(0x80.*\\).* +.*movhu d1,\\(0x1ffff.*\\).* +.*$gdb_prompt $" { pass "movhu tests" } + -re "$gdb_prompt $" { fail "movhu tests" } + timeout { fail "(timeout) movhu tests" } + } +} + +proc movm_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/4i movm_tests\n" + gdb_expect { + -re " +.*movm \\(sp\\),.a2,a3..* +.*movm \\(sp\\),.d2,d3,a2,a3,other..* +.*movm .a2,a3.,\\(sp\\).* +.*movm .d2,d3,a2,a3,other.,\\(sp\\).* +.*$gdb_prompt $" { pass "movm tests" } + -re "$gdb_prompt $" { fail "movm tests" } + timeout { fail "(timeout) movm tests" } + } +} + +proc muldiv_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/4i muldiv_tests\n" + gdb_expect { + -re " +.*mul d1,d2.* +.*mulu d2,d3.* +.*div d3,d3.* +.*divu d3,d2.* +.*$gdb_prompt $" { pass "muldiv tests" } + -re "$gdb_prompt $" { fail "muldiv tests" } + timeout { fail "(timeout) muldiv tests" } + } +} + +proc other_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/19i other_tests\n" + gdb_expect { + -re " +.*clr d2.* +.*inc d1.* +.*inc a2.* +.*inc4 a3.* +.*jmp \\(a2\\).* +.*jmp 0x\[0-9a-f]+ <main>.* +.*jmp 0x\[0-9a-f]+ <start>.* +.*call 0x\[0-9a-f]+ <main>,.a2,a3.,9.* +.*call 0x\[0-9a-f]+ <start>,.a2,a3.,32.* +.*calls \\(a2\\).* +.*calls 0x\[0-9a-f]+ <main>.* +.*calls 0x\[0-9a-f]+ <start>.* +.*ret .a2,a3.,7.* +.*retf .a2,a3.,5.* +.*rets.* +.*rti.* +.*trap.* +.*nop.* +.*rtm.* +.*$gdb_prompt $" { pass "other tests" } + -re "$gdb_prompt $" { fail "other tests" } + timeout { fail "(timeout) other tests" } + } +} + +proc shift_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/9i shift_tests\n" + gdb_expect { + -re " +.*asr d1,d2.* +.*asr 4,d2.* +.*lsr d2,d3.* +.*lsr 4,d3.* +.*asl d3,d2.* +.*asl 4,d2.* +.*asl2 d2.* +.*ror d1.* +.*rol d2.* +.*$gdb_prompt $" { pass "shift tests" } + -re "$gdb_prompt $" { fail "shift tests" } + timeout { fail "(timeout) shift tests" } + } +} + +proc sub_tests { } { + global gdb_prompt + global hex + global decimal + + send_gdb "x/7i sub_tests\n" + gdb_expect { + -re " +.*sub d1,d2.* +.*sub d2,a3.* +.*sub a3,d3.* +.*sub a3,a2.* +.*sub 131071,d2.* +.*sub 131071,a1.* +.*subc d1,d2.* +.*$gdb_prompt $" { pass "sub tests" } + -re "$gdb_prompt $" { fail "sub tests" } + timeout { fail "(timeout) sub tests" } + } +} + +# Start with a fresh gdb. + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load $binfile + +add_tests +bcc_tests +bit_tests +cmp_tests +extend_tests +extended_tests +logical_tests +loop_tests +mov_tests_1 +mov_tests_2 +mov_tests_3 +mov_tests_4 +movbu_tests +movhu_tests +movm_tests +muldiv_tests +other_tests +shift_tests +sub_tests diff --git a/gdb/testsuite/gdb.disasm/mn10300.s b/gdb/testsuite/gdb.disasm/mn10300.s new file mode 100644 index 00000000000..3ad6c95e6a1 --- /dev/null +++ b/gdb/testsuite/gdb.disasm/mn10300.s @@ -0,0 +1,300 @@ + .text + .global _main + .global add_tests + .global bCC_tests + .global bit_tests + .global cmp_tests + .global extend_tests + .global extended_tests + .global logical_tests + .global loop_tests + .global mov_tests_1 + .global mov_tests_2 + .global mov_tests_3 + .global mov_tests_4 + .global movbu_tests + .global movhu_tests + .global movm_tests + .global muldiv_tests + .global other_tests + .global shift_tests + .global sub_tests + +_main: + nop + +add_tests: + add d1,d2 + add d2,a3 + add a3,a2 + add a2,d1 + add 16,d1 + add 256,d2 + add 131071,d3 + add 16,a1 + add 256,a2 + add 131071,a3 + add 16,sp + add 256,sp + add 131071,sp + addc d1,d2 + +bCC_tests: + beq bCC_tests + bne bCC_tests + bgt bCC_tests + bge bCC_tests + ble bCC_tests + blt bCC_tests + bhi bCC_tests + bcc bCC_tests + bls bCC_tests + bcs bCC_tests + bvc bCC_tests + bvs bCC_tests + bnc bCC_tests + bns bCC_tests + bra bCC_tests + +bit_tests: + btst 64,d1 + btst 8192,d2 + btst 131071,d3 + btst 64,(8,a1) + btst 64,(0x1ffff) + bset d1,(a2) + bset 64,(8,a1) + bset 64,(0x1ffff) + bclr d1,(a2) + bclr 64,(8,a1) + bclr 64,(0x1ffff) + +cmp_tests: + cmp d1,d2 + cmp d2,a3 + cmp a3,d3 + cmp a3,a2 + cmp 16,d3 + cmp 256,d2 + cmp 131071,d1 + cmp 16,a3 + cmp 256,a2 + cmp 131071,a1 + + +extend_tests: + ext d1 + extb d2 + extbu d3 + exth d2 + exthu d1 + +extended_tests: + putx d1 + getx d2 + mulq d1,d2 + mulq 16,d2 + mulq 256,d3 + mulq 131071,d3 + mulqu d1,d2 + mulqu 16,d2 + mulqu 256,d3 + mulqu 131071,d3 + sat16 d2,d3 + sat24 d3,d2 + bsch d1,d2 + +logical_tests: + and d1,d2 + and 127,d2 + and 32767,d3 + and 131071,d3 + and 32767,psw + or d1,d2 + or 127,d2 + or 32767,d3 + or 131071,d3 + or 32767,psw + xor d1,d2 + xor 32767,d3 + xor 131071,d3 + not d3 + +loop_tests: + leq + lne + lgt + lge + lle + llt + lhi + lcc + lls + lcs + lra + setlb + +mov_tests_1: + mov d1,d2 + mov d1,a2 + mov a2,d1 + mov a2,a1 + mov sp,a2 + mov a1,sp + mov d2,psw + mov mdr,d1 + mov d2,mdr + mov (a2),d1 + mov (8,a2),d1 + mov (256,a2),d1 + mov (131071,a2),d1 + mov (8,sp),d1 + mov (256,sp),d1 + mov psw,d3 + +mov_tests_2: + mov (131071,sp),d1 + mov (d1,a1),d2 + mov (32768),d1 + mov (131071),d1 + mov (a2),a1 + mov (8,a2),a1 + mov (256,a2),a1 + mov (131071,a2),a1 + mov (8,sp),a1 + mov (256,sp),a1 + mov (131071,sp),a1 + mov (d1,a1),a2 + mov (32768),a1 + mov (131071),a1 + mov (32,a1),sp + +mov_tests_3: + mov d1,(a2) + mov d1,(32,a2) + mov d1,(256,a2) + mov d1,(131071,a2) + mov d1,(32,sp) + mov d1,(32768,sp) + mov d1,(131071,sp) + mov d1,(d2,a2) + mov d1,(128) + mov d1,(131071) + mov a1,(a2) + mov a1,(32,a2) + mov a1,(256,a2) + mov a1,(131071,a2) + mov a1,(32,sp) + +mov_tests_4: + mov a1,(32768,sp) + mov a1,(131071,sp) + mov a1,(d2,a2) + mov a1,(128) + mov a1,(131071) + mov sp,(32,a1) + mov 8,d1 + mov 256,d1 + mov 131071,d1 + mov 8,a1 + mov 256,a1 + mov 131071,a1 + +movbu_tests: + movbu (a2),d1 + movbu (8,a2),d1 + movbu (256,a2),d1 + movbu (131071,a2),d1 + movbu (8,sp),d1 + movbu (256,sp),d1 + movbu (131071,sp),d1 + movbu (d1,a1),d2 + movbu (32768),d1 + movbu (131071),d1 + movbu d1,(a2) + movbu d1,(32,a2) + movbu d1,(256,a2) + movbu d1,(131071,a2) + movbu d1,(32,sp) + movbu d1,(32768,sp) + movbu d1,(131071,sp) + movbu d1,(d2,a2) + movbu d1,(128) + movbu d1,(131071) + +movhu_tests: + movhu (a2),d1 + movhu (8,a2),d1 + movhu (256,a2),d1 + movhu (131071,a2),d1 + movhu (8,sp),d1 + movhu (256,sp),d1 + movhu (131071,sp),d1 + movhu (d1,a1),d2 + movhu (32768),d1 + movhu (131071),d1 + movhu d1,(a2) + movhu d1,(32,a2) + movhu d1,(256,a2) + movhu d1,(131071,a2) + movhu d1,(32,sp) + movhu d1,(32768,sp) + movhu d1,(131071,sp) + movhu d1,(d2,a2) + movhu d1,(128) + movhu d1,(131071) + +movm_tests: + movm (sp),[a2,a3] + movm (sp),[d2,d3,a2,a3,other] + movm [a2,a3],(sp) + movm [d2,d3,a2,a3,other],(sp) + + +muldiv_tests: + mul d1,d2 + mulu d2,d3 + div d3,d3 + divu d3,d2 + +other_tests: + clr d2 + inc d1 + inc a2 + inc4 a3 + jmp (a2) + jmp _main + jmp _start + call _main,[a2,a3],9 + call _start,[a2,a3],32 + calls (a2) + calls _main + calls _start + ret [a2,a3],7 + retf [a2,a3],5 + rets + rti + trap + nop + rtm + +shift_tests: + asr d1,d2 + asr 4,d2 + lsr d2,d3 + lsr 4,d3 + asl d3,d2 + asl 4,d2 + asl2 d2 + ror d1 + rol d2 + +sub_tests: + sub d1,d2 + sub d2,a3 + sub a3,d3 + sub a3,a2 + sub 131071,d2 + sub 131071,a1 + subc d1,d2 + diff --git a/gdb/testsuite/gdb.disasm/sh3.exp b/gdb/testsuite/gdb.disasm/sh3.exp new file mode 100644 index 00000000000..6c82f9151fb --- /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 + diff --git a/gdb/testsuite/gdb.disasm/sh3.s b/gdb/testsuite/gdb.disasm/sh3.s new file mode 100644 index 00000000000..8bab256901c --- /dev/null +++ b/gdb/testsuite/gdb.disasm/sh3.s @@ -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,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 + |