aboutsummaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>1998-11-23 05:50:21 +0000
committerAndrew Cagney <cagney@redhat.com>1998-11-23 05:50:21 +0000
commita83d7d870f21777725939c88f72aef0f3944dec0 (patch)
tree00cb49847a09796d63c9f3eb7e87dd4b9c733c0b /sim
parent9935b2e7f3c9f694c5ecb522b851c4a2cc507c29 (diff)
downloadfsf-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/ChangeLog12
-rwxr-xr-xsim/mips/configure186
-rw-r--r--sim/mips/configure.in12
-rw-r--r--sim/mips/mips.igen908
-rw-r--r--sim/mips/sim-main.h4
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)