diff options
author | Andrew Cagney <cagney@redhat.com> | 1998-11-23 05:50:21 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 1998-11-23 05:50:21 +0000 |
commit | a83d7d870f21777725939c88f72aef0f3944dec0 (patch) | |
tree | 00cb49847a09796d63c9f3eb7e87dd4b9c733c0b /sim | |
parent | 9935b2e7f3c9f694c5ecb522b851c4a2cc507c29 (diff) | |
download | fsf-binutils-gdb-a83d7d870f21777725939c88f72aef0f3944dec0.zip fsf-binutils-gdb-a83d7d870f21777725939c88f72aef0f3944dec0.tar.gz fsf-binutils-gdb-a83d7d870f21777725939c88f72aef0f3944dec0.tar.bz2 |
Switch mips-lsi-elf mips16 simulator to igen (from gencode).
Diffstat (limited to 'sim')
-rw-r--r-- | sim/mips/ChangeLog | 12 | ||||
-rwxr-xr-x | sim/mips/configure | 186 | ||||
-rw-r--r-- | sim/mips/configure.in | 12 | ||||
-rw-r--r-- | sim/mips/mips.igen | 908 | ||||
-rw-r--r-- | sim/mips/sim-main.h | 4 |
5 files changed, 613 insertions, 509 deletions
diff --git a/sim/mips/ChangeLog b/sim/mips/ChangeLog index 67393ed..5cfff84 100644 --- a/sim/mips/ChangeLog +++ b/sim/mips/ChangeLog @@ -1,3 +1,15 @@ +Mon Nov 23 13:23:40 1998 Andrew Cagney <cagney@b1.cygnus.com> + + * configure.in: Configure mips-lsi-elf nee mips*lsi* as a + mipsIII/mips16 igen simulator. Fix sim_gen VS sim_igen typos. + * configure: Re-generate. + + * m16.igen (BREAK): Define breakpoint instruction. + (JALX32): Mark instruction as mips16 and not r3900. + * mips.igen (C.cond.fmt): Fix typo in instruction format. + + * sim-main.h (PENDING_FILL): Wrap C statements in do/while. + start-sanitize-r5900 Mon Nov 16 11:44:24 1998 Andrew Cagney <cagney@b1.cygnus.com> diff --git a/sim/mips/configure b/sim/mips/configure index 706514d..d142bdf 100755 --- a/sim/mips/configure +++ b/sim/mips/configure @@ -3006,15 +3006,55 @@ else fi done +for ac_hdr in dlfcn.h errno.h sys/stat.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:3014: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 3019 "configure" +#include "confdefs.h" +#include <$ac_hdr> +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:3024: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <<EOF +#define $ac_tr_hdr 1 +EOF + +else + echo "$ac_t""no" 1>&6 +fi +done + for ac_func in getrusage time sigaction __setfpucw do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3013: checking for $ac_func" >&5 +echo "configure:3053: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3018 "configure" +#line 3058 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3037,7 +3077,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3064,7 +3104,7 @@ done # Check for socket libraries echo $ac_n "checking for bind in -lsocket""... $ac_c" 1>&6 -echo "configure:3068: checking for bind in -lsocket" >&5 +echo "configure:3108: checking for bind in -lsocket" >&5 ac_lib_var=`echo socket'_'bind | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3072,7 +3112,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $LIBS" cat > conftest.$ac_ext <<EOF -#line 3076 "configure" +#line 3116 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -3083,7 +3123,7 @@ int main() { bind() ; return 0; } EOF -if { (eval echo configure:3087: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3127: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3111,7 +3151,7 @@ else fi echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:3115: checking for gethostbyname in -lnsl" >&5 +echo "configure:3155: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3119,7 +3159,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <<EOF -#line 3123 "configure" +#line 3163 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -3130,7 +3170,7 @@ int main() { gethostbyname() ; return 0; } EOF -if { (eval echo configure:3134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3174: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3306,12 +3346,12 @@ fi echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:3310: checking return type of signal handlers" >&5 +echo "configure:3350: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3315 "configure" +#line 3355 "configure" #include "confdefs.h" #include <sys/types.h> #include <signal.h> @@ -3328,7 +3368,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:3332: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -3348,7 +3388,7 @@ EOF echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:3352: checking for executable suffix" >&5 +echo "configure:3392: checking for executable suffix" >&5 if eval "test \"`echo '$''{'am_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3501,14 +3541,14 @@ else if test "x$cross_compiling" = "xno"; then echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:3505: checking whether byte ordering is bigendian" >&5 +echo "configure:3545: checking whether byte ordering is bigendian" >&5 if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_bigendian=unknown # See if sys/param.h defines the BYTE_ORDER macro. cat > conftest.$ac_ext <<EOF -#line 3512 "configure" +#line 3552 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/param.h> @@ -3519,11 +3559,11 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:3523: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3563: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # It does; now see whether it defined to BIG_ENDIAN or not. cat > conftest.$ac_ext <<EOF -#line 3527 "configure" +#line 3567 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/param.h> @@ -3534,7 +3574,7 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:3538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3578: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -3554,7 +3594,7 @@ if test "$cross_compiling" = yes; then { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext <<EOF -#line 3558 "configure" +#line 3598 "configure" #include "confdefs.h" main () { /* Are we little or big endian? From Harbison&Steele. */ @@ -3567,7 +3607,7 @@ main () { exit (u.c[sizeof (long) - 1] == 1); } EOF -if { (eval echo configure:3571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_bigendian=no else @@ -3958,10 +3998,14 @@ case "${target}" in mips16*-*-*) sim_default_gen=M16 sim_igen_filter="32,64,f" sim_m16_filter="16" - sim_use_igen=NO + sim_use_gen=NO ;; - mips-lsi-*) echo "NOTE: mips-lsi-elf still uses gencode" - sim_use_gen=NO + mips*lsi*) sim_default_gen=M16 + sim_use_gen=M16 + sim_igen_machine="-M mipsIII,mips16" + sim_m16_machine="-M mips16,mipsIII" + sim_igen_filter="32,f" + sim_m16_filter="16" ;; mips*-*-*) sim_default_gen=IGEN @@ -3989,7 +4033,7 @@ if test "${enable_sim_igen+set}" = set; then *) { echo "configure: error: "Unknown value $enableval passed to --enable-sim-igen"" 1>&2; exit 1; }; sim_gen="";; esac if test x"$silent" != x"yes" && test x"$sim_gen" != x""; then - echo "Setting sim_igen = $sim_gen" 6>&1 + echo "Setting sim_gen = $sim_gen" 6>&1 fi else sim_gen="${sim_use_gen}" @@ -4105,7 +4149,7 @@ esac # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 -echo "configure:4109: checking for X" >&5 +echo "configure:4153: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -4167,12 +4211,12 @@ if test "$ac_x_includes" = NO; then # First, try using that file with no special directory specified. cat > conftest.$ac_ext <<EOF -#line 4171 "configure" +#line 4215 "configure" #include "confdefs.h" #include <$x_direct_test_include> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4176: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4220: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4241,14 +4285,14 @@ if test "$ac_x_libraries" = NO; then ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <<EOF -#line 4245 "configure" +#line 4289 "configure" #include "confdefs.h" int main() { ${x_direct_test_function}() ; return 0; } EOF -if { (eval echo configure:4252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. @@ -4362,7 +4406,7 @@ then # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 -echo "configure:4366: checking for X" >&5 +echo "configure:4410: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -4424,12 +4468,12 @@ if test "$ac_x_includes" = NO; then # First, try using that file with no special directory specified. cat > conftest.$ac_ext <<EOF -#line 4428 "configure" +#line 4472 "configure" #include "confdefs.h" #include <$x_direct_test_include> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4433: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4477: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4498,14 +4542,14 @@ if test "$ac_x_libraries" = NO; then ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <<EOF -#line 4502 "configure" +#line 4546 "configure" #include "confdefs.h" int main() { ${x_direct_test_function}() ; return 0; } EOF -if { (eval echo configure:4509: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4553: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. @@ -4595,12 +4639,12 @@ fi if test "$no_x" = ""; then if test "$x_includes" = ""; then cat > conftest.$ac_ext <<EOF -#line 4599 "configure" +#line 4643 "configure" #include "confdefs.h" #include <X11/XIntrinsic.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4604: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4648: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -4620,15 +4664,15 @@ rm -f conftest* fi if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then echo $ac_n "checking for X11 header files""... $ac_c" 1>&6 -echo "configure:4624: checking for X11 header files" >&5 +echo "configure:4668: checking for X11 header files" >&5 XINCLUDES="# no special path needed" cat > conftest.$ac_ext <<EOF -#line 4627 "configure" +#line 4671 "configure" #include "confdefs.h" #include <X11/Intrinsic.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4632: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4676: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -4664,7 +4708,7 @@ rm -f conftest* if test "$no_x" = yes; then echo $ac_n "checking for X11 libraries""... $ac_c" 1>&6 -echo "configure:4668: checking for X11 libraries" >&5 +echo "configure:4712: checking for X11 libraries" >&5 XLIBSW=nope dirs="/usr/unsupported/lib /usr/local/lib /usr/X386/lib /usr/X11R6/lib /usr/X11R5/lib /usr/lib/X11R5 /usr/lib/X11R4 /usr/lib/X11 /usr/openwin/lib /usr/X11/lib /usr/sww/X11/lib" for i in $dirs ; do @@ -4684,7 +4728,7 @@ echo "configure:4668: checking for X11 libraries" >&5 fi if test "$XLIBSW" = nope ; then echo $ac_n "checking for XCreateWindow in -lXwindow""... $ac_c" 1>&6 -echo "configure:4688: checking for XCreateWindow in -lXwindow" >&5 +echo "configure:4732: checking for XCreateWindow in -lXwindow" >&5 ac_lib_var=`echo Xwindow'_'XCreateWindow | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4692,7 +4736,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXwindow $LIBS" cat > conftest.$ac_ext <<EOF -#line 4696 "configure" +#line 4740 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4703,7 +4747,7 @@ int main() { XCreateWindow() ; return 0; } EOF -if { (eval echo configure:4707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4751: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4819,7 +4863,7 @@ fi #-------------------------------------------------------------------- echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6 -echo "configure:4823: checking for main in -lXbsd" >&5 +echo "configure:4867: checking for main in -lXbsd" >&5 ac_lib_var=`echo Xbsd'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4827,14 +4871,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lXbsd $LIBS" cat > conftest.$ac_ext <<EOF -#line 4831 "configure" +#line 4875 "configure" #include "confdefs.h" int main() { main() ; return 0; } EOF -if { (eval echo configure:4838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4882: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4858,7 +4902,7 @@ fi # CYGNUS LOCAL: Store any socket library(ies) in the cache, and don't # mess up the cache values of the functions we check for. echo $ac_n "checking for socket libraries""... $ac_c" 1>&6 -echo "configure:4862: checking for socket libraries" >&5 +echo "configure:4906: checking for socket libraries" >&5 if eval "test \"`echo '$''{'sim_cv_lib_sockets'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4866,12 +4910,12 @@ else sim_checkBoth=0 unset ac_cv_func_connect echo $ac_n "checking for connect""... $ac_c" 1>&6 -echo "configure:4870: checking for connect" >&5 +echo "configure:4914: checking for connect" >&5 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4875 "configure" +#line 4919 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char connect(); below. */ @@ -4894,7 +4938,7 @@ connect(); ; return 0; } EOF -if { (eval echo configure:4898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4942: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -4917,7 +4961,7 @@ fi if test "$sim_checkSocket" = 1; then unset ac_cv_func_connect echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6 -echo "configure:4921: checking for main in -lsocket" >&5 +echo "configure:4965: checking for main in -lsocket" >&5 ac_lib_var=`echo socket'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4925,14 +4969,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $LIBS" cat > conftest.$ac_ext <<EOF -#line 4929 "configure" +#line 4973 "configure" #include "confdefs.h" int main() { main() ; return 0; } EOF -if { (eval echo configure:4936: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4959,12 +5003,12 @@ fi SOCKLIBSW="$SOCKLIBSW -lsocket -lnsl" unset ac_cv_func_accept echo $ac_n "checking for accept""... $ac_c" 1>&6 -echo "configure:4963: checking for accept" >&5 +echo "configure:5007: checking for accept" >&5 if eval "test \"`echo '$''{'ac_cv_func_accept'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4968 "configure" +#line 5012 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char accept(); below. */ @@ -4987,7 +5031,7 @@ accept(); ; return 0; } EOF -if { (eval echo configure:4991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_accept=yes" else @@ -5014,12 +5058,12 @@ fi sim_oldLibs=$SOCKLIBSW SOCKLIBSW="$SOCKLIBSW $sim_cv_lib_sockets" echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 -echo "configure:5018: checking for gethostbyname" >&5 +echo "configure:5062: checking for gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5023 "configure" +#line 5067 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char gethostbyname(); below. */ @@ -5042,7 +5086,7 @@ gethostbyname(); ; return 0; } EOF -if { (eval echo configure:5046: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else @@ -5060,7 +5104,7 @@ if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6 -echo "configure:5064: checking for main in -lnsl" >&5 +echo "configure:5108: checking for main in -lnsl" >&5 ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5068,14 +5112,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <<EOF -#line 5072 "configure" +#line 5116 "configure" #include "confdefs.h" int main() { main() ; return 0; } EOF -if { (eval echo configure:5079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5123: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5135,17 +5179,17 @@ for ac_hdr in string.h strings.h stdlib.h stdlib.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5139: checking for $ac_hdr" >&5 +echo "configure:5183: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5144 "configure" +#line 5188 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5149: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5193: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5172,7 +5216,7 @@ fi done echo $ac_n "checking for fabs in -lm""... $ac_c" 1>&6 -echo "configure:5176: checking for fabs in -lm" >&5 +echo "configure:5220: checking for fabs in -lm" >&5 ac_lib_var=`echo m'_'fabs | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5180,7 +5224,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <<EOF -#line 5184 "configure" +#line 5228 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5191,7 +5235,7 @@ int main() { fabs() ; return 0; } EOF -if { (eval echo configure:5195: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5221,12 +5265,12 @@ fi for ac_func in aint anint sqrt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5225: checking for $ac_func" >&5 +echo "configure:5269: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5230 "configure" +#line 5274 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5249,7 +5293,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5253: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else diff --git a/sim/mips/configure.in b/sim/mips/configure.in index d22a304..3402edd 100644 --- a/sim/mips/configure.in +++ b/sim/mips/configure.in @@ -197,10 +197,14 @@ case "${target}" in mips16*-*-*) sim_default_gen=M16 sim_igen_filter="32,64,f" sim_m16_filter="16" - sim_use_igen=NO + sim_use_gen=NO ;; - mips-lsi-*) echo "NOTE: mips-lsi-elf still uses gencode" - sim_use_gen=NO + mips*lsi*) sim_default_gen=M16 + sim_use_gen=M16 + sim_igen_machine="-M mipsIII,mips16" + sim_m16_machine="-M mips16,mipsIII" + sim_igen_filter="32,f" + sim_m16_filter="16" ;; mips*-*-*) sim_default_gen=IGEN @@ -227,7 +231,7 @@ AC_ARG_ENABLE(sim-igen, *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-igen"); sim_gen="";; esac if test x"$silent" != x"yes" && test x"$sim_gen" != x""; then - echo "Setting sim_igen = $sim_gen" 6>&1 + echo "Setting sim_gen = $sim_gen" 6>&1 fi],[sim_gen="${sim_use_gen}"])dnl AC_SUBST(sim_gen) diff --git a/sim/mips/mips.igen b/sim/mips/mips.igen index 7783f63..3a9d426 100644 --- a/sim/mips/mips.igen +++ b/sim/mips/mips.igen @@ -43,13 +43,14 @@ // start-sanitize-tx19 :model:::tx19:tx19: // end-sanitize-tx19 +:model:::vr4100:mips4100: // start-sanitize-vr4320 :model:::vr4320:mips4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus :model:::vr5400:mips5400: :model:::mdmx:mdmx: -// end-sanitize-vr5400 +// end-sanitize-cygnus :model:::vr5000:mips5000: @@ -96,8 +97,27 @@ return CIA + 8; } +// start-sanitize-branchbug4011 +:function:::void:check_4011_branch_bug: +{ + if (BRANCHBUG4011_OPTION == 2 && BRANCHBUG4011_LAST_TARGET == CIA) + sim_engine_abort (SD, CPU, CIA, "4011 BRANCH BUG: %s at 0x%08lx was target of branch at 0x%08lx\n", + itable[MY_INDEX].name, + (long) CIA, + (long) BRANCHBUG4011_LAST_CIA); +} +:function:::void:mark_4011_branch_bug:address_word target +{ + if (BRANCHBUG4011_OPTION) + { + BRANCHBUG4011_OPTION = 2; + BRANCHBUG4011_LAST_TARGET = target; + BRANCHBUG4011_LAST_CIA = CIA; + } +} +// end-sanitize-branchbug4011 // Helper: // // Check that an access to a HI/LO register meets timing requirements @@ -129,9 +149,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus { signed64 time = sim_events_time (SD); int ok = check_mf_cycles (SD_, history, time, "MT"); @@ -162,9 +182,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -218,9 +238,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus { signed64 time = sim_events_time (SD); int ok = (check_mf_cycles (SD_, hi, time, "OP") @@ -259,9 +279,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -315,9 +335,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -344,9 +364,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -380,9 +400,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -410,9 +430,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -440,9 +460,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -463,9 +483,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -488,9 +508,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -500,8 +520,12 @@ // end-sanitize-tx19 { address_word offset = EXTEND16 (OFFSET) << 2; + check_branch_bug (); if ((signed_word) GPR[RS] == (signed_word) GPR[RT]) - DELAY_SLOT (NIA + offset); + { + mark_branch_bug (NIA+offset); + DELAY_SLOT (NIA + offset); + } } @@ -515,9 +539,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -527,8 +551,12 @@ // end-sanitize-tx19 { address_word offset = EXTEND16 (OFFSET) << 2; + check_branch_bug (); if ((signed_word) GPR[RS] == (signed_word) GPR[RT]) - DELAY_SLOT (NIA + offset); + { + mark_branch_bug (NIA+offset); + DELAY_SLOT (NIA + offset); + } else NULLIFY_NEXT_INSTRUCTION (); } @@ -542,9 +570,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -554,8 +582,12 @@ // end-sanitize-tx19 { address_word offset = EXTEND16 (OFFSET) << 2; + check_branch_bug (); if ((signed_word) GPR[RS] >= 0) - DELAY_SLOT (NIA + offset); + { + mark_branch_bug (NIA+offset); + DELAY_SLOT (NIA + offset); + } } @@ -567,9 +599,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -579,9 +611,13 @@ // end-sanitize-tx19 { address_word offset = EXTEND16 (OFFSET) << 2; + check_branch_bug (); RA = (CIA + 8); if ((signed_word) GPR[RS] >= 0) - DELAY_SLOT (NIA + offset); + { + mark_branch_bug (NIA+offset); + DELAY_SLOT (NIA + offset); + } } @@ -595,9 +631,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -607,11 +643,15 @@ // end-sanitize-tx19 { address_word offset = EXTEND16 (OFFSET) << 2; + check_branch_bug (); RA = (CIA + 8); /* NOTE: The branch occurs AFTER the next instruction has been executed */ if ((signed_word) GPR[RS] >= 0) - DELAY_SLOT (NIA + offset); + { + mark_branch_bug (NIA+offset); + DELAY_SLOT (NIA + offset); + } else NULLIFY_NEXT_INSTRUCTION (); } @@ -627,9 +667,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -639,8 +679,12 @@ // end-sanitize-tx19 { address_word offset = EXTEND16 (OFFSET) << 2; + check_branch_bug (); if ((signed_word) GPR[RS] >= 0) - DELAY_SLOT (NIA + offset); + { + mark_branch_bug (NIA+offset); + DELAY_SLOT (NIA + offset); + } else NULLIFY_NEXT_INSTRUCTION (); } @@ -654,9 +698,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -666,8 +710,12 @@ // end-sanitize-tx19 { address_word offset = EXTEND16 (OFFSET) << 2; + check_branch_bug (); if ((signed_word) GPR[RS] > 0) - DELAY_SLOT (NIA + offset); + { + mark_branch_bug (NIA+offset); + DELAY_SLOT (NIA + offset); + } } @@ -681,9 +729,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -693,10 +741,14 @@ // end-sanitize-tx19 { address_word offset = EXTEND16 (OFFSET) << 2; + check_branch_bug (); /* NOTE: The branch occurs AFTER the next instruction has been executed */ if ((signed_word) GPR[RS] > 0) - DELAY_SLOT (NIA + offset); + { + mark_branch_bug (NIA+offset); + DELAY_SLOT (NIA + offset); + } else NULLIFY_NEXT_INSTRUCTION (); } @@ -710,9 +762,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -722,10 +774,14 @@ // end-sanitize-tx19 { address_word offset = EXTEND16 (OFFSET) << 2; + check_branch_bug (); /* NOTE: The branch occurs AFTER the next instruction has been executed */ if ((signed_word) GPR[RS] <= 0) - DELAY_SLOT (NIA + offset); + { + mark_branch_bug (NIA+offset); + DELAY_SLOT (NIA + offset); + } } @@ -739,9 +795,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -751,8 +807,12 @@ // end-sanitize-tx19 { address_word offset = EXTEND16 (OFFSET) << 2; + check_branch_bug (); if ((signed_word) GPR[RS] <= 0) - DELAY_SLOT (NIA + offset); + { + mark_branch_bug (NIA+offset); + DELAY_SLOT (NIA + offset); + } else NULLIFY_NEXT_INSTRUCTION (); } @@ -766,9 +826,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -778,8 +838,12 @@ // end-sanitize-tx19 { address_word offset = EXTEND16 (OFFSET) << 2; + check_branch_bug (); if ((signed_word) GPR[RS] < 0) - DELAY_SLOT (NIA + offset); + { + mark_branch_bug (NIA+offset); + DELAY_SLOT (NIA + offset); + } } @@ -791,9 +855,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -803,11 +867,15 @@ // end-sanitize-tx19 { address_word offset = EXTEND16 (OFFSET) << 2; + check_branch_bug (); RA = (CIA + 8); /* NOTE: The branch occurs AFTER the next instruction has been executed */ if ((signed_word) GPR[RS] < 0) - DELAY_SLOT (NIA + offset); + { + mark_branch_bug (NIA+offset); + DELAY_SLOT (NIA + offset); + } } @@ -821,9 +889,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -833,9 +901,13 @@ // end-sanitize-tx19 { address_word offset = EXTEND16 (OFFSET) << 2; + check_branch_bug (); RA = (CIA + 8); if ((signed_word) GPR[RS] < 0) - DELAY_SLOT (NIA + offset); + { + mark_branch_bug (NIA+offset); + DELAY_SLOT (NIA + offset); + } else NULLIFY_NEXT_INSTRUCTION (); } @@ -851,9 +923,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -863,10 +935,14 @@ // end-sanitize-tx19 { address_word offset = EXTEND16 (OFFSET) << 2; + check_branch_bug (); /* NOTE: The branch occurs AFTER the next instruction has been executed */ if ((signed_word) GPR[RS] < 0) - DELAY_SLOT (NIA + offset); + { + mark_branch_bug (NIA+offset); + DELAY_SLOT (NIA + offset); + } else NULLIFY_NEXT_INSTRUCTION (); } @@ -880,9 +956,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -892,8 +968,12 @@ // end-sanitize-tx19 { address_word offset = EXTEND16 (OFFSET) << 2; + check_branch_bug (); if ((signed_word) GPR[RS] != (signed_word) GPR[RT]) - DELAY_SLOT (NIA + offset); + { + mark_branch_bug (NIA+offset); + DELAY_SLOT (NIA + offset); + } } @@ -907,9 +987,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -919,8 +999,12 @@ // end-sanitize-tx19 { address_word offset = EXTEND16 (OFFSET) << 2; + check_branch_bug (); if ((signed_word) GPR[RS] != (signed_word) GPR[RT]) - DELAY_SLOT (NIA + offset); + { + mark_branch_bug (NIA+offset); + DELAY_SLOT (NIA + offset); + } else NULLIFY_NEXT_INSTRUCTION (); } @@ -934,9 +1018,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -991,9 +1075,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1021,9 +1105,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1057,9 +1141,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1087,9 +1171,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1136,9 +1220,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1180,9 +1264,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-tx19 *tx19: // end-sanitize-tx19 @@ -1225,9 +1309,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1269,9 +1353,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1367,9 +1451,9 @@ "dmult r<RS>, r<RT>":RD == 0 "dmult r<RD>, r<RS>, r<RT>" *vr5000: -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus { do_dmult (SD_, RS, RT, RD); } @@ -1398,9 +1482,9 @@ "dmultu r<RD>, r<RS>, r<RT>":RD == 0 "dmultu r<RS>, r<RT>" *vr5000: -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus { do_dmultu (SD_, RS, RT, RD); } @@ -1415,9 +1499,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1438,9 +1522,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1462,9 +1546,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1486,9 +1570,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1509,9 +1593,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1540,9 +1624,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1562,9 +1646,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1585,9 +1669,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1608,9 +1692,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1631,9 +1715,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1666,9 +1750,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1687,9 +1771,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1712,9 +1796,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1739,9 +1823,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1763,9 +1847,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1807,9 +1891,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1829,9 +1913,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1852,9 +1936,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1875,9 +1959,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -1897,9 +1981,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1919,9 +2003,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1940,9 +2024,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1962,9 +2046,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -1986,9 +2070,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2036,9 +2120,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2078,9 +2162,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2102,9 +2186,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2124,9 +2208,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2203,9 +2287,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2256,9 +2340,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2279,9 +2363,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2308,9 +2392,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2339,9 +2423,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2362,9 +2446,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2382,9 +2466,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2402,9 +2486,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2426,9 +2510,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2471,9 +2555,9 @@ 000000,5.RS,5.RT,5.RD,00000011000:SPECIAL:32::MULT "mult r<RD>, r<RS>, r<RT>" *vr5000: -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2513,9 +2597,9 @@ 000000,5.RS,5.RT,5.RD,00000011001:SPECIAL:32::MULTU "multu r<RD>, r<RS>, r<RT>" *vr5000: -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2542,9 +2626,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2571,9 +2655,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2601,9 +2685,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2622,9 +2706,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2673,9 +2757,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2697,9 +2781,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2747,9 +2831,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2793,9 +2877,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2816,9 +2900,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-tx19 *tx19: // end-sanitize-tx19 @@ -2835,9 +2919,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2857,9 +2941,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2878,9 +2962,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2908,9 +2992,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2939,9 +3023,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2968,9 +3052,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -2997,9 +3081,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3026,9 +3110,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3056,9 +3140,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3086,9 +3170,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3118,9 +3202,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3149,9 +3233,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3180,9 +3264,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3202,9 +3286,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3237,9 +3321,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3263,9 +3347,9 @@ *vr4320: // end-sanitize-vr4320 *vr5000: -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3281,9 +3365,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -3347,9 +3431,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3390,9 +3474,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3415,9 +3499,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3437,9 +3521,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3461,9 +3545,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3485,9 +3569,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3509,9 +3593,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3533,9 +3617,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3557,9 +3641,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3581,9 +3665,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3605,9 +3689,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3629,9 +3713,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3653,9 +3737,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3677,9 +3761,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3701,9 +3785,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3725,9 +3809,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3754,9 +3838,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3783,9 +3867,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -3875,9 +3959,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -3904,9 +3988,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -3939,11 +4023,13 @@ *r5900: // end-sanitize-r5900 { + check_branch_bug (); TRACE_BRANCH_INPUT (PREVCOC1()); if (PREVCOC1() == TF) { address_word dest = NIA + (EXTEND16 (OFFSET) << 2); TRACE_BRANCH_RESULT (dest); + mark_branch_bug (dest); DELAY_SLOT (dest); } else if (ND) @@ -3965,17 +4051,20 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: // end-sanitize-tx19 { + check_branch_bug (); if (GETFCC(CC) == TF) { - DELAY_SLOT (NIA + (EXTEND16 (OFFSET) << 2)); + address_word dest = NIA + (EXTEND16 (OFFSET) << 2); + mark_branch_bug (dest); + DELAY_SLOT (dest); } else if (ND) { @@ -4030,7 +4119,7 @@ 010001,10,3.FMT,5.FT,5.FS,3.0,00,11,4.COND:COP1:32::C.cond.fmt *mipsI,mipsII,mipsIII: -"c.%s<COND>.%s<FMT> f<FS>, f<FT>": +"c.%s<COND>.%s<FMT> f<FS>, f<FT>" { do_c_cond_fmt (SD_, FMT, FT, FS, 0, COND, instruction_0); } @@ -4043,9 +4132,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -4063,9 +4152,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -4095,9 +4184,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -4152,9 +4241,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -4209,9 +4298,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -4238,9 +4327,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -4269,9 +4358,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -4297,9 +4386,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -4325,9 +4414,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -4380,9 +4469,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -4418,9 +4507,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -4451,9 +4540,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -4484,9 +4573,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -4503,9 +4592,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus { COP_LD (1, FD, do_load (SD_, AccessLength_DOUBLEWORD, GPR[BASE], GPR[INDEX])); } @@ -4519,9 +4608,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -4541,9 +4630,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus { COP_LW (1, FD, do_load (SD_, AccessLength_WORD, GPR[BASE], GPR[INDEX])); } @@ -4560,9 +4649,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus { unsigned32 instruction = instruction_0; int destreg = ((instruction >> 6) & 0x0000001F); @@ -4582,9 +4671,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus { unsigned32 instruction = instruction_0; int destreg = ((instruction >> 6) & 0x0000001F); @@ -4622,9 +4711,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -4645,9 +4734,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -4671,9 +4760,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -4691,9 +4780,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -4715,9 +4804,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -4746,9 +4835,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -4771,9 +4860,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -4797,9 +4886,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -4825,9 +4914,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -4854,9 +4943,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -4883,9 +4972,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus { unsigned32 instruction = instruction_0; int destreg = ((instruction >> 6) & 0x0000001F); @@ -4906,9 +4995,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus { unsigned32 instruction = instruction_0; int destreg = ((instruction >> 6) & 0x0000001F); @@ -4929,9 +5018,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus { unsigned32 instruction = instruction_0; int destreg = ((instruction >> 6) & 0x0000001F); @@ -4952,9 +5041,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus { unsigned32 instruction = instruction_0; int destreg = ((instruction >> 6) & 0x0000001F); @@ -4974,9 +5063,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus { unsigned32 instruction = instruction_0; int fs = ((instruction >> 11) & 0x0000001F); @@ -4998,9 +5087,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus { unsigned32 instruction = instruction_0; int destreg = ((instruction >> 6) & 0x0000001F); @@ -5023,9 +5112,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -5056,9 +5145,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -5087,9 +5176,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus { unsigned32 instruction = instruction_0; int destreg = ((instruction >> 6) & 0x0000001F); @@ -5113,9 +5202,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -5132,9 +5221,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus { do_store (SD_, AccessLength_DOUBLEWORD, GPR[BASE], GPR[INDEX], COP_SD (1, FS)); } @@ -5149,9 +5238,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -5177,9 +5266,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -5207,9 +5296,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -5255,9 +5344,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus { unsigned32 instruction = instruction_0; int fs = ((instruction >> 11) & 0x0000001F); @@ -5297,9 +5386,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -5330,9 +5419,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -5368,9 +5457,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus 010000,01000,00010,16.OFFSET:COP0:32::BC0FL @@ -5380,9 +5469,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus 010000,01000,00001,16.OFFSET:COP0:32::BC0T @@ -5398,9 +5487,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus 101111,5.BASE,5.OP,16.OFFSET:NORMAL:32::CACHE @@ -5410,9 +5499,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus *r3900: // start-sanitize-tx19 *tx19: @@ -5439,9 +5528,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus 010000,10000,000000000000000,111000:COP0:32::EI @@ -5451,9 +5540,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus 010000,10000,000000000000000,011000:COP0:32::ERET @@ -5464,9 +5553,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -5494,9 +5583,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -5517,9 +5606,9 @@ *vr4320: // end-sanitize-vr4320 *vr5000: -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -5539,9 +5628,9 @@ *vr4320: // end-sanitize-vr4320 *vr5000: -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 *r5900: // end-sanitize-r5900 @@ -5573,9 +5662,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus 010000,10000,000000000000000,000001:COP0:32::TLBR @@ -5585,9 +5674,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus 010000,10000,000000000000000,000010:COP0:32::TLBWI @@ -5597,9 +5686,9 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus 010000,10000,000000000000000,000110:COP0:32::TLBWR @@ -5609,23 +5698,20 @@ // start-sanitize-vr4320 *vr4320: // end-sanitize-vr4320 -// start-sanitize-vr5400 +// start-sanitize-cygnus *vr5400: -// end-sanitize-vr5400 +// end-sanitize-cygnus :include:::m16.igen -// start-sanitize-vr4320 -:include::vr4320:vr4320.igen -// end-sanitize-vr4320 -// start-sanitize-vr5400 -:include::vr5400:vr5400.igen +// start-sanitize-cygnus :include:64,f::mdmx.igen -// end-sanitize-vr5400 +// end-sanitize-cygnus // start-sanitize-r5900 :include::r5900:r5900.igen // end-sanitize-r5900 :include:::tx.igen +:include:::vr.igen // start-sanitize-cygnus-never @@ -5684,45 +5770,3 @@ // } // end-sanitize-cygnus-never -// start-sanitize-cygnus-never - -// // FIXME FIXME FIXME This apparently belongs to the vr4100 which -// // isn't yet reconized by this simulator. -// 000000,5.RS,5.RT,0000000000101000:SPECIAL:32::MADD16 -// *vr4100: -// { -// unsigned32 instruction = instruction_0; -// signed_word op2 = GPR[((instruction >> 16) & 0x0000001F)]; -// signed_word op1 = GPR[((instruction >> 21) & 0x0000001F)]; -// { -// CHECKHILO("Multiply-Add"); -// { -// unsigned64 temp = (op1 * op2); -// temp += (SET64HI(VL4_8(HI)) | VL4_8(LO)); -// LO = SIGNEXTEND((unsigned64)VL4_8(temp),32); -// HI = SIGNEXTEND((unsigned64)VH4_8(temp),32); -// } -// } -// } - -// end-sanitize-cygnus-never -// start-sanitize-cygnus-never - -// // FIXME FIXME FIXME This apparently belongs to the vr4100 which -// // isn't yet reconized by this simulator. -// 000000,5.RS,5.RT,0000000000101001:SPECIAL:64::DMADD16 -// *vr4100: -// { -// unsigned32 instruction = instruction_0; -// signed_word op2 = GPR[((instruction >> 16) & 0x0000001F)]; -// signed_word op1 = GPR[((instruction >> 21) & 0x0000001F)]; -// { -// CHECKHILO("Multiply-Add"); -// { -// unsigned64 temp = (op1 * op2); -// LO = LO + temp; -// } -// } -// } - -// end-sanitize-cygnus-never diff --git a/sim/mips/sim-main.h b/sim/mips/sim-main.h index 42c152c..20f13a3 100644 --- a/sim/mips/sim-main.h +++ b/sim/mips/sim-main.h @@ -495,7 +495,7 @@ memset (&(CPU)->pending, 0, sizeof ((CPU)->pending)) /* For backward compatibility */ #define PENDING_FILL(R,VAL) \ -{ \ +do { \ if ((R) >= FGRIDX && (R) < FGRIDX + NR_FGR) \ { \ PENDING_SCHED(FGR[(R) - FGRIDX], VAL, 1, -1); \ @@ -503,7 +503,7 @@ memset (&(CPU)->pending, 0, sizeof ((CPU)->pending)) } \ else \ PENDING_SCHED(GPR[(R)], VAL, 1, -1); \ -} +} while (0) |