Switch mips-lsi-elf mips16 simulator to igen (from gencode).
authorAndrew Cagney <cagney@redhat.com>
Mon, 23 Nov 1998 05:50:21 +0000 (05:50 +0000)
committerAndrew Cagney <cagney@redhat.com>
Mon, 23 Nov 1998 05:50:21 +0000 (05:50 +0000)
sim/mips/ChangeLog
sim/mips/configure
sim/mips/configure.in
sim/mips/mips.igen
sim/mips/sim-main.h

index 67393edfe767c9e6deac31c3e6f90f54e83d4675..5cfff84a163d7780c2832e461a7b0ff3ae4414b0 100644 (file)
@@ -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>
 
index 706514db48798592ab7f7d5940615dc64d0c63c8..d142bdf37386fbfc5dfba90fbaafa0aaf6c41520 100755 (executable)
@@ -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
index d22a304ef040855796e4a5ac7506611968afa884..3402edd882aee1b46d07a3dce1cc49b508ec3a23 100644 (file)
@@ -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)
 
index 7783f6326e56fa0b6cefe76297d537328bcb2c51..3a9d426e0766bd37f84ce5ec82c17056cb97d95e 100644 (file)
 // 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:
 
 
   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
 // 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");
 // 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:
 // 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")
 // 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:
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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);
+    }
 }
 
 
 // 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
 // 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 ();
 }
 // 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
 // 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);
+    }
 }
 
 
 // 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
 // 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);
+    }
 }
 
 
 // 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
 // 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 ();
 }
 // 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
 // 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 ();
 }
 // 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
 // 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);
+    }
 }
 
 
 // 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
 // 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 ();
 }
 // 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
 // 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);
+    }
 }
 
 
 // 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
 // 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 ();
 }
 // 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
 // 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);
+    }
 }
 
 
 // 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
 // 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);
+    }
 }
 
 
 // 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
 // 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 ();
 }
 // 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
 // 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 ();
 }
 // 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
 // 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);
+    }
 }
 
 
 // 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
 // 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 ();
 }
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 "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);
 }
 "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);
 }
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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:
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 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
 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 *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
 // 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:
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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:
 // 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:
 *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)
 // 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)
     {
 
 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);
 }
 // 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:
 // 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
 // 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
 // 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:
 // 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:
 // 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:
 // 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:
 // 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:
 // 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:
 // 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
 // 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
 // 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
 // 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:
 // 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]));
 }
 // 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
 // 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]));
 }
 // 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);
 // 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);
 // 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:
 // 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:
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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:
 // 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:
 // 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);
 // 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);
 // 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);
 // 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);
 // 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);
 // 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);
 // 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
 // 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
 // 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);
 // 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:
 // 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));
 }
 // 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:
 // 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:
 // 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
 // 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);
 // 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
 // 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
 // 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
 // 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
 // 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
 // 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:
 // 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
 // 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
 // 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
 // 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
 *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
 *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
 // 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
 // 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
 // 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
 // start-sanitize-vr4320
 *vr4320:
 // end-sanitize-vr4320
-// start-sanitize-vr5400
+// start-sanitize-cygnus
 *vr5400:
-// end-sanitize-vr5400
+// end-sanitize-cygnus
 
 \f
 :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
 \f
 // start-sanitize-cygnus-never
 
 // }
 
 // 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
index 42c152cb8401f5fcc4ab261bfd550d68c9e9e6f9..20f13a3c78bfe9acfc4581fdbfe1e314ce54b0f4 100644 (file)
@@ -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)