OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /or1k/trunk/gdb-5.0/gdb/testsuite/gdb.disasm
    from Rev 107 to Rev 1765
    Reverse comparison

Rev 107 → Rev 1765

/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
 
/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
 
/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
 
 
/hppa.exp
0,0 → 1,1404
 
# 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
/am33.s
0,0 → 1,524
 
.globl _main
.globl call_tests
.globl movm_tests
.globl misc_tests
.globl mov_tests
.globl ext_tests
.globl add_tests
.globl sub_tests
.globl cmp_tests
.globl logical_tests
.globl shift_tests
.globl muldiv_tests
.globl movbu_tests
.globl movhu_tests
.globl mac_tests
.globl bit_tests
.globl dsp_add_tests
.globl dsp_cmp_tests
.globl dsp_sub_tests
.globl dsp_mov_tests
.globl dsp_logical_tests
.globl dsp_misc_tests
.globl autoincrement_tests
.globl dsp_autoincrement_tests
 
.text
.am33
_main:
call_tests:
call 256,[a2,a3,exreg0],9
call 256,[a2,a3,exreg1],9
call 256,[a2,a3,exother],9
call 256,[a2,a3,all],9
call 131071,[a2,a3,exreg0],9
call 131071,[a2,a3,exreg1],9
call 131071,[a2,a3,exother],9
call 131071,[a2,a3,all],9
 
movm_tests:
movm (sp),[a2,a3,exreg0]
movm (sp),[a2,a3,exreg1]
movm (sp),[a2,a3,exother]
movm (sp),[a2,a3,all]
movm [a2,a3,exreg0],(sp)
movm [a2,a3,exreg1],(sp)
movm [a2,a3,exother],(sp)
movm [a2,a3,all],(sp)
movm (usp),[a2,a3,exreg0]
movm (usp),[a2,a3,exreg1]
movm (usp),[a2,a3,exother]
movm (usp),[a2,a3,all]
movm [a2,a3,exreg0],(usp)
movm [a2,a3,exreg1],(usp)
movm [a2,a3,exother],(usp)
movm [a2,a3,all],(usp)
 
misc_tests:
syscall 0x4
mcst9 d0
mcst48 d1
getchx d0
getclx d1
clr r9
sat16 r9,r8
mcste r7,r6
swap r5,r4
swaph r3,r2
swhw r1,r0
 
 
mov_tests:
mov r0,r1
mov xr0, r1
mov r1, xr2
mov (r1),r2
mov r3,(r4)
mov (sp),r5
mov r6,(sp)
mov 16,r1
mov 16,xr1
mov (16,r1),r2
mov r2,(16,r1)
mov (16,sp),r2
mov r2,(16,sp)
mov 0x1ffeff,r2
mov 0x1ffeff,xr2
mov (0x1ffeff,r1),r2
mov r2,(0x1ffeff,r1)
mov (0x1ffeff,sp),r2
mov r2,(0x1ffeff,sp)
mov (0x1ffeff),r2
mov r2,(0x1ffeff)
mov 0x7ffefdfc,r2
mov 0x7ffefdfc,xr2
mov (0x7ffefdfc,r1),r2
mov r2,(0x7ffefdfc,r1)
mov (0x7ffefdfc,sp),r2
mov r2,(0x7ffefdfc,sp)
mov (0x7ffefdfc),r2
mov r2,(0x7ffefdfc)
movu 16,r1
movu 0x1ffeff,r2
movu 0x7ffefdfc,r2
mov usp,a0
mov ssp,a1
mov msp,a2
mov pc,a3
mov a0,usp
mov a1,ssp
mov a2,msp
mov epsw,d0
mov d1,epsw
mov a0,r1
mov d2,r3
mov r5,a1
mov r7,d3
 
ext_tests:
ext r2
extb r3,r4
extbu r4,r5
exth r6,r7
exthu r7,r8
 
add_tests:
add r10,r11
add 16,r1
add 0x1ffeff,r2
add 0x7ffefdfc,r2
add r1,r2,r3
addc r12,r13
addc 16,r1
addc 0x1ffeff,r2
addc 0x7ffefdfc,r2
inc r13
inc4 r12
 
 
sub_tests:
sub r14,r15
sub 16,r1
sub 0x1ffeff,r2
sub 0x7ffefdfc,r2
subc r15,r14
subc 16,r1
subc 0x1ffeff,r2
subc 0x7ffefdfc,r2
 
cmp_tests:
cmp r11,r10
cmp 16,r1
cmp 0x1ffeff,r2
cmp 0x7ffefdfc,r2
 
logical_tests:
and r0,r1
or r2,r3
xor r4,r5
not r6
and 16,r1
or 16,r1
xor 16,r1
and 0x1ffeff,r2
or 0x1ffeff,r2
xor 0x1ffeff,r2
and 0x7ffefdfc,r2
or 0x7ffefdfc,r2
xor 0x7ffefdfc,r2
and 131072,epsw
or 65535,epsw
 
shift_tests:
asr r7,r8
lsr r9,r10
asl r11,r12
asl2 r13
ror r14
rol r15
asr 16,r1
lsr 16,r1
asl 16,r1
asr 0x1ffeff,r2
lsr 0x1ffeff,r2
asl 0x1ffeff,r2
asr 0x7ffefdfc,r2
lsr 0x7ffefdfc,r2
asl 0x7ffefdfc,r2
 
muldiv_tests:
mul r1,r2
mulu r3,r4
mul 16,r1
mulu 16,r1
mul 0x1ffeff,r2
mulu 0x1ffeff,r2
mul 0x7ffefdfc,r2
mulu 0x7ffefdfc,r2
div r5,r6
divu r7,r8
dmulh r13,r12
dmulhu r11,r10
dmulh 0x7ffefdfc,r2
dmulhu 0x7ffefdfc,r2
mul r1,r2,r3,r4
mulu r1,r2,r3,r4
 
