diff options
author | Andrew Cagney <cagney@redhat.com> | 1997-09-12 05:56:38 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 1997-09-12 05:56:38 +0000 |
commit | 410230cf6d65003b0595a7ef712b671d1bb77b0d (patch) | |
tree | c6ba4f2a0edfd794857fce8061b26e448ef8a182 /sim/v850 | |
parent | 944deab68edff4993da304bc2ed56827310b11ca (diff) | |
download | gdb-410230cf6d65003b0595a7ef712b671d1bb77b0d.zip gdb-410230cf6d65003b0595a7ef712b671d1bb77b0d.tar.gz gdb-410230cf6d65003b0595a7ef712b671d1bb77b0d.tar.bz2 |
Check reserved bits before executing instructions.
Make v850[eq] the the default simulator.
Report illegal instructions.
Include v850e instructions in v850eq.
Diffstat (limited to 'sim/v850')
-rw-r--r-- | sim/v850/ChangeLog | 23 | ||||
-rw-r--r-- | sim/v850/Makefile.in | 4 | ||||
-rwxr-xr-x | sim/v850/configure | 103 | ||||
-rw-r--r-- | sim/v850/configure.in | 1 | ||||
-rw-r--r-- | sim/v850/interp.c | 6 | ||||
-rw-r--r-- | sim/v850/sim-main.h | 1 | ||||
-rw-r--r-- | sim/v850/v850.igen | 49 |
7 files changed, 144 insertions, 43 deletions
diff --git a/sim/v850/ChangeLog b/sim/v850/ChangeLog index feab6ef..6ac5cb4 100644 --- a/sim/v850/ChangeLog +++ b/sim/v850/ChangeLog @@ -1,3 +1,26 @@ +Fri Sep 12 15:11:03 1997 Andrew Cagney <cagney@b1.cygnus.com> + +start-sanitize-v850eq + * v850.igen (prepare, ...): Add to v850eq architecture. + +end-sanitize-v850eq +start-sanitize-v850e + * interp.c (sim_open): Default to v850eq. + +end-sanitize-v850e +start-sanitize-v850eq + + * interp.c (sim_open): Default to v850e. +end-sanitize-v850eq + * sim-main.h (signal.h): Include. + + * v850.igen (illegal): Report/halt illegal instructions. + + * Makefile.in (SIM_EXTRA_CFLAGS): Add SIM_RESERVED_BITS. + + * configure.in: Add reserved bits option. + * configure: Regenerate. + Thu Sep 11 08:40:03 1997 Andrew Cagney <cagney@b1.cygnus.com> * interp.c (sim_open): Use sim_do_commandf instead of asprintf. diff --git a/sim/v850/Makefile.in b/sim/v850/Makefile.in index cadd913..723d224 100644 --- a/sim/v850/Makefile.in +++ b/sim/v850/Makefile.in @@ -51,12 +51,14 @@ SIM_EXTRA_DEPS = v850_sim.h sim-main.h simops.h itable.h SIM_WARNINGS=@sim_warnings@ SIM_ENDIAN=@sim_endian@ SIM_HOSTENDIAN=@sim_hostendian@ +SIM_RESERVED_BITS=@sim_reserved_bits@ SIM_EXTRA_CFLAGS = \ -DDEBUG \ -I$(srcdir)/../../newlib/libc/sys/sysnecv850 \ $(SIM_WARNINGS) \ $(SIM_ENDIAN) \ - $(SIM_HOSTENDIAN) + $(SIM_HOSTENDIAN) \ + $(SIM_RESERVED_BITS) SIM_EXTRA_CLEAN = clean-extra INCLUDE = $(sim_main_headers) $(SIM_EXTRA_DEPS) diff --git a/sim/v850/configure b/sim/v850/configure index b4e7d53..f9b1629 100755 --- a/sim/v850/configure +++ b/sim/v850/configure @@ -29,6 +29,8 @@ ac_help="$ac_help --enable-sim-hostendain=end Specify host byte endian orientation." ac_help="$ac_help --enable-sim-warnings=opts Extra CFLAGS for turning on compiler warnings" +ac_help="$ac_help + --enable-sim-reserved-bits Specify whether to check reserved bits in instruction." # Initialize some variables set by options. # The variables have the same names as the options, with @@ -538,7 +540,7 @@ fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:542: checking how to run the C preprocessor" >&5 +echo "configure:544: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -553,13 +555,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext <<EOF -#line 557 "configure" +#line 559 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:563: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:565: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -570,13 +572,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF -#line 574 "configure" +#line 576 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:580: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:582: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -649,7 +651,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:653: checking host system type" >&5 +echo "configure:655: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -670,7 +672,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:674: checking target system type" >&5 +echo "configure:676: checking target system type" >&5 target_alias=$target case "$target_alias" in @@ -688,7 +690,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:692: checking build system type" >&5 +echo "configure:694: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -732,7 +734,7 @@ test "$program_transform_name" = "" && program_transform_name="s,x,x," # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:736: checking for $ac_word" >&5 +echo "configure:738: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -761,7 +763,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:765: checking for $ac_word" >&5 +echo "configure:767: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -809,7 +811,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:813: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:815: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -819,11 +821,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <<EOF -#line 823 "configure" +#line 825 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:827: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -843,12 +845,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:847: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:849: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:852: checking whether we are using GNU C" >&5 +echo "configure:854: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -857,7 +859,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:861: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:863: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -872,7 +874,7 @@ if test $ac_cv_prog_gcc = yes; then ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:876: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:878: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -910,7 +912,7 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:914: checking for a BSD compatible install" >&5 +echo "configure:916: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -975,7 +977,7 @@ AR=${AR-ar} # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:979: checking for $ac_word" >&5 +echo "configure:981: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1009,17 +1011,17 @@ for ac_hdr in stdlib.h string.h strings.h unistd.h time.h sys/time.h sys/resourc do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1013: checking for $ac_hdr" >&5 +echo "configure:1015: 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 1018 "configure" +#line 1020 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1023: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1025: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1048,12 +1050,12 @@ done for ac_func in getrusage time do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1052: checking for $ac_func" >&5 +echo "configure:1054: 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 1057 "configure" +#line 1059 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -1076,7 +1078,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:1080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1082: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -1231,12 +1233,12 @@ fi echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:1235: checking return type of signal handlers" >&5 +echo "configure:1237: 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 1240 "configure" +#line 1242 "configure" #include "confdefs.h" #include <sys/types.h> #include <signal.h> @@ -1253,7 +1255,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:1257: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1259: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -1342,14 +1344,14 @@ else if test "x$cross_compiling" = "xno"; then echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:1346: checking whether byte ordering is bigendian" >&5 +echo "configure:1348: 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 1353 "configure" +#line 1355 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/param.h> @@ -1360,11 +1362,11 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:1364: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1366: \"$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 1368 "configure" +#line 1370 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/param.h> @@ -1375,7 +1377,7 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:1379: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -1395,7 +1397,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 1399 "configure" +#line 1401 "configure" #include "confdefs.h" main () { /* Are we little or big endian? From Harbison&Steele. */ @@ -1408,7 +1410,7 @@ main () { exit (u.c[sizeof (long) - 1] == 1); } EOF -if { (eval echo configure:1412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1414: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_c_bigendian=no else @@ -1460,15 +1462,33 @@ fi +default_sim_reserved_bits="1" +# Check whether --enable-sim-reserved-bits or --disable-sim-reserved-bits was given. +if test "${enable_sim_reserved_bits+set}" = set; then + enableval="$enable_sim_reserved_bits" + case "${enableval}" in + yes) sim_reserved_bits="-DWITH_RESERVED_BITS=1";; + no) sim_reserved_bits="-DWITH_RESERVED_BITS=0";; + *) { echo "configure: error: "--enable-sim-reserved-bits does not take a value"" 1>&2; exit 1; }; sim_reserved_bits="";; +esac +if test x"$silent" != x"yes" && test x"$sim_reserved_bits" != x""; then + echo "Setting reserved flags = $sim_reserved_bits" 6>&1 +fi +else + sim_reserved_bits="-DWITH_RESERVED_BITS=${default_sim_reserved_bits}" +fi + + + for ac_func in time chmod utime fork execve execv chown do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1467: checking for $ac_func" >&5 +echo "configure:1487: 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 1472 "configure" +#line 1492 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -1491,7 +1511,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:1495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -1519,17 +1539,17 @@ for ac_hdr in unistd.h stdlib.h string.h strings.h utime.h time.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1523: checking for $ac_hdr" >&5 +echo "configure:1543: 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 1528 "configure" +#line 1548 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1533: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1553: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1721,6 +1741,7 @@ s%@sim_profile@%$sim_profile%g s%@sim_endian@%$sim_endian%g s%@sim_hostendian@%$sim_hostendian%g s%@sim_warnings@%$sim_warnings%g +s%@sim_reserved_bits@%$sim_reserved_bits%g CEOF EOF diff --git a/sim/v850/configure.in b/sim/v850/configure.in index 002493b..043d937 100644 --- a/sim/v850/configure.in +++ b/sim/v850/configure.in @@ -8,6 +8,7 @@ SIM_AC_COMMON SIM_AC_OPTION_ENDIAN(LITTLE_ENDIAN) SIM_AC_OPTION_HOSTENDIAN SIM_AC_OPTION_WARNINGS +SIM_AC_OPTION_RESERVED_BITS AC_CHECK_FUNCS(time chmod utime fork execve execv chown) AC_CHECK_HEADERS(unistd.h stdlib.h string.h strings.h utime.h time.h) diff --git a/sim/v850/interp.c b/sim/v850/interp.c index 485a15f..69f98d8 100644 --- a/sim/v850/interp.c +++ b/sim/v850/interp.c @@ -233,6 +233,12 @@ sim_open (kind, cb, abfd, argv) STATE_WATCHPOINTS (sd)->sizeof_pc = sizeof (PC); STATE_WATCHPOINTS (sd)->interrupt_handler = do_interrupt; STATE_WATCHPOINTS (sd)->interrupt_names = interrupt_names; + /* start-sanitize-v850e */ + STATE_ARCHITECTURE (sd) = bfd_lookup_arch (bfd_arch_v850, bfd_mach_v850e); + /* end-sanitize-v850e */ + /* start-sanitize-v850eq */ + STATE_ARCHITECTURE (sd) = bfd_lookup_arch (bfd_arch_v850, bfd_mach_v850eq); + /* end-sanitize-v850eq */ if (sim_pre_argv_init (sd, argv[0]) != SIM_RC_OK) return 0; diff --git a/sim/v850/sim-main.h b/sim/v850/sim-main.h index 66e8995..6cdb338 100644 --- a/sim/v850/sim-main.h +++ b/sim/v850/sim-main.h @@ -5,6 +5,7 @@ #include "sim-basics.h" +#include <signal.h> typedef address_word sim_cia; diff --git a/sim/v850/v850.igen b/sim/v850/v850.igen index f5976c7..bbbe1f6 100644 --- a/sim/v850/v850.igen +++ b/sim/v850/v850.igen @@ -72,7 +72,9 @@ // What do we do with an illegal instruction? :internal:::illegal { - abort (); + sim_io_eprintf (SD, "Illegal instruction at address 0x%lx\n", + (unsigned long) cia); + sim_engine_halt (SD, CPU, NULL, cia, sim_signalled, SIGILL); } @@ -226,6 +228,9 @@ ddddd,1011,ddd,1111:III:::bgt // BSH rrrrr,11111100000 + wwwww,01101000010:XII:::bsh *v850e +// start-sanitize-v850eq +*v850eq +// end-sanitize-v850eq "bsh r<reg2>, r<reg3>" { COMPAT_2 (OP_34207E0 ()); @@ -238,6 +243,9 @@ rrrrr,11111100000 + wwwww,01101000010:XII:::bsh // BSW rrrrr,11111100000 + wwwww,01101000000:XII:::bsw *v850e +// start-sanitize-v850eq +*v850eq +// end-sanitize-v850eq "bsw r<reg2>, reg3>" { COMPAT_2 (OP_34007E0 ()); @@ -283,6 +291,9 @@ rrrrr,111111,RRRRR + 0000000011100100:IX:::clr1 // CMOV rrrrr,111111,RRRRR + wwwww,011001,cccc,0:XI:::cmov *v850e +// start-sanitize-v850eq +*v850eq +// end-sanitize-v850eq "cmov <cccc>, r<reg1>, r<reg2>, r<reg3>" { COMPAT_2 (OP_32007E0 ()); @@ -290,6 +301,9 @@ rrrrr,111111,RRRRR + wwwww,011001,cccc,0:XI:::cmov rrrrr,111111,iiiii + wwwww,011000,cccc,0:XII:::cmov *v850e +// start-sanitize-v850eq +*v850eq +// end-sanitize-v850eq "cmov <cccc>, <imm5>, r<reg2>, r<reg3>" { COMPAT_2 (OP_30007E0 ()); @@ -328,6 +342,9 @@ rrrrr,010011,iiiii:II:::cmp // "dispose <imm5>, <list12>" 0000011001,iiiii,L + LLLLLLLLLLL,RRRRR:XIII:::dispose *v850e +// start-sanitize-v850eq +*v850eq +// end-sanitize-v850eq "dispose <imm5>, <list12>":RRRRR == 0 "dispose <imm5>, <list12>, [reg1]" { @@ -414,6 +431,9 @@ rrrrr,111111,RRRRR + wwwww,01011000010:XI:::divu // start-sanitize-v850e rrrrr,11111100000 + wwwww,01101000100:XII:::hsw *v850e +// start-sanitize-v850eq +*v850eq +// end-sanitize-v850eq "hsw r<reg2>, r<reg3>" { COMPAT_2 (OP_34407E0 ()); @@ -539,6 +559,9 @@ rrrrr!0,110010,RRRRR + iiiiiiiiiiiiiiii:VI:::movhi // MUL rrrrr,111111,RRRRR + wwwww,01000100000:XI:::mul *v850e +// start-sanitize-v850eq +*v850eq +// end-sanitize-v850eq "mul r<reg1>, r<reg2>, r<reg3>" { COMPAT_2 (OP_22007E0 ()); @@ -546,6 +569,9 @@ rrrrr,111111,RRRRR + wwwww,01000100000:XI:::mul rrrrr,111111,iiiii + wwwww,01001,IIII,00:XII:::mul *v850e +// start-sanitize-v850eq +*v850eq +// end-sanitize-v850eq "mul <imm9>, r<reg2>, r<reg3>" { COMPAT_2 (OP_24007E0 ()); @@ -582,6 +608,9 @@ rrrrr!0,110111,RRRRR + iiiiiiiiiiiiiiii:VI:::mulhi // MULU rrrrr,111111,RRRRR + wwwww,01000100010:XI:::mulu *v850e +// start-sanitize-v850eq +*v850eq +// end-sanitize-v850eq "mulu r<reg1>, r<reg2>, r<reg3>" { COMPAT_2 (OP_22207E0 ()); @@ -589,6 +618,9 @@ rrrrr,111111,RRRRR + wwwww,01000100010:XI:::mulu rrrrr,111111,iiiii + wwwww,01001,IIII,10:XII:::mulu *v850e +// start-sanitize-v850eq +*v850eq +// end-sanitize-v850eq "mulu <imm9>, r<reg2>, r<reg3>" { COMPAT_2 (OP_24207E0 ()); @@ -652,6 +684,9 @@ rrrrr,110100,RRRRR + iiiiiiiiiiiiiiii:VI:::ori // PREPARE 0000011110,iiiii,L + LLLLLLLLLLL,00001:XIII:::prepare *v850e +// start-sanitize-v850eq +*v850eq +// end-sanitize-v850eq "prepare <list12>, <imm5>" { COMPAT_2 (OP_10780 ()); @@ -659,6 +694,9 @@ rrrrr,110100,RRRRR + iiiiiiiiiiiiiiii:VI:::ori 0000011110,iiiii,L + LLLLLLLLLLL,00011:XIII:::prepare00 *v850e +// start-sanitize-v850eq +*v850eq +// end-sanitize-v850eq "prepare <list12>, <imm5>, sp" { COMPAT_2 (OP_30780 ()); @@ -666,6 +704,9 @@ rrrrr,110100,RRRRR + iiiiiiiiiiiiiiii:VI:::ori 0000011110,iiiii,L + LLLLLLLLLLL,01011 + iiiiiiiiiiiiiiii:XIII:::prepare01 *v850e +// start-sanitize-v850eq +*v850eq +// end-sanitize-v850eq "prepare <list12>, <imm5>, <uimm16>" { COMPAT_2 (OP_B0780 ()); @@ -673,6 +714,9 @@ rrrrr,110100,RRRRR + iiiiiiiiiiiiiiii:VI:::ori 0000011110,iiiii,L + LLLLLLLLLLL,10011 + iiiiiiiiiiiiiiii:XIII:::prepare10 *v850e +// start-sanitize-v850eq +*v850eq +// end-sanitize-v850eq "prepare <list12>, <imm5>, <uimm16>" { COMPAT_2 (OP_130780 ()); @@ -680,6 +724,9 @@ rrrrr,110100,RRRRR + iiiiiiiiiiiiiiii:VI:::ori 0000011110,iiiii,L + LLLLLLLLLLL,11011 + iiiiiiiiiiiiiiii + dddddddddddddddd:XIII:::prepare11 *v850e +// start-sanitize-v850eq +*v850eq +// end-sanitize-v850eq "prepare <list12>, <imm5>, <uimm32>" { COMPAT_2 (OP_1B0780 ()); |