* archures.c,bfd-in2.h (bfd_mach_mips4121): New.
* cpu-mips.c: Added vr4121.
* elf32-mips.c (elf_mips_mach): Same.
(_bfd_mips_elf_final_write_processing): Same.
for gas:
* config/tc-mips.c (mips_4121): New.
(md_begin,mips_ip,md_longopts,md_parse_option): Add vr4121.
for gcc:
* config/mips/mips.c (override_options): Add vr4121.
* config/mips/t-vr4xxx (MULTILIB_MATCHES): Same.
for include/elf:
* mips.h (E_MIPS_MACH_4121): New.
for include/opcode:
* mips.h (INSN_4121): New.
for opcodes:
* mips-dis.c (set_mips_isa_type): Add bfd_mach_mips4121.
(_print_insn_mips): Same.
* mips-opc.c: Add vr4121.
for sim/mips:
* configure.in,mips.igen,vr.igen: Add vr4121.
* configure: Rebuilt.
done
fi
+vr4xxx_files="ChangeLog archures.c bfd-in2.h cpu-mips.c elf32-mips.c"
+if ( echo $* | grep keep\-vr4xxx > /dev/null ) ; then
+ for i in $vr4xxx_files ; do
+ if test ! -d $i && (grep sanitize-vr4xxx $i > /dev/null) ; then
+ if [ -n "${verbose}" ] ; then
+ echo Keeping vr4xxx stuff in $i
+ fi
+ fi
+ done
+else
+ for i in $vr4xxx_files ; do
+ if test ! -d $i && (grep sanitize-vr4xxx $i > /dev/null) ; then
+ if [ -n "${verbose}" ] ; then
+ echo Removing traces of \"vr4xxx\" from $i...
+ fi
+ cp $i new
+ sed '/start\-sanitize\-vr4xxx/,/end-\sanitize\-vr4xxx/d' < $i > new
+ if [ -n "${safe}" -a ! -f .Recover/$i ] ; then
+ if [ -n "${verbose}" ] ; then
+ echo Caching $i in .Recover...
+ fi
+ mv $i .Recover
+ fi
+ mv new $i
+ fi
+ done
+fi
+
m32rx_files="ChangeLog ChangeLog-9697 archures.c bfd-in2.h elf32-m32r.c cpu-m32r.c"
if ( echo $* | grep keep\-m32rx > /dev/null ) ; then
for i in $m32rx_files ; do
+start-sanitize-vr4xxx
+1998-12-13 Gavin Romig-Koch <gavin@cygnus.com>
+
+ * archures.c,bfd-in2.h (bfd_mach_mips4121): New.
+ * cpu-mips.c: Added vr4121.
+ * elf32-mips.c (elf_mips_mach): Same.
+ (_bfd_mips_elf_final_write_processing): Same.
+
+start-sanitize-vr4xxx
1998-12-12 Gavin Romig-Koch <gavin@cygnus.com>
* elf32-mips.c (_bfd_mips_elf_final_write_processing):
.#define bfd_mach_mips4000 4000
.#define bfd_mach_mips4010 4010
.#define bfd_mach_mips4100 4100
+. {* start-sanitize-vr4xxx *}
+.#define bfd_mach_mips4121 4121
+. {* end-sanitize-vr4xxx *}
.#define bfd_mach_mips4300 4300
.#define bfd_mach_mips4400 4400
.#define bfd_mach_mips4600 4600
.#define bfd_mach_mips4900 4900
. {* end-sanitize-tx49 *}
.#define bfd_mach_mips5000 5000
-. {* start-sanitize-cygnus *} {* CYGNUS LOCAL vr5400/raeburn *}
+. {* start-sanitize-cygnus *}
.#define bfd_mach_mips5400 5400
. {* end-sanitize-cygnus *}
. {* start-sanitize-r5900 *}
.#define bfd_mach_sh3e 0x3e
.#define bfd_mach_sh4 0x40
. bfd_arch_alpha, {* Dec Alpha *}
+.#define bfd_mach_alpha_ev4 0x10
+.#define bfd_mach_alpha_ev5 0x20
+.#define bfd_mach_alpha_ev6 0x30
. bfd_arch_arm, {* Advanced Risc Machines ARM *}
.#define bfd_mach_arm_2 1
.#define bfd_mach_arm_2a 2
. {* start-sanitize-am33 *}
.#define bfd_mach_am33 330
. {* end-sanitize-am33 *}
+. bfd_arch_fr30,
+.#define bfd_mach_fr30 0x46523330
. bfd_arch_last
. };
extern const bfd_arch_info_type bfd_ns32k_arch;
extern const bfd_arch_info_type bfd_w65_arch;
extern const bfd_arch_info_type bfd_v850_arch;
+extern const bfd_arch_info_type bfd_fr30_arch;
static const bfd_arch_info_type * const bfd_archures_list[] =
{
&bfd_ns32k_arch,
&bfd_w65_arch,
&bfd_v850_arch,
+ & bfd_fr30_arch,
#endif
0
};
#define bfd_mach_mips4000 4000
#define bfd_mach_mips4010 4010
#define bfd_mach_mips4100 4100
+ /* start-sanitize-vr4xxx */
+#define bfd_mach_mips4121 4121
+ /* end-sanitize-vr4xxx */
#define bfd_mach_mips4300 4300
#define bfd_mach_mips4400 4400
#define bfd_mach_mips4600 4600
I_mips4000,
I_mips4010,
I_mips4100,
+ /* start-sanitize-vr4xxx */
+I_mips4121,
+ /* end-sanitize-vr4xxx */
I_mips4300,
I_mips4400,
I_mips4600,
I_mips4900,
/* end-sanitize-tx49 */
/* start-sanitize-cygnus */
- /* CYGNUS LOCAL vr5400/raeburn */
I_mips5400,
/* end-sanitize-cygnus */
/* start-sanitize-r5900 */
N (64, 64, bfd_mach_mips4000, "mips:4000", false, NN(I_mips4000)),
N (64, 64, bfd_mach_mips4010, "mips:4010", false, NN(I_mips4010)),
N (64, 64, bfd_mach_mips4100, "mips:4100", false, NN(I_mips4100)),
+ /* start-sanitize-vr4xxx */
+ N (64, 64, bfd_mach_mips4121, "mips:4121", false, NN(I_mips4121)),
+ /* end-sanitize-vr4xxx */
N (64, 64, bfd_mach_mips4300, "mips:4300", false, NN(I_mips4300)),
N (64, 64, bfd_mach_mips4400, "mips:4400", false, NN(I_mips4400)),
N (64, 64, bfd_mach_mips4600, "mips:4600", false, NN(I_mips4600)),
N (64, 64, bfd_mach_mips4900, "mips:4900", false, NN(I_mips4900)),
/* end-sanitize-tx49 */
/* start-sanitize-cygnus */
- /* CYGNUS LOCAL vr5400/raeburn */
N (64, 64, bfd_mach_mips5400, "mips:5400", false, NN(I_mips5400)),
/* end-sanitize-cygnus */
/* start-sanitize-r5900 */
case E_MIPS_MACH_4100:
return bfd_mach_mips4100;
+ /* start-sanitize-vr4xxx */
+
+ case E_MIPS_MACH_4121:
+ return bfd_mach_mips4121;
+ /* end-sanitize-vr4xxx */
/* start-sanitize-vr4320 */
case E_MIPS_MACH_4320:
case bfd_mach_mips4100:
val = E_MIPS_ARCH_3 | E_MIPS_MACH_4100;
break;
+ /* start-sanitize-vr4xxx */
+
+ case bfd_mach_mips4121:
+ val = E_MIPS_ARCH_3 | E_MIPS_MACH_4121;
+ break;
+ /* end-sanitize-vr4xxx */
/* start-sanitize-vr4320 */
case bfd_mach_mips4320:
-1998-12-11 Ken Raeburn <raeburn@cygnus.com>
+start-sanitize-vr4xxx
+1998-12-13 Gavin Romig-Koch <gavin@cygnus.com>
+
+ * config/tc-mips.c (mips_4121): New.
+ (md_begin,mips_ip,md_longopts,md_parse_option): Add vr4121.
+
+end-sanitize-vr4xxx
+98-12-11 Ken Raeburn <raeburn@cygnus.com>
* config/tc-h8300.c (build_bytes): Change message given if the
instruction requires H8/300H mode and we're not in Hmode, to
/* Whether the 4100 MADD16 and DMADD16 are permitted. */
static int mips_4100 = -1;
+/* start-sanitize-vr4xxx */
+/* Whether NEC 4121 instructions are permitted. */
+static int mips_4121 = -1;
+
+/* end-sanitize-vr4xxx */
/* start-sanitize-vr4320 */
/* Whether NEC vr4320 instructions are permitted. */
static int mips_4320 = -1;
else if (strcmp (cpu, "mips64vr4100") == 0)
mips_cpu = 4100;
+ /* start-sanitize-vr4xxx */
+ else if (strcmp (cpu, "vr4121") == 0
+ || strcmp (cpu, "mips64vr4121") == 0)
+ mips_cpu = 4121;
+
+ /* end-sanitize-vr4xxx */
else if (strcmp (cpu, "r4010") == 0)
mips_cpu = 4010;
else if (mips_cpu == 4000
|| mips_cpu == 4100
+ /* start-sanitize-vr4xxx */
+ || mips_cpu == 4121
+ /* end-sanitize-vr4xxx */
|| mips_cpu == 4400
|| mips_cpu == 4300
/* start-sanitize-vr4320 */
if (mips_4100 < 0)
mips_4100 = (mips_cpu == 4100);
+ /* start-sanitize-vr4xxx */
+ if (mips_4121 < 0)
+ mips_4121 = (mips_cpu == 4121);
+
+ /* end-sanitize-vr4xxx */
/* start-sanitize-vr4320 */
if (mips_4320 < 0)
mips_4320 = (mips_cpu == 4320);
&& (insn.insn_mo->membership & INSN_4010) != 0)
|| (mips_4100
&& (insn.insn_mo->membership & INSN_4100) != 0)
+ /* start-sanitize-vr4xxx */
+ || (mips_4121
+ && (insn.insn_mo->membership & INSN_4121) != 0)
+ /* end-sanitize-vr4xxx */
/* start-sanitize-vr4320 */
|| (mips_4320
&& (insn.insn_mo->membership & INSN_4320) != 0)
else if ((mips_4650 && (insn->membership & INSN_4650) != 0)
|| (mips_4010 && (insn->membership & INSN_4010) != 0)
|| (mips_4100 && (insn->membership & INSN_4100) != 0)
+ /* start-sanitize-vr4xxx */
+ || (mips_4121 && (insn->membership & INSN_4121) != 0)
+ /* end-sanitize-vr4xxx */
/* start-sanitize-vr4320 */
|| (mips_4320 && (insn->membership & INSN_4320) != 0)
/* end-sanitize-vr4320 */
#define OPTION_NO_FIX_4011_BRANCH_BUG (OPTION_MD_BASE + 35)
{"no-fix-4011-branch-bug", no_argument, NULL, OPTION_NO_FIX_4011_BRANCH_BUG},
/* end-sanitize-branchbug4011 */
+
+ /* start-sanitize-vr4xxx */
+#define OPTION_M4121 (OPTION_MD_BASE + 36)
+ {"m4121", no_argument, NULL, OPTION_M4121},
+#define OPTION_NO_M4121 (OPTION_MD_BASE + 37)
+ {"no-m4121", no_argument, NULL, OPTION_NO_M4121},
+
+ /* end-sanitize-vr4xxx */
#define OPTION_CALL_SHARED (OPTION_MD_BASE + 7)
#define OPTION_NON_SHARED (OPTION_MD_BASE + 8)
#define OPTION_XGOT (OPTION_MD_BASE + 19)
mips_cpu = 4000;
else if (strcmp (p, "4100") == 0)
mips_cpu = 4100;
+ /* start-sanitize-vr4xxx */
+ else if (strcmp (p, "4121") == 0)
+ mips_cpu = 4121;
+ /* end-sanitize-vr4xxx */
else if (strcmp (p, "4300") == 0)
mips_cpu = 4300;
/* start-sanitize-vr4320 */
if (sv
&& (mips_cpu != 4300
&& mips_cpu != 4100
+ /* start-sanitize-vr4xxx */
+ && mips_cpu != 4121
+ /* end-sanitize-vr4xxx */
/* start-sanitize-vr4320 */
&& mips_cpu != 4320
/* end-sanitize-vr4320 */
mips_4100 = 0;
break;
+ /* start-sanitize-vr4xxx */
+ case OPTION_M4121:
+ mips_4121 = 1;
+ break;
+
+ case OPTION_NO_M4121:
+ mips_4121 = 0;
+ break;
+
+ /* end-sanitize-vr4xxx */
/* start-sanitize-r5900 */
case OPTION_M5900:
mips_5900 = 1;
-no-m4010 do not permit R4010 instructions\n\
-m4100 permit VR4100 instructions\n\
-no-m4100 do not permit VR4100 instructions\n"));
+ /* start-sanitize-vr4xxx */
+ fprintf(stream, _("\
+-mcpu=vr4121 generate code for vr4121\n\
+-m4121 permit VR4121 instructions\n\
+-no-m4121 do not permit VR4121 instructions\n"));
+ /* end-sanitize-vr4xxx */
fprintf(stream, _("\
-mips16 generate mips16 instructions\n\
-no-mips16 do not generate mips16 instructions\n"));
done
fi
+vr4xxx_files="ChangeLog mips.h"
+if ( echo $* | grep keep\-vr4xxx > /dev/null ) ; then
+ for i in $vr4xxx_files ; do
+ if test ! -d $i && (grep sanitize-vr4xxx $i > /dev/null) ; then
+ if [ -n "${verbose}" ] ; then
+ echo Keeping vr4xxx stuff in $i
+ fi
+ fi
+ done
+else
+ for i in $vr4xxx_files ; do
+ if test ! -d $i && (grep sanitize-vr4xxx $i > /dev/null) ; then
+ if [ -n "${verbose}" ] ; then
+ echo Removing traces of \"vr4xxx\" from $i...
+ fi
+ cp $i new
+ sed '/start\-sanitize\-vr4xxx/,/end-\sanitize\-vr4xxx/d' < $i > new
+ if [ -n "${safe}" -a ! -f .Recover/$i ] ; then
+ if [ -n "${verbose}" ] ; then
+ echo Caching $i in .Recover...
+ fi
+ mv $i .Recover
+ fi
+ mv new $i
+ fi
+ done
+fi
+
tx49_files="mips.h"
if ( echo $* | grep keep\-tx49 > /dev/null ) ; then
for i in $tx49_files ; do
+start-sanitize-vr4xxx
+1998-12-13 Gavin Romig-Koch <gavin@cygnus.com>
+
+ * mips.h (E_MIPS_MACH_4121): New.
+
+end-sanitize-vr4xxx
+1998-12-03 Nick Clifton <nickc@cygnus.com>
+
+ * fr30.h: Add R_FR30_48 reloc.
+
1998-12-02 Ulrich Drepper <drepper@cygnus.com>
* mips.h: Add external data type for conflict section.
/* start-sanitize-tx49 */
#define E_MIPS_MACH_4900 0x00860000
/* end-sanitize-tx49 */
+/* start-sanitize-vr4xxx */
+#define E_MIPS_MACH_4121 0x00870000
+/* end-sanitize-vr4xxx */
/* start-sanitize-cygnus */
#define E_MIPS_MACH_5400 0x00910000
/* A section of type SHT_MIPS_CONFLICT is an array of indices into the
.dynsym section. Each element has the following type. */
typedef unsigned long Elf32_Conflict;
+typedef unsigned char Elf32_External_Conflict[4];
+
+typedef unsigned long Elf64_Conflict;
+typedef unsigned char Elf64_External_Conflict[8];
/* A section of type SHT_MIPS_GPTAB contains information about how
much GP space would be required for different -G arguments. This
fi
+vr4xxx_files="ChangeLog mips.h"
+if ( echo $* | grep keep\-vr4xxx > /dev/null ) ; then
+ for i in $vr4xxx_files ; do
+ if test ! -d $i && (grep sanitize-vr4xxx $i > /dev/null) ; then
+ if [ -n "${verbose}" ] ; then
+ echo Keeping vr4xxx stuff in $i
+ fi
+ fi
+ done
+else
+ for i in $vr4xxx_files ; do
+ if test ! -d $i && (grep sanitize-vr4xxx $i > /dev/null) ; then
+ if [ -n "${verbose}" ] ; then
+ echo Removing traces of \"vr4xxx\" from $i...
+ fi
+ cp $i new
+ sed '/start\-sanitize\-vr4xxx/,/end-\sanitize\-vr4xxx/d' < $i > new
+ if [ -n "${safe}" -a ! -f .Recover/$i ] ; then
+ if [ -n "${verbose}" ] ; then
+ echo Caching $i in .Recover...
+ fi
+ mv $i .Recover
+ fi
+ mv new $i
+ fi
+ done
+fi
+
+
for i in * ; do
if test ! -d $i && (grep sanitize $i > /dev/null) ; then
echo '***' Some mentions of Sanitize are still left in $i! 1>&2
done
fi
+vr4xxx_files="ChangeLog mips-opc.c mips-dis.c"
+if ( echo $* | grep keep\-vr4xxx > /dev/null ) ; then
+ for i in $vr4xxx_files ; do
+ if test ! -d $i && (grep sanitize-vr4xxx $i > /dev/null) ; then
+ if [ -n "${verbose}" ] ; then
+ echo Keeping vr4xxx stuff in $i
+ fi
+ fi
+ done
+else
+ for i in $vr4xxx_files ; do
+ if test ! -d $i && (grep sanitize-vr4xxx $i > /dev/null) ; then
+ if [ -n "${verbose}" ] ; then
+ echo Removing traces of \"vr4xxx\" from $i...
+ fi
+ cp $i new
+ sed '/start\-sanitize\-vr4xxx/,/end-\sanitize\-vr4xxx/d' < $i > new
+ if [ -n "${safe}" -a ! -f .Recover/$i ] ; then
+ if [ -n "${verbose}" ] ; then
+ echo Caching $i in .Recover...
+ fi
+ mv $i .Recover
+ fi
+ mv new $i
+ fi
+ done
+fi
+
cygnus_files="ChangeLog mips-opc.c mips-dis.c"
if ( echo $* | grep keep\-cygnus > /dev/null ) ; then
for i in $cygnus_files ; do
+start-sanitize-vr4xxx
+1998-12-13 Gavin Romig-Koch <gavin@cygnus.com>
+
+ * mips-dis.c (set_mips_isa_type): Add bfd_mach_mips4121.
+ (_print_insn_mips): Same.
+ * mips-opc.c: Add vr4121.
+
start-sanitize-fr30
Thu Dec 10 18:39:46 1998 Dave Brolley <brolley@cygnus.com>
case ',':
case '(':
case ')':
- /* start-sanitize-vr5400 */
+ /* start-sanitize-cygnus */
case '[':
case ']':
- /* end-sanitize-vr5400 */
+ /* end-sanitize-cygnus */
/* start-sanitize-r5900 */
case '+':
case '-':
(l >> OP_SH_PERFREG) & OP_MASK_PERFREG);
break;
- /* start-sanitize-vr5400 */
+ /* start-sanitize-cygnus */
case 'e':
(*info->fprintf_func) (info->stream, "%d",
(l >> OP_SH_VECBYTE) & OP_MASK_VECBYTE);
(*info->fprintf_func) (info->stream, "%d",
(l >> OP_SH_VECALIGN) & OP_MASK_VECALIGN);
break;
- /* end-sanitize-vr5400 */
+ /* end-sanitize-cygnus */
default:
/* xgettext:c-format */
target_processor = 4100;
mips_isa = 3;
break;
+ /* start-sanitize-vr4xxx */
+ case bfd_mach_mips4121:
+ target_processor = 4121;
+ mips_isa = 3;
+ break;
+ /* end-sanitize-vr4xxx */
case bfd_mach_mips4300:
target_processor = 4300;
mips_isa = 3;
target_processor = 5000;
mips_isa = 4;
break;
- /* start-sanitize-vr5400 */
+ /* start-sanitize-cygnus */
case bfd_mach_mips5400:
target_processor = 5400;
mips_isa = 3;
break;
- /* end-sanitize-vr5400 */
+ /* end-sanitize-cygnus */
/* start-sanitize-r5900 */
case bfd_mach_mips5900:
target_processor = 5900;
target_processor = mips_target_info.processor;
mips_isa = mips_target_info.isa;
#else
- set_mips_isa_type (info->mach, &target_processor, &mips_isa);
+ set_mips_isa_type (info->mach, &mips_isa, &target_processor);
#endif
info->bytes_per_chunk = 4;
&& op->membership & INSN_4010) == 0
&& (target_processor == 4100
&& op->membership & INSN_4100) == 0
+ /* start-sanitize-vr4xxx */
+ && (target_processor == 4121
+ && op->membership & INSN_4121) == 0
+ /* end-sanitize-vr4xxx */
/* start-sanitize-vr4320 */
&& (target_processor == 4320
&& op->membership & INSN_4320) == 0
/* end-sanitize-vr4320 */
- /* start-sanitize-vr5400 */
+ /* start-sanitize-cygnus */
&& (target_processor == 5400
&& op->membership & INSN_5400) == 0
- /* end-sanitize-vr5400 */
+ /* end-sanitize-cygnus */
/* start-sanitize-r5900 */
&& (target_processor == 5900
&& op->membership & INSN_5900) == 0
fi
+vr4xxx_files="ChangeLog Makefile.in configure configure.in mips.igen vr.igen"
+
+if ( echo $* | grep keep\-vr4xxx > /dev/null ) ; then
+ for i in $vr4xxx_files ; do
+ if test ! -d $i && (grep sanitize-vr4xxx $i > /dev/null) ; then
+ if [ -n "${verbose}" ] ; then
+ echo Keeping vr4xxx stuff in $i
+ fi
+ fi
+ done
+else
+ for i in * ; do
+ if test ! -d $i && (grep sanitize-vr4xxx $i > /dev/null) ; then
+ if [ -n "${verbose}" ] ; then
+ echo Removing traces of \"vr4xxx\" from $i...
+ fi
+ cp $i new
+ sed '/start\-sanitize\-vr4xxx/,/end-\sanitize\-vr4xxx/d' < $i > new
+ if [ -n "${safe}" -a ! -f .Recover/$i ] ; then
+ if [ -n "${verbose}" ] ; then
+ echo Caching $i in .Recover...
+ fi
+ mv $i .Recover
+ fi
+ mv new $i
+ fi
+ done
+fi
+
+
tx3904_files="ChangeLog configure configure.in interp.c"
if ( echo $* | grep keep\-tx3904 > /dev/null ) ; then
+start-sanitize-vr4xxx
+1998-12-13 Gavin Romig-Koch <gavin@cygnus.com>
+
+ * configure.in,mips.igen,vr.igen: Add vr4121.
+ * configure: Rebuilt.
+
+end-sanitize-vr4xxx
1998-12-12 Gavin Romig-Koch <gavin@cygnus.com>
start-sanitize-vr4xxx
# end-sanitize-cygnus
# start-sanitize-vr4xxx
mips64vr4xxx-*-*) sim_gen=IGEN
- sim_igen_machine="-M mipsIV,vr4100 -G gen-multi-sim=mipsIV"
+ sim_igen_machine="-M mipsIV,vr4100,vr4121 -G gen-multi-sim=mipsIV"
;;
# end-sanitize-vr4xxx
mips64vr41*) sim_gen=M16
# end-sanitize-cygnus
# start-sanitize-vr4xxx
mips64vr4xxx-*-*) sim_gen=IGEN
- sim_igen_machine="-M mipsIV,vr4100 -G gen-multi-sim=mipsIV"
+ sim_igen_machine="-M mipsIV,vr4100,vr4121 -G gen-multi-sim=mipsIV"
;;
# end-sanitize-vr4xxx
mips64vr41*) sim_gen=M16
:model:::tx19:tx19:
// end-sanitize-tx19
:model:::vr4100:mips4100:
+// start-sanitize-vr4xxx
+:model:::vr4121:mips4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
:model:::vr4320:mips4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
"dmult r<RS>, r<RT>"
*mipsIII,mipsIV:
*vr4100:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-tx19
*tx19:
// end-sanitize-tx19
"dmultu r<RS>, r<RT>"
*mipsIII,mipsIV:
*vr4100:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-tx19
*tx19:
// end-sanitize-tx19
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
"movn r<RD>, r<RS>, r<RT>"
*mipsIV:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
"mult r<RS>, r<RT>"
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
"multu r<RS>, r<RT>"
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
"sw r<RT>, <OFFSET>(r<BASE>)"
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-tx19
*tx19:
// end-sanitize-tx19
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
"bc1%s<TF>%s<ND> <OFFSET>"
*mipsI,mipsII,mipsIII:
*vr4100:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
+// start-sanitize-vr4320
+*vr4320:
+// end-sanitize-vr4320
// start-sanitize-r5900
*r5900:
// end-sanitize-r5900
"bc1%s<TF>%s<ND> <CC>, <OFFSET>"
*mipsIV:
*vr5000:
-// start-sanitize-vr4320
-*vr4320:
-// end-sanitize-vr4320
// start-sanitize-cygnus
*vr5400:
// end-sanitize-cygnus
}
}
-010001,10,3.FMT,5.FT,5.FS,3.0,00,11,4.COND:COP1:32::C.cond.fmt
-*mipsI,mipsII,mipsIII:
+010001,10,3.FMT,5.FT,5.FS,3.0,00,11,4.COND:COP1:32::C.cond.fmta
"c.%s<COND>.%s<FMT> f<FS>, f<FT>"
+*mipsI,mipsII,mipsIII:
{
do_c_cond_fmt (SD_, FMT, FT, FS, 0, COND, instruction_0);
}
-010001,10,3.FMT,5.FT,5.FS,3.CC,00,11,4.COND:COP1:32::C.cond.fmt
+010001,10,3.FMT,5.FT,5.FS,3.CC,00,11,4.COND:COP1:32::C.cond.fmtb
"c.%s<COND>.%s<FMT> f<FS>, f<FT>":CC == 0
"c.%s<COND>.%s<FMT> <CC>, f<FS>, f<FT>"
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*tx19:
// end-sanitize-tx19
{
+ int fs = FS;
if (X)
/*MTC1*/
StoreFPR (FS, fmt_uninterpreted_32, VL4_8 (GPR[RT]));
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
"bc0t <OFFSET>"
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
010000,01000,00011,16.OFFSET:COP0:32::BC0TL
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*r3900:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
// end-sanitize-tx19
*r3900:
*vr4100:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
// end-sanitize-tx19
*r3900:
*vr4100:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
"cop<ZZ> <COP_FUN0><COP_FUN1><COP_FUN2>"
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-r5900
*r5900:
// end-sanitize-r5900
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
*mipsI,mipsII,mipsIII,mipsIV:
*vr4100:
*vr5000:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
:function:::unsigned64:MulAcc:
*vr4100:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
:function:::void:SET_MulAcc:unsigned64 value
*vr4100:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
:function:::signed64:SignedMultiply:signed32 l, signed32 r
*vr4100:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
:function:::unsigned64:UnsignedMultiply:unsigned32 l, unsigned32 r
*vr4100:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
return result;
}
+// start-sanitize-vr4xxx
+:function:::signed64:SaturatedAdd:signed32 l, signed32 r
+*vr4121:
+{
+ signed64 result = (signed64) l + (signed64) r;
+ if (result < 0)
+ result = 0xFFFFFFFF8000000LL;
+ else if (result > 0x000000007FFFFFFFLL)
+ result = 0x000000007FFFFFFFLL;
+ return result;
+}
+
+:function:::unsigned64:SaturatedUnsignedAdd:unsigned32 l, unsigned32 r
+*vr4121:
+{
+ unsigned64 result = (unsigned64) l + (unsigned64) r;
+ if (result > 0x000000007FFFFFFFLL)
+ result = 0xFFFFFFFFFFFFFFFFLL;
+ return result;
+}
+
+
+// end-sanitize-vr4xxx
:function:::unsigned64:Low32Bits:unsigned64 value
*vr4100:
-// start-sanitize-vr4320
-*vr4320:
-// end-sanitize-vr4320
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-cygnus
*vr5400:
// end-sanitize-cygnus
:function:::unsigned64:High32Bits:unsigned64 value
*vr4100:
+// start-sanitize-vr4xxx
+*vr4121:
+// end-sanitize-vr4xxx
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
// Multiply, Accumulate
-000000,5.RS,5.RT,00000,00000,101000::::MAC
+000000,5.RS,5.RT,00000,00000,101000::64::MAC
"mac r<RS>, r<RT>"
*vr4100:
// start-sanitize-vr4320
// D-Multiply, Accumulate
-000000,5.RS,5.RT,00000,00000,101001::::DMAC
+000000,5.RS,5.RT,00000,00000,101001::64::DMAC
"dmac r<RS>, r<RT>"
*vr4100:
// start-sanitize-vr4320
// start-sanitize-vr4320
// Count Leading Zeros
-000000,5.RS,00000,5.RD,00000,110101::::CLZ
+000000,5.RS,00000,5.RD,00000,110101::64::CLZ
"clz r<RD>, r<RS>"
// end-sanitize-vr4320
// start-sanitize-vr4320
// end-sanitize-vr4320
// start-sanitize-vr4320
// D-Count Leading Zeros
-000000,5.RS,00000,5.RD,00000,111101::::DCLZ
+000000,5.RS,00000,5.RD,00000,111101::64::DCLZ
"dclz r<RD>, r<RS>"
// end-sanitize-vr4320
// start-sanitize-vr4320
// end-sanitize-vr4320
-// start-sanitize-vrXXXX
+// start-sanitize-cygnus
// Multiply and Move LO.
-000000,5.RS,5.RT,5.RD,00100,101000::::MUL
+000000,5.RS,5.RT,5.RD,00100,101000::64::MUL
"mul r<RD>, r<RS>, r<RT>"
-// end-sanitize-vrXXXX
+// end-sanitize-cygnus
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
// start-sanitize-cygnus
*vr5400:
// end-sanitize-cygnus
-// start-sanitize-vrXXXX
+// start-sanitize-cygnus
{
SET_MulAcc (SD_, 0 + SignedMultiply (SD_, GPR[RS], GPR[RT]));
GPR[RD] = Low32Bits (SD_, MulAcc (SD_));
}
-// end-sanitize-vrXXXX
-// start-sanitize-vrXXXX
+// end-sanitize-cygnus
+// start-sanitize-cygnus
// Unsigned Multiply and Move LO.
-000000,5.RS,5.RT,5.RD,00101,101000::::MULU
+000000,5.RS,5.RT,5.RD,00101,101000::64::MULU
"mulu r<RD>, r<RS>, r<RT>"
-// end-sanitize-vrXXXX
+// end-sanitize-cygnus
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
// start-sanitize-cygnus
*vr5400:
// end-sanitize-cygnus
-// start-sanitize-vrXXXX
+// start-sanitize-cygnus
{
SET_MulAcc (SD_, 0 + UnsignedMultiply (SD_, GPR[RS], GPR[RT]));
GPR[RD] = Low32Bits (SD_, MulAcc (SD_));
}
-// end-sanitize-vrXXXX
-// start-sanitize-vrXXXX
+// end-sanitize-cygnus
+// start-sanitize-cygnus
// Multiply and Move HI.
-000000,5.RS,5.RT,5.RD,01100,101000::::MULHI
+000000,5.RS,5.RT,5.RD,01100,101000::64::MULHI
"mulhi r<RD>, r<RS>, r<RT>"
-// end-sanitize-vrXXXX
+// end-sanitize-cygnus
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
// start-sanitize-cygnus
*vr5400:
// end-sanitize-cygnus
-// start-sanitize-vrXXXX
+// start-sanitize-cygnus
{
SET_MulAcc (SD_, 0 + SignedMultiply (SD_, GPR[RS], GPR[RT]));
GPR[RD] = High32Bits (SD_, MulAcc (SD_));
}
-// end-sanitize-vrXXXX
-// start-sanitize-vrXXXX
+// end-sanitize-cygnus
+// start-sanitize-cygnus
// Unsigned Multiply and Move HI.
-000000,5.RS,5.RT,5.RD,01101,101000::::MULHIU
+000000,5.RS,5.RT,5.RD,01101,101000::64::MULHIU
"mulhiu r<RD>, r<RS>, r<RT>"
-// end-sanitize-vrXXXX
+// end-sanitize-cygnus
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
// start-sanitize-cygnus
*vr5400:
// end-sanitize-cygnus
-// start-sanitize-vrXXXX
+// start-sanitize-cygnus
{
SET_MulAcc (SD_, 0 + UnsignedMultiply (SD_, GPR[RS], GPR[RT]));
GPR[RD] = High32Bits (SD_, MulAcc (SD_));
}
-// end-sanitize-vrXXXX
+// end-sanitize-cygnus
// start-sanitize-cygnus
// Multiply, Negate and Move LO.
-000000,5.RS,5.RT,5.RD,00011,011000::::MULS
+000000,5.RS,5.RT,5.RD,00011,011000::64::MULS
"muls r<RD>, r<RS>, r<RT>"
// end-sanitize-cygnus
// start-sanitize-cygnus
// end-sanitize-cygnus
// start-sanitize-cygnus
// Unsigned Multiply, Negate and Move LO.
-000000,5.RS,5.RT,5.RD,00011,011001::::MULSU
+000000,5.RS,5.RT,5.RD,00011,011001::64::MULSU
"mulsu r<RD>, r<RS>, r<RT>"
// end-sanitize-cygnus
// start-sanitize-cygnus
// end-sanitize-cygnus
// start-sanitize-cygnus
// Multiply, Negate and Move HI.
-000000,5.RS,5.RT,5.RD,01011,011000::::MULSHI
+000000,5.RS,5.RT,5.RD,01011,011000::64::MULSHI
"mulshi r<RD>, r<RS>, r<RT>"
// end-sanitize-cygnus
// start-sanitize-cygnus
// end-sanitize-cygnus
// start-sanitize-cygnus
// Unsigned Multiply, Negate and Move HI.
-000000,5.RS,5.RT,5.RD,01011,011001::::MULSHIU
+000000,5.RS,5.RT,5.RD,01011,011001::64::MULSHIU
"mulshiu r<RD>, r<RS>, r<RT>"
// end-sanitize-cygnus
// start-sanitize-cygnus
}
-
-
-
// end-sanitize-cygnus
+// start-sanitize-cygnus
+//
// Multiply, Accumulate and Move LO.
-000000,5.RS,5.RT,5.RD,00010,101000::::MACC
+//
+000000,5.RS,5.RT,5.RD,00010,101000::64::MACC
"macc r<RD>, r<RS>, r<RT>"
+// end-sanitize-cygnus
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
// start-sanitize-cygnus
*vr5400:
// end-sanitize-cygnus
+// start-sanitize-cygnus
{
SET_MulAcc (SD_, MulAcc (SD_) + SignedMultiply (SD_, GPR[RS], GPR[RT]));
GPR[RD] = Low32Bits (SD_, MulAcc (SD_));
}
+// end-sanitize-cygnus
+
+// start-sanitize-vr4xxx
+000000,5.RS,5.RT,5.RD,00000,101000::::MACC
+"macc r<RD>, r<RS>, r<RT>"
+*vr4121:
+{
+ SET_MulAcc (SD_, MulAcc (SD_) + SignedMultiply (SD_, GPR[RS], GPR[RT]));
+ GPR[RD] = Low32Bits (SD_, MulAcc (SD_));
+}
+
+000000,5.RS,5.RT,5.RD,00000,101001::::DMACC
+"dmacc r<RD>, r<RS>, r<RT>"
+*vr4121:
+{
+ LO = LO + SignedMultiply (SD_, GPR[RS], GPR[RT]);
+ GPR[RD] = LO;
+}
+
+000000,5.RS,5.RT,5.RD,10000,101000::::MACCS
+"maccs r<RD>, r<RS>, r<RT>"
+*vr4121:
+{
+ SET_MulAcc (SD_, SaturatedAdd (SD_, MulAcc (SD_),
+ SignedMultiply (SD_, GPR[RS], GPR[RT])));
+ GPR[RD] = Low32Bits (SD_, MulAcc (SD_));
+}
+
+000000,5.RS,5.RT,5.RD,10000,101001::::DMACCS
+"dmaccs r<RD>, r<RS>, r<RT>"
+*vr4121:
+{
+ LO = SaturatedAdd (SD_, LO, SignedMultiply (SD_, GPR[RS], GPR[RT]));
+ GPR[RD] = LO;
+}
-// start-sanitize-vrXXXX
+
+
+
+// end-sanitize-vr4xxx
+// start-sanitize-cygnus
+//
// Unsigned Multiply, Accumulate and Move LO.
-000000,5.RS,5.RT,5.RD,00011,101000::::MACCU
+//
+000000,5.RS,5.RT,5.RD,00011,101000::64::MACCU
"maccu r<RD>, r<RS>, r<RT>"
-// end-sanitize-vrXXXX
+// end-sanitize-cygnus
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
// start-sanitize-cygnus
*vr5400:
// end-sanitize-cygnus
-// start-sanitize-vrXXXX
+// start-sanitize-cygnus
+{
+ SET_MulAcc (SD_, MulAcc (SD_) + UnsignedMultiply (SD_, GPR[RS], GPR[RT]));
+ GPR[RD] = Low32Bits (SD_, MulAcc (SD_));
+}
+
+// end-sanitize-cygnus
+// start-sanitize-vr4xxx
+000000,5.RS,5.RT,5.RD,00001,101000::64::MACCU
+"maccu r<RD>, r<RS>, r<RT>"
+*vr4121:
{
SET_MulAcc (SD_, MulAcc (SD_) + UnsignedMultiply (SD_, GPR[RS], GPR[RT]));
GPR[RD] = Low32Bits (SD_, MulAcc (SD_));
}
+000000,5.RS,5.RT,5.RD,00001,101001::64::DMACCU
+"dmaccu r<RD>, r<RS>, r<RT>"
+*vr4121:
+{
+ LO = LO + UnsignedMultiply (SD_, GPR[RS], GPR[RT]);
+ GPR[RD] = LO;
+}
+
+000000,5.RS,5.RT,5.RD,10001,101000::64::MACCUS
+"maccus r<RD>, r<RS>, r<RT>"
+*vr4121:
+{
+ SET_MulAcc (SD_,
+ SaturatedUnsignedAdd (SD_, MulAcc (SD_),
+ UnsignedMultiply (SD_, GPR[RS], GPR[RT])));
+ GPR[RD] = Low32Bits (SD_, MulAcc (SD_));
+}
+
+000000,5.RS,5.RT,5.RD,10001,101001::64::DMACCUS
+"dmaccus r<RD>, r<RS>, r<RT>"
+*vr4121:
+{
+ LO = SaturatedUnsignedAdd (SD_, LO,
+ UnsignedMultiply (SD_, GPR[RS], GPR[RT]));
+ GPR[RD] = LO;
+}
+
+
-// end-sanitize-vrXXXX
-// start-sanitize-vrXXXX
+// end-sanitize-vr4xxx
+// start-sanitize-cygnus
+//
// Multiply, Accumulate and Move HI.
-000000,5.RS,5.RT,5.RD,01010,101000::::MACCHI
+//
+000000,5.RS,5.RT,5.RD,01010,101000::64::MACCHI
"macchi r<RD>, r<RS>, r<RT>"
-// end-sanitize-vrXXXX
+// end-sanitize-cygnus
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
// start-sanitize-cygnus
*vr5400:
// end-sanitize-cygnus
-// start-sanitize-vrXXXX
+// start-sanitize-cygnus
{
SET_MulAcc (SD_, MulAcc (SD_) + SignedMultiply (SD_, GPR[RS], GPR[RT]));
GPR[RD] = High32Bits (SD_, MulAcc (SD_));
}
+// end-sanitize-cygnus
+// start-sanitize-vr4xxx
+000000,5.RS,5.RT,5.RD,01000,101000::64::MACCHI
+"macchi r<RD>, r<RS>, r<RT>"
+*vr4121:
+{
+ SET_MulAcc (SD_, MulAcc (SD_) + SignedMultiply (SD_, GPR[RS], GPR[RT]));
+ GPR[RD] = High32Bits (SD_, MulAcc (SD_));
+}
-// end-sanitize-vrXXXX
-// start-sanitize-vrXXXX
+000000,5.RS,5.RT,5.RD,11000,101000::64::MACCHIS
+"macchis r<RD>, r<RS>, r<RT>"
+*vr4121:
+{
+ SET_MulAcc (SD_, SaturatedAdd (SD_, MulAcc (SD_),
+ SignedMultiply (SD_, GPR[RS], GPR[RT])));
+ GPR[RD] = High32Bits (SD_, MulAcc (SD_));
+}
+
+
+
+// end-sanitize-vr4xxx
+// start-sanitize-cygnus
+//
// Unsigned Multiply, Accumulate and Move HI.
-000000,5.RS,5.RT,5.RD,01011,101000::::MACCHIU
+//
+000000,5.RS,5.RT,5.RD,01011,101000::64::MACCHIU
"macchiu r<RD>, r<RS>, r<RT>"
-// end-sanitize-vrXXXX
+// end-sanitize-cygnus
// start-sanitize-vr4320
*vr4320:
// end-sanitize-vr4320
// start-sanitize-cygnus
*vr5400:
// end-sanitize-cygnus
-// start-sanitize-vrXXXX
+// start-sanitize-cygnus
{
SET_MulAcc (SD_, MulAcc (SD_) + UnsignedMultiply (SD_, GPR[RS], GPR[RT]));
GPR[RD] = High32Bits (SD_, MulAcc (SD_));
}
+// end-sanitize-cygnus
+// start-sanitize-vr4xxx
+000000,5.RS,5.RT,5.RD,01001,101000::64::MACCHIU
+"macchiu r<RD>, r<RS>, r<RT>"
+*vr4121:
+{
+ SET_MulAcc (SD_, MulAcc (SD_) + UnsignedMultiply (SD_, GPR[RS], GPR[RT]));
+ GPR[RD] = High32Bits (SD_, MulAcc (SD_));
+}
-// end-sanitize-vrXXXX
-// start-sanitize-cygnus
-// Multiply, Negate, Accumulate and Move LO.
-000000,5.RS,5.RT,5.RD,00111,011000::::MSAC
-"msac r<RD>, r<RS>, r<RT>"
-// end-sanitize-cygnus
-// start-sanitize-cygnus
-*vr5400:
-// end-sanitize-cygnus
-// start-sanitize-cygnus
+000000,5.RS,5.RT,5.RD,11001,101000::64::MACCHIUS
+"macchius r<RD>, r<RS>, r<RT>"
+*vr4121:
{
- SET_MulAcc (SD_, MulAcc (SD_) - SignedMultiply (SD_, GPR[RS], GPR[RT]));
- GPR[RD] = Low32Bits (SD_, MulAcc (SD_));
+ SET_MulAcc (SD_,
+ SaturatedUnsignedAdd (SD_, MulAcc (SD_),
+ UnsignedMultiply (SD_, GPR[RS], GPR[RT])));
+ GPR[RD] = High32Bits (SD_, MulAcc (SD_));
+
}
-// end-sanitize-cygnus
+
+// end-sanitize-vr4xxx
// start-sanitize-cygnus
// Unsigned Multiply, Negate, Accumulate and Move LO.
-000000,5.RS,5.RT,5.RD,00111,011001::::MSACU
+000000,5.RS,5.RT,5.RD,00111,011001::64::MSACU
"msacu r<RD>, r<RS>, r<RT>"
// end-sanitize-cygnus
// start-sanitize-cygnus
// end-sanitize-cygnus
// start-sanitize-cygnus
// Unsigned Multiply, Negate, Accumulate and Move HI.
-000000,5.RS,5.RT,5.RD,01111,011001::::MSACHIU
+000000,5.RS,5.RT,5.RD,01111,011001::64::MSACHIU
"msachiu r<RD>, r<RS>, r<RT>"
// end-sanitize-cygnus
// start-sanitize-cygnus
// end-sanitize-cygnus
// start-sanitize-cygnus
// Rotate Right.
-000000,00001,5.RT,5.RD,5.SHIFT,000010::::ROR
+000000,00001,5.RT,5.RD,5.SHIFT,000010::64::ROR
"ror r<RD>, r<RT>, <SHIFT>"
// end-sanitize-cygnus
// start-sanitize-cygnus
// end-sanitize-cygnus
// start-sanitize-cygnus
// Rotate Right Variable.
-000000,5.RS,5.RT,5.RD,00001,000110::::RORV
+000000,5.RS,5.RT,5.RD,00001,000110::64::RORV
"rorv r<RD>, r<RT>, <RS>"
// end-sanitize-cygnus
// start-sanitize-cygnus
// end-sanitize-cygnus
// start-sanitize-cygnus
// Double Rotate Right.
-000000,00001,5.RT,5.RD,5.SHIFT,111010::::DROR
+000000,00001,5.RT,5.RD,5.SHIFT,111010::64::DROR
"dror r<RD>, r<RT>, <SHIFT>"
// end-sanitize-cygnus
// start-sanitize-cygnus
// end-sanitize-cygnus
// start-sanitize-cygnus
// Double Rotate Right Plus 32.
-000000,00001,5.RT,5.RD,5.SHIFT,111110::::DROR32
+000000,00001,5.RT,5.RD,5.SHIFT,111110::64::DROR32
"dror32 r<RD>, r<RT>, <SHIFT>"
// end-sanitize-cygnus
// start-sanitize-cygnus
// end-sanitize-cygnus
// start-sanitize-cygnus
// Double Rotate Right Variable.
-000000,5.RS,5.RT,5.RD,00001,010110::::DRORV
+000000,5.RS,5.RT,5.RD,00001,010110::64::DRORV
"drorv r<RD>, r<RT>, <RS>"
// end-sanitize-cygnus
// start-sanitize-cygnus