movbu_tests:
movbu (r5),r6
movbu r7,(r8)
movbu (sp),r7
movbu r8,(sp)
movbu (16,r1),r2
movbu r2,(16,r1)
movbu (16,sp),r2
movbu r2,(16,sp)
movbu (0x1ffeff,r1),r2
movbu r2,(0x1ffeff,r1)
movbu (0x1ffeff,sp),r2
movbu r2,(0x1ffeff,sp)
movbu (0x1ffeff),r2
movbu r2,(0x1ffeff)
movbu (0x7ffefdfc,r1),r2
movbu r2,(0x7ffefdfc,r1)
movbu (0x7ffefdfc,sp),r2
movbu r2,(0x7ffefdfc,sp)
movbu (0x7ffefdfc),r2
movbu r2,(0x7ffefdfc)
 
movhu_tests:
movhu (r9),r10
movhu r11,(r12)
movhu (sp),r9
movhu r10,(sp)
movhu (16,r1),r2
movhu r2,(16,r1)
movhu (16,sp),r2
movhu r2,(16,sp)
movhu (0x1ffeff,r1),r2
movhu r2,(0x1ffeff,r1)
movhu (0x1ffeff,sp),r2
movhu r2,(0x1ffeff,sp)
movhu (0x1ffeff),r2
movhu r2,(0x1ffeff)
movhu (0x7ffefdfc,r1),r2
movhu r2,(0x7ffefdfc,r1)
movhu (0x7ffefdfc,sp),r2
movhu r2,(0x7ffefdfc,sp)
movhu (0x7ffefdfc),r2
movhu r2,(0x7ffefdfc)
 
 
mac_tests:
mac r1,r2
macu r3,r4
macb r5,r6
macbu r7,r8
mach r9,r10
machu r11,r12
dmach r13,r14
dmachu r15,r14
mac 16,r1
macu 16,r1
macb 16,r1
macbu 16,r1
mach 16,r1
machu 16,r1
mac 0x1ffeff,r2
macu 0x1ffeff,r2
macb 0x1ffeff,r2
macbu 0x1ffeff,r2
mach 0x1ffeff,r2
machu 0x1ffeff,r2
mac 0x7ffefdfc,r2
macu 0x7ffefdfc,r2
macb 0x7ffefdfc,r2
macbu 0x7ffefdfc,r2
mach 0x7ffefdfc,r2
machu 0x7ffefdfc,r2
dmach 0x7ffefdfc,r2
dmachu 0x7ffefdfc,r2
 
bit_tests:
bsch r1,r2
btst 16,r1
btst 0x1ffeff,r2
btst 0x7ffefdfc,r2
 
 
dsp_add_tests:
add_add r4,r1,r2,r3
add_add r4,r1,2,r3
add_sub r4,r1,r2,r3
add_sub r4,r1,2,r3
add_cmp r4,r1,r2,r3
add_cmp r4,r1,2,r3
add_mov r4,r1,r2,r3
add_mov r4,r1,2,r3
add_asr r4,r1,r2,r3
add_asr r4,r1,2,r3
add_lsr r4,r1,r2,r3
add_lsr r4,r1,2,r3
add_asl r4,r1,r2,r3
add_asl r4,r1,2,r3
add_add 4,r1,r2,r3
add_add 4,r1,2,r3
add_sub 4,r1,r2,r3
add_sub 4,r1,2,r3
add_cmp 4,r1,r2,r3
add_cmp 4,r1,2,r3
add_mov 4,r1,r2,r3
add_mov 4,r1,2,r3
add_asr 4,r1,r2,r3
add_asr 4,r1,2,r3
add_lsr 4,r1,r2,r3
add_lsr 4,r1,2,r3
add_asl 4,r1,r2,r3
add_asl 4,r1,2,r3
 
dsp_cmp_tests:
cmp_add r4,r1,r2,r3
cmp_add r4,r1,2,r3
cmp_sub r4,r1,r2,r3
cmp_sub r4,r1,2,r3
cmp_mov r4,r1,r2,r3
cmp_mov r4,r1,2,r3
cmp_asr r4,r1,r2,r3
cmp_asr r4,r1,2,r3
cmp_lsr r4,r1,r2,r3
cmp_lsr r4,r1,2,r3
cmp_asl r4,r1,r2,r3
cmp_asl r4,r1,2,r3
cmp_add 4,r1,r2,r3
cmp_add 4,r1,2,r3
cmp_sub 4,r1,r2,r3
cmp_sub 4,r1,2,r3
cmp_mov 4,r1,r2,r3
cmp_mov 4,r1,2,r3
cmp_asr 4,r1,r2,r3
cmp_asr 4,r1,2,r3
cmp_lsr 4,r1,r2,r3
cmp_lsr 4,r1,2,r3
cmp_asl 4,r1,r2,r3
cmp_asl 4,r1,2,r3
 
dsp_sub_tests:
sub_add r4,r1,r2,r3
sub_add r4,r1,2,r3
sub_sub r4,r1,r2,r3
sub_sub r4,r1,2,r3
sub_cmp r4,r1,r2,r3
sub_cmp r4,r1,2,r3
sub_mov r4,r1,r2,r3
sub_mov r4,r1,2,r3
sub_asr r4,r1,r2,r3
sub_asr r4,r1,2,r3
sub_lsr r4,r1,r2,r3
sub_lsr r4,r1,2,r3
sub_asl r4,r1,r2,r3
sub_asl r4,r1,2,r3
sub_add 4,r1,r2,r3
sub_add 4,r1,2,r3
sub_sub 4,r1,r2,r3
sub_sub 4,r1,2,r3
sub_cmp 4,r1,r2,r3
sub_cmp 4,r1,2,r3
sub_mov 4,r1,r2,r3
sub_mov 4,r1,2,r3
sub_asr 4,r1,r2,r3
sub_asr 4,r1,2,r3
sub_lsr 4,r1,r2,r3
sub_lsr 4,r1,2,r3
sub_asl 4,r1,r2,r3
sub_asl 4,r1,2,r3
 
dsp_mov_tests:
mov_add r4,r1,r2,r3
mov_add r4,r1,2,r3
mov_sub r4,r1,r2,r3
mov_sub r4,r1,2,r3
mov_cmp r4,r1,r2,r3
mov_cmp r4,r1,2,r3
mov_mov r4,r1,r2,r3
mov_mov r4,r1,2,r3
mov_asr r4,r1,r2,r3
mov_asr r4,r1,2,r3
mov_lsr r4,r1,r2,r3
mov_lsr r4,r1,2,r3
mov_asl r4,r1,r2,r3
mov_asl r4,r1,2,r3
mov_add 4,r1,r2,r3
mov_add 4,r1,2,r3
mov_sub 4,r1,r2,r3
mov_sub 4,r1,2,r3
mov_cmp 4,r1,r2,r3
mov_cmp 4,r1,2,r3
mov_mov 4,r1,r2,r3
mov_mov 4,r1,2,r3
mov_asr 4,r1,r2,r3
mov_asr 4,r1,2,r3
mov_lsr 4,r1,r2,r3
mov_lsr 4,r1,2,r3
mov_asl 4,r1,r2,r3
mov_asl 4,r1,2,r3
 
dsp_logical_tests:
and_add r4,r1,r2,r3
and_add r4,r1,2,r3
and_sub r4,r1,r2,r3
and_sub r4,r1,2,r3
and_cmp r4,r1,r2,r3
and_cmp r4,r1,2,r3
and_mov r4,r1,r2,r3
and_mov r4,r1,2,r3
and_asr r4,r1,r2,r3
and_asr r4,r1,2,r3
and_lsr r4,r1,r2,r3
and_lsr r4,r1,2,r3
and_asl r4,r1,r2,r3
and_asl r4,r1,2,r3
xor_add r4,r1,r2,r3
xor_add r4,r1,2,r3
xor_sub r4,r1,r2,r3
xor_sub r4,r1,2,r3
xor_cmp r4,r1,r2,r3
xor_cmp r4,r1,2,r3
xor_mov r4,r1,r2,r3
xor_mov r4,r1,2,r3
xor_asr r4,r1,r2,r3
xor_asr r4,r1,2,r3
xor_lsr r4,r1,r2,r3
xor_lsr r4,r1,2,r3
xor_asl r4,r1,r2,r3
xor_asl r4,r1,2,r3
or_add r4,r1,r2,r3
or_add r4,r1,2,r3
or_sub r4,r1,r2,r3
or_sub r4,r1,2,r3
or_cmp r4,r1,r2,r3
or_cmp r4,r1,2,r3
or_mov r4,r1,r2,r3
or_mov r4,r1,2,r3
or_asr r4,r1,r2,r3
or_asr r4,r1,2,r3
or_lsr r4,r1,r2,r3
or_lsr r4,r1,2,r3
or_asl r4,r1,r2,r3
or_asl r4,r1,2,r3
 
dsp_misc_tests:
dmach_add r4,r1,r2,r3
dmach_add r4,r1,2,r3
dmach_sub r4,r1,r2,r3
dmach_sub r4,r1,2,r3
dmach_cmp r4,r1,r2,r3
dmach_cmp r4,r1,2,r3
dmach_mov r4,r1,r2,r3
dmach_mov r4,r1,2,r3
dmach_asr r4,r1,r2,r3
dmach_asr r4,r1,2,r3
dmach_lsr r4,r1,r2,r3
dmach_lsr r4,r1,2,r3
dmach_asl r4,r1,r2,r3
dmach_asl r4,r1,2,r3
swhw_add r4,r1,r2,r3
swhw_add r4,r1,2,r3
swhw_sub r4,r1,r2,r3
swhw_sub r4,r1,2,r3
swhw_cmp r4,r1,r2,r3
swhw_cmp r4,r1,2,r3
swhw_mov r4,r1,r2,r3
swhw_mov r4,r1,2,r3
swhw_asr r4,r1,r2,r3
swhw_asr r4,r1,2,r3
swhw_lsr r4,r1,r2,r3
swhw_lsr r4,r1,2,r3
swhw_asl r4,r1,r2,r3
swhw_asl r4,r1,2,r3
sat16_add r4,r1,r2,r3
sat16_add r4,r1,2,r3
sat16_sub r4,r1,r2,r3
sat16_sub r4,r1,2,r3
sat16_cmp r4,r1,r2,r3
sat16_cmp r4,r1,2,r3
sat16_mov r4,r1,r2,r3
sat16_mov r4,r1,2,r3
sat16_asr r4,r1,r2,r3
sat16_asr r4,r1,2,r3
sat16_lsr r4,r1,r2,r3
sat16_lsr r4,r1,2,r3
sat16_asl r4,r1,r2,r3
sat16_asl r4,r1,2,r3
 
autoincrement_tests:
mov (r1+),r2
mov r3,(r4+)
movhu (r6+),r7
movhu r8,(r9+)
mov (r1+,64),r2
mov r1,(r2+,64)
movhu (r1+,64),r2
movhu r1,(r2+,64)
mov (r1+,0x1ffef),r2
mov r1,(r2+,0x1ffef)
movhu (r1+,0x1ffef),r2
movhu r1,(r2+,0x1ffef)
mov (r1+,0x7ffefdfc),r2
mov r1,(r2+,0x7ffefdfc)
movhu (r1+,0x7ffefdfc),r2
movhu r1,(r2+,0x7ffefdfc)
 
dsp_autoincrement_tests:
mov_llt (r1+,4),r2
mov_lgt (r1+,4),r2
mov_lge (r1+,4),r2
mov_lle (r1+,4),r2
mov_lcs (r1+,4),r2
mov_lhi (r1+,4),r2
mov_lcc (r1+,4),r2
mov_lls (r1+,4),r2
mov_leq (r1+,4),r2
mov_lne (r1+,4),r2
mov_lra (r1+,4),r2
/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)
/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
 
/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
/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
/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
/am33.exp
0,0 → 1,838
 
# 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 "am33"
set srcfile ${srcdir}/${subdir}/${testfile}.s
set binfile ${objdir}/${subdir}/${testfile}
if { [gdb_compile "${srcfile}" "${binfile}" object ""] != "" } {
gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}
 
proc call_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/8i call_tests\n"
gdb_expect {
-re "
.*call .*,.a2,a3,exreg0.,9.*
.*call .*,.a2,a3,exreg1.,9.*
.*call .*,.a2,a3,exother.,9.*
.*call .*,.d2,d3,a2,a3,other,exreg0,exreg1,exother.,9.*
.*call .*,.a2,a3,exreg0.,9.*
.*call .*,.a2,a3,exreg1.,9.*
.*call .*,.a2,a3,exother.,9.*
.*call .*,.d2,d3,a2,a3,other,exreg0,exreg1,exother.,9.*
.*$gdb_prompt $" { pass "call tests" }
-re "$gdb_prompt $" { fail "call tests" }
timeout { fail "(timeout) call tests" }
}
}
 
proc movm_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/16i movm_tests\n"
gdb_expect {
-re "
.*movm \\(sp\\),.a2,a3,exreg0.*
.*movm \\(sp\\),.a2,a3,exreg1.*
.*movm \\(sp\\),.a2,a3,exother.*
.*movm \\(sp\\),.d2,d3,a2,a3,other,exreg0,exreg1,exother.*
.*movm .a2,a3,exreg0.,\\(sp\\).*
.*movm .a2,a3,exreg1.,\\(sp\\).*
.*movm .a2,a3,exother.,\\(sp\\).*
.*movm .d2,d3,a2,a3,other,exreg0,exreg1,exother.,\\(sp\\).*
.*movm \\(usp\\),.a2,a3,exreg0.*
.*movm \\(usp\\),.a2,a3,exreg1.*
.*movm \\(usp\\),.a2,a3,exother.*
.*movm \\(usp\\),.d2,d3,a2,a3,other,exreg0,exreg1,exother.*
.*movm .a2,a3,exreg0.,\\(usp\\).*
.*movm .a2,a3,exreg1.,\\(usp\\).*
.*movm .a2,a3,exother.,\\(usp\\).*
.*movm .d2,d3,a2,a3,other,exreg0,exreg1,exother.,\\(usp\\).*
.*$gdb_prompt $" { pass "movm tests" }
-re "$gdb_prompt $" { fail "movm tests" }
timeout { fail "(timeout) movm tests" }
}
}
 
proc misc_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/11i misc_tests\n"
gdb_expect {
-re "
.*syscall 4.*
.*mcst9 d0.*
.*mcst48 d1.*
.*getchx d0.*
.*getclx d1.*
.*clr a1.*
.*sat16 a1,a0.*
.*mcste r7,r6.*
.*swap r5,r4.*
.*swaph r3,r2.*
.*swhw r1,r0.*
.*$gdb_prompt $" { pass "misc tests" }
-re "$gdb_prompt $" { fail "misc tests" }
timeout { fail "(timeout) misc tests" }
}
}
 
proc mov_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/45i mov_tests\n"
gdb_expect {
-re "
.*mov r0,r1.*
.*mov sp,r1.*
.*mov r1,xr2.*
.*mov \\(r1\\),r2.*
.*mov r3,\\(r4\\).*
.*mov \\(sp\\),r5.*
.*mov r6,\\(sp\\).*
.*mov 16,r1.*
.*mov 16,xr1.*
.*mov \\(16,r1\\),r2.*
.*mov r2,\\(16,r1\\).*
.*mov \\(16,sp\\),r2.*
.*mov r2,\\(16,sp\\).*
.*mov 2096895,r2.*
.*mov 2096895,xr2.*
.*mov \\(2096895,r1\\),r2.*
.*mov r2,\\(2096895,r1\\).*
.*mov \\(2096895,sp\\),r2.*
.*mov r2,\\(2096895,sp\\).*
.*mov \\(0x1ffeff\\),r2.*
.*mov r2,\\(0x1ffeff\\).*
.*mov 2147417596,r2.*
.*mov 2147417596,xr2.*
.*mov \\(2147417596,r1\\),r2.*
.*mov r2,\\(2147417596,r1\\).*
.*mov \\(2147417596,sp\\),r2.*
.*mov r2,\\(2147417596,sp\\).*
.*mov \\(0x7ffefdfc\\),r2.*
.*mov r2,\\(0x7ffefdfc\\).*
.*movu 16,r1.*
.*movu 2096895,r2.*
.*movu 2147417596,r2.*
.*mov usp,a0.*
.*mov ssp,a1.*
.*mov msp,a2.*
.*mov pc,a3.*
.*mov a0,usp.*
.*mov a1,ssp.*
.*mov a2,msp.*
.*mov epsw,d0.*
.*mov d1,epsw.*
.*mov a0,r1.*
.*mov d2,r3.*
.*mov r5,a1.*
.*mov r7,d3.*
.*$gdb_prompt $" { pass "mov tests" }
-re "$gdb_prompt $" { fail "mov tests" }
timeout { fail "(timeout) mov tests" }
}
}
 
proc ext_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/5i ext_tests\n"
gdb_expect {
-re "
.*ext r2.*
.*extb r3,r4.*
.*extbu r4,r5.*
.*exth r6,r7.*
.*exthu r7,a0.*
.*$gdb_prompt $" { pass "ext tests" }
-re "$gdb_prompt $" { fail "ext tests" }
timeout { fail "(timeout) ext tests" }
}
}
 
proc add_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/11i add_tests\n"
gdb_expect {
-re "
.*add a2,a3.*
.*add 16,r1.*
.*add 2096895,r2.*
.*add 2147417596,r2.*
.*add r1,r2,r3.*
.*addc d0,d1.*
.*addc 16,r1.*
.*addc 2096895,r2.*
.*addc 2147417596,r2.*
.*inc d1.*
.*inc4 d0.*
.*$gdb_prompt $" { pass "add tests" }
-re "$gdb_prompt $" { fail "add tests" }
timeout { fail "(timeout) add tests" }
}
}
 
proc sub_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/8i sub_tests\n"
gdb_expect {
-re "
.*sub d2,d3.*
.*sub 16,r1.*
.*sub 2096895,r2.*
.*sub 2147417596,r2.*
.*subc d3,d2.*
.*subc 16,r1.*
.*subc 2096895,r2.*
.*subc 2147417596,r2.*
.*$gdb_prompt $" { pass "sub tests" }
-re "$gdb_prompt $" { fail "sub tests" }
timeout { fail "(timeout) sub tests" }
}
}
 
proc cmp_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/4i cmp_tests\n"
gdb_expect {
-re "
.*cmp a3,a2.*
.*cmp 16,r1.*
.*cmp 2096895,r2.*
.*cmp 2147417596,r2.*
.*$gdb_prompt $" { pass "cmp tests" }
-re "$gdb_prompt $" { fail "cmp tests" }
timeout { fail "(timeout) cmp tests" }
}
}
 
proc logical_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/15i logical_tests\n"
gdb_expect {
-re "
.*and r0,r1.*
.*or r2,r3.*
.*xor r4,r5.*
.*not r6.*
.*and 16,r1.*
.*or 16,r1.*
.*xor 16,r1.*
.*and 2096895,r2.*
.*or 2096895,r2.*
.*xor 2096895,r2.*
.*and 2147417596,r2.*
.*or 2147417596,r2.*
.*xor 2147417596,r2.*
.*and 131072,epsw.*
.*or 65535,epsw.*
.*$gdb_prompt $" { pass "logical tests" }
-re "$gdb_prompt $" { fail "logical tests" }
timeout { fail "(timeout) logical tests" }
}
}
 
proc shift_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/15i shift_tests\n"
gdb_expect {
-re "
.*asr r7,a0.*
.*lsr a1,a2.*
.*asl a3,d0.*
.*asl2 d1.*
.*ror d2.*
.*rol d3.*
.*asr 16,r1.*
.*lsr 16,r1.*
.*asl 16,r1.*
.*asr 2096895,r2.*
.*lsr 2096895,r2.*
.*asl 2096895,r2.*
.*asr 2147417596,r2.*
.*lsr 2147417596,r2.*
.*asl 2147417596,r2.*
.*$gdb_prompt $" { pass "shift tests" }
-re "$gdb_prompt $" { fail "shift tests" }
timeout { fail "(timeout) shift tests" }
}
}
 
proc muldiv_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/16i muldiv_tests\n"
gdb_expect {
-re "
.*mul r1,r2.*
.*mulu r3,r4.*
.*mul 16,r1.*
.*mulu 16,r1.*
.*mul 2096895,r2.*
.*mulu 2096895,r2.*
.*mul 2147417596,r2.*
.*mulu 2147417596,r2.*
.*div r5,r6.*
.*divu r7,a0.*
.*dmulh d1,d0.*
.*dmulhu a3,a2.*
.*dmulh 2147417596,r2.*
.*dmulhu 2147417596,r2.*
.*mul r1,r2,r3,r4.*
.*mulu r1,r2,r3,r4.*
.*$gdb_prompt $" { pass "muldiv tests" }
-re "$gdb_prompt $" { fail "muldiv tests" }
timeout { fail "(timeout) muldiv tests" }
}
}
 
proc movbu_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/20i movbu_tests\n"
gdb_expect {
-re "
.*movbu \\(r5\\),r6.*
.*movbu r7,\\(a0\\).*
.*movbu \\(sp\\),r7.*
.*movbu a0,\\(sp\\).*
.*movbu \\(16,r1\\),r2.*
.*movbu r2,\\(16,r1\\).*
.*movbu \\(16,sp\\),r2.*
.*movbu r2,\\(16,sp\\).*
.*movbu \\(2096895,r1\\),r2.*
.*movbu r2,\\(2096895,r1\\).*
.*movbu \\(2096895,sp\\),r2.*
.*movbu r2,\\(2096895,sp\\).*
.*movbu \\(0x1ffeff\\),r2.*
.*movbu r2,\\(0x1ffeff\\).*
.*movbu \\(2147417596,r1\\),r2.*
.*movbu r2,\\(2147417596,r1\\).*
.*movbu \\(2147417596,sp\\),r2.*
.*movbu r2,\\(2147417596,sp\\).*
.*movbu \\(0x7ffefdfc\\),r2.*
.*movbu r2,\\(0x7ffefdfc\\).*
.*$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 \\(a1\\),a2.*
.*movhu a3,\\(d0\\).*
.*movhu \\(sp\\),a1.*
.*movhu a2,\\(sp\\).*
.*movhu \\(16,r1\\),r2.*
.*movhu r2,\\(16,r1\\).*
.*movhu \\(16,sp\\),r2.*
.*movhu r2,\\(16,sp\\).*
.*movhu \\(2096895,r1\\),r2.*
.*movhu r2,\\(2096895,r1\\).*
.*movhu \\(2096895,sp\\),r2.*
.*movhu r2,\\(2096895,sp\\).*
.*movhu \\(0x1ffeff\\),r2.*
.*movhu r2,\\(0x1ffeff\\).*
.*movhu \\(2147417596,r1\\),r2.*
.*movhu r2,\\(2147417596,r1\\).*
.*movhu \\(2147417596,sp\\),r2.*
.*movhu r2,\\(2147417596,sp\\).*
.*movhu \\(0x7ffefdfc\\),r2.*
.*movhu r2,\\(0x7ffefdfc\\).*
.*$gdb_prompt $" { pass "movhu tests" }
-re "$gdb_prompt $" { fail "movhu tests" }
timeout { fail "(timeout) movhu tests" }
}
}
 
proc mac_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/28i mac_tests\n"
gdb_expect {
-re "
.*mac r1,r2.*
.*macu r3,r4.*
.*macb r5,r6.*
.*macbu r7,a0.*
.*mach a1,a2.*
.*machu a3,d0.*
.*dmach d1,d2.*
.*dmachu d3,d2.*
.*mac 16,r1.*
.*macu 16,r1.*
.*macb 16,r1.*
.*macbu 16,r1.*
.*mach 16,r1.*
.*machu 16,r1.*
.*mac 2096895,r2.*
.*macu 2096895,r2.*
.*macb 2096895,r2.*
.*macbu 2096895,r2.*
.*mach 2096895,r2.*
.*machu 2096895,r2.*
.*mac 2147417596,r2.*
.*macu 2147417596,r2.*
.*macb 2147417596,r2.*
.*macbu 2147417596,r2.*
.*mach 2147417596,r2.*
.*machu 2147417596,r2.*
.*dmach 2147417596,r2.*
.*dmachu 2147417596,r2.*
.*$gdb_prompt $" { pass "mac tests" }
-re "$gdb_prompt $" { fail "mac tests" }
timeout { fail "(timeout) mac tests" }
}
}
 
proc bit_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/4i bit_tests\n"
gdb_expect {
-re "
.*bsch r1,r2.*
.*btst 16,r1.*
.*btst 2096895,r2.*
.*btst 2147417596,r2.*
.*$gdb_prompt $" { pass "bit tests" }
-re "$gdb_prompt $" { fail "bit tests" }
timeout { fail "(timeout) bit tests" }
}
}
 
proc dsp_add_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/28i dsp_add_tests\n"
gdb_expect {
-re "
.*add_add r4,r1,r2,r3.*
.*add_add r4,r1,2,r3.*
.*add_sub r4,r1,r2,r3.*
.*add_sub r4,r1,2,r3.*
.*add_cmp r4,r1,r2,r3.*
.*add_cmp r4,r1,2,r3.*
.*add_mov r4,r1,r2,r3.*
.*add_mov r4,r1,2,r3.*
.*add_asr r4,r1,r2,r3.*
.*add_asr r4,r1,2,r3.*
.*add_lsr r4,r1,r2,r3.*
.*add_lsr r4,r1,2,r3.*
.*add_asl r4,r1,r2,r3.*
.*add_asl r4,r1,2,r3.*
.*add_add 4,r1,r2,r3.*
.*add_add 4,r1,2,r3.*
.*add_sub 4,r1,r2,r3.*
.*add_sub 4,r1,2,r3.*
.*add_cmp 4,r1,r2,r3.*
.*add_cmp 4,r1,2,r3.*
.*add_mov 4,r1,r2,r3.*
.*add_mov 4,r1,2,r3.*
.*add_asr 4,r1,r2,r3.*
.*add_asr 4,r1,2,r3.*
.*add_lsr 4,r1,r2,r3.*
.*add_lsr 4,r1,2,r3.*
.*add_asl 4,r1,r2,r3.*
.*add_asl 4,r1,2,r3.*
.*$gdb_prompt $" { pass "dsp_add tests" }
-re "$gdb_prompt $" { fail "dsp_add tests" }
timeout { fail "(timeout) dsp_add tests" }
}
}
 
proc dsp_cmp_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/24i dsp_cmp_tests\n"
gdb_expect {
-re "
.*cmp_add r4,r1,r2,r3.*
.*cmp_add r4,r1,2,r3.*
.*cmp_sub r4,r1,r2,r3.*
.*cmp_sub r4,r1,2,r3.*
.*cmp_mov r4,r1,r2,r3.*
.*cmp_mov r4,r1,2,r3.*
.*cmp_asr r4,r1,r2,r3.*
.*cmp_asr r4,r1,2,r3.*
.*cmp_lsr r4,r1,r2,r3.*
.*cmp_lsr r4,r1,2,r3.*
.*cmp_asl r4,r1,r2,r3.*
.*cmp_asl r4,r1,2,r3.*
.*cmp_add 4,r1,r2,r3.*
.*cmp_add 4,r1,2,r3.*
.*cmp_sub 4,r1,r2,r3.*
.*cmp_sub 4,r1,2,r3.*
.*cmp_mov 4,r1,r2,r3.*
.*cmp_mov 4,r1,2,r3.*
.*cmp_asr 4,r1,r2,r3.*
.*cmp_asr 4,r1,2,r3.*
.*cmp_lsr 4,r1,r2,r3.*
.*cmp_lsr 4,r1,2,r3.*
.*cmp_asl 4,r1,r2,r3.*
.*cmp_asl 4,r1,2,r3.*
.*$gdb_prompt $" { pass "dsp_cmp tests" }
-re "$gdb_prompt $" { fail "dsp_cmp tests" }
timeout { fail "(timeout) dsp_cmp tests" }
}
}
 
proc dsp_sub_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/28i dsp_sub_tests\n"
gdb_expect {
-re "
.*sub_add r4,r1,r2,r3.*
.*sub_add r4,r1,2,r3.*
.*sub_sub r4,r1,r2,r3.*
.*sub_sub r4,r1,2,r3.*
.*sub_cmp r4,r1,r2,r3.*
.*sub_cmp r4,r1,2,r3.*
.*sub_mov r4,r1,r2,r3.*
.*sub_mov r4,r1,2,r3.*
.*sub_asr r4,r1,r2,r3.*
.*sub_asr r4,r1,2,r3.*
.*sub_lsr r4,r1,r2,r3.*
.*sub_lsr r4,r1,2,r3.*
.*sub_asl r4,r1,r2,r3.*
.*sub_asl r4,r1,2,r3.*
.*sub_add 4,r1,r2,r3.*
.*sub_add 4,r1,2,r3.*
.*sub_sub 4,r1,r2,r3.*
.*sub_sub 4,r1,2,r3.*
.*sub_cmp 4,r1,r2,r3.*
.*sub_cmp 4,r1,2,r3.*
.*sub_mov 4,r1,r2,r3.*
.*sub_mov 4,r1,2,r3.*
.*sub_asr 4,r1,r2,r3.*
.*sub_asr 4,r1,2,r3.*
.*sub_lsr 4,r1,r2,r3.*
.*sub_lsr 4,r1,2,r3.*
.*sub_asl 4,r1,r2,r3.*
.*sub_asl 4,r1,2,r3.*
.*$gdb_prompt $" { pass "dsp_sub tests" }
-re "$gdb_prompt $" { fail "dsp_sub tests" }
timeout { fail "(timeout) dsp_sub tests" }
}
}
 
proc dsp_mov_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/28i dsp_mov_tests\n"
gdb_expect {
-re "
.*mov_add r4,r1,r2,r3.*
.*mov_add r4,r1,2,r3.*
.*mov_sub r4,r1,r2,r3.*
.*mov_sub r4,r1,2,r3.*
.*mov_cmp r4,r1,r2,r3.*
.*mov_cmp r4,r1,2,r3.*
.*mov_mov r4,r1,r2,r3.*
.*mov_mov r4,r1,2,r3.*
.*mov_asr r4,r1,r2,r3.*
.*mov_asr r4,r1,2,r3.*
.*mov_lsr r4,r1,r2,r3.*
.*mov_lsr r4,r1,2,r3.*
.*mov_asl r4,r1,r2,r3.*
.*mov_asl r4,r1,2,r3.*
.*mov_add 4,r1,r2,r3.*
.*mov_add 4,r1,2,r3.*
.*mov_sub 4,r1,r2,r3.*
.*mov_sub 4,r1,2,r3.*
.*mov_cmp 4,r1,r2,r3.*
.*mov_cmp 4,r1,2,r3.*
.*mov_mov 4,r1,r2,r3.*
.*mov_mov 4,r1,2,r3.*
.*mov_asr 4,r1,r2,r3.*
.*mov_asr 4,r1,2,r3.*
.*mov_lsr 4,r1,r2,r3.*
.*mov_lsr 4,r1,2,r3.*
.*mov_asl 4,r1,r2,r3.*
.*mov_asl 4,r1,2,r3.*
.*$gdb_prompt $" { pass "dsp_mov tests" }
-re "$gdb_prompt $" { fail "dsp_mov tests" }
timeout { fail "(timeout) dsp_mov tests" }
}
}
 
proc dsp_logical_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/42i dsp_logical_tests\n"
gdb_expect {
-re "
.*and_add r4,r1,r2,r3.*
.*and_add r4,r1,2,r3.*
.*and_sub r4,r1,r2,r3.*
.*and_sub r4,r1,2,r3.*
.*and_cmp r4,r1,r2,r3.*
.*and_cmp r4,r1,2,r3.*
.*and_mov r4,r1,r2,r3.*
.*and_mov r4,r1,2,r3.*
.*and_asr r4,r1,r2,r3.*
.*and_asr r4,r1,2,r3.*
.*and_lsr r4,r1,r2,r3.*
.*and_lsr r4,r1,2,r3.*
.*and_asl r4,r1,r2,r3.*
.*and_asl r4,r1,2,r3.*
.*xor_add r4,r1,r2,r3.*
.*xor_add r4,r1,2,r3.*
.*xor_sub r4,r1,r2,r3.*
.*xor_sub r4,r1,2,r3.*
.*xor_cmp r4,r1,r2,r3.*
.*xor_cmp r4,r1,2,r3.*
.*xor_mov r4,r1,r2,r3.*
.*xor_mov r4,r1,2,r3.*
.*xor_asr r4,r1,r2,r3.*
.*xor_asr r4,r1,2,r3.*
.*xor_lsr r4,r1,r2,r3.*
.*xor_lsr r4,r1,2,r3.*
.*xor_asl r4,r1,r2,r3.*
.*xor_asl r4,r1,2,r3.*
.*or_add r4,r1,r2,r3.*
.*or_add r4,r1,2,r3.*
.*or_sub r4,r1,r2,r3.*
.*or_sub r4,r1,2,r3.*
.*or_cmp r4,r1,r2,r3.*
.*or_cmp r4,r1,2,r3.*
.*or_mov r4,r1,r2,r3.*
.*or_mov r4,r1,2,r3.*
.*or_asr r4,r1,r2,r3.*
.*or_asr r4,r1,2,r3.*
.*or_lsr r4,r1,r2,r3.*
.*or_lsr r4,r1,2,r3.*
.*or_asl r4,r1,r2,r3.*
.*or_asl r4,r1,2,r3.*
.*$gdb_prompt $" { pass "dsp_logical tests" }
-re "$gdb_prompt $" { fail "dsp_logical tests" }
timeout { fail "(timeout) dsp_logical tests" }
}
}
 
proc dsp_misc_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/42i dsp_misc_tests\n"
gdb_expect {
-re "
.*dmach_add r4,r1,r2,r3.*
.*dmach_add r4,r1,2,r3.*
.*dmach_sub r4,r1,r2,r3.*
.*dmach_sub r4,r1,2,r3.*
.*dmach_cmp r4,r1,r2,r3.*
.*dmach_cmp r4,r1,2,r3.*
.*dmach_mov r4,r1,r2,r3.*
.*dmach_mov r4,r1,2,r3.*
.*dmach_asr r4,r1,r2,r3.*
.*dmach_asr r4,r1,2,r3.*
.*dmach_lsr r4,r1,r2,r3.*
.*dmach_lsr r4,r1,2,r3.*
.*dmach_asl r4,r1,r2,r3.*
.*dmach_asl r4,r1,2,r3.*
.*swhw_add r4,r1,r2,r3.*
.*swhw_add r4,r1,2,r3.*
.*swhw_sub r4,r1,r2,r3.*
.*swhw_sub r4,r1,2,r3.*
.*swhw_cmp r4,r1,r2,r3.*
.*swhw_cmp r4,r1,2,r3.*
.*swhw_mov r4,r1,r2,r3.*
.*swhw_mov r4,r1,2,r3.*
.*swhw_asr r4,r1,r2,r3.*
.*swhw_asr r4,r1,2,r3.*
.*swhw_lsr r4,r1,r2,r3.*
.*swhw_lsr r4,r1,2,r3.*
.*swhw_asl r4,r1,r2,r3.*
.*swhw_asl r4,r1,2,r3.*
.*sat16_add r4,r1,r2,r3.*
.*sat16_add r4,r1,2,r3.*
.*sat16_sub r4,r1,r2,r3.*
.*sat16_sub r4,r1,2,r3.*
.*sat16_cmp r4,r1,r2,r3.*
.*sat16_cmp r4,r1,2,r3.*
.*sat16_mov r4,r1,r2,r3.*
.*sat16_mov r4,r1,2,r3.*
.*sat16_asr r4,r1,r2,r3.*
.*sat16_asr r4,r1,2,r3.*
.*sat16_lsr r4,r1,r2,r3.*
.*sat16_lsr r4,r1,2,r3.*
.*sat16_asl r4,r1,r2,r3.*
.*sat16_asl r4,r1,2,r3.*
.*$gdb_prompt $" { pass "dsp_misc tests" }
-re "$gdb_prompt $" { fail "dsp_misc tests" }
timeout { fail "(timeout) dsp_misc tests" }
}
}
 
proc autoincrement_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/16i autoincrement_tests\n"
gdb_expect {
-re "
.*mov \\(r1\\+\\),r2.*
.*mov r3,\\(r4\\+\\).*
.*movhu \\(r6\\+\\),r7.*
.*movhu a0,\\(a1\\+\\).*
.*mov \\(r1\\+,64\\),r2.*
.*mov r1,\\(r2\\+,64\\).*
.*movhu \\(r1\\+,64\\),r2.*
.*movhu r1,\\(r2\\+,64\\).*
.*mov \\(r1\\+,131055\\),r2.*
.*mov r1,\\(r2\\+,131055\\).*
.*movhu \\(r1\\+,131055\\),r2.*
.*movhu r1,\\(r2\\+,131055\\).*
.*mov \\(r1\\+,2147417596\\),r2.*
.*mov r1,\\(r2\\+,2147417596\\).*
.*movhu \\(r1\\+,2147417596\\),r2.*
.*movhu r1,\\(r2\\+,2147417596\\).*
.*$gdb_prompt $" { pass "autoincrement tests" }
-re "$gdb_prompt $" { fail "autoincrement tests" }
timeout { fail "(timeout) autoincrement tests" }
}
}
 
proc dsp_autoincrement_tests { } {
global gdb_prompt
global hex
global decimal
 
send_gdb "x/11i dsp_autoincrement_tests\n"
gdb_expect {
-re "
.*mov_llt \\(r1\\+,4\\),r2.*
.*mov_lgt \\(r1\\+,4\\),r2.*
.*mov_lge \\(r1\\+,4\\),r2.*
.*mov_lle \\(r1\\+,4\\),r2.*
.*mov_lcs \\(r1\\+,4\\),r2.*
.*mov_lhi \\(r1\\+,4\\),r2.*
.*mov_lcc \\(r1\\+,4\\),r2.*
.*mov_lls \\(r1\\+,4\\),r2.*
.*mov_leq \\(r1\\+,4\\),r2.*
.*mov_lne \\(r1\\+,4\\),r2.*
.*mov_lra \\(r1\\+,4\\),r2.*
.*$gdb_prompt $" { pass "autoincrement tests" }
-re "$gdb_prompt $" { fail "autoincrement tests" }
timeout { fail "(timeout) autoincrement tests" }
}
}
 
# Start with a fresh gdb.
 
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load $binfile
 
call_tests
movm_tests
misc_tests
mov_tests
ext_tests
add_tests
sub_tests
cmp_tests
logical_tests
shift_tests
muldiv_tests
movbu_tests
movhu_tests
mac_tests
bit_tests
dsp_add_tests
dsp_cmp_tests
dsp_sub_tests
dsp_mov_tests
dsp_logical_tests
autoincrement_tests
dsp_autoincrement_tests
/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
/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
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.