aboutsummaryrefslogtreecommitdiffstats
path: root/capstone/suite/MC/Mips
diff options
context:
space:
mode:
authorAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
committerAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
commitaf1a266670d040d2f4083ff309d732d648afba2a (patch)
tree2fc46203448ddcc6f81546d379abfaeb323575e9 /capstone/suite/MC/Mips
parente02cda008591317b1625707ff8e115a4841aa889 (diff)
Add submodule dependency filesHEADmaster
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'capstone/suite/MC/Mips')
-rw-r--r--capstone/suite/MC/Mips/hilo-addressing.s.cs4
-rw-r--r--capstone/suite/MC/Mips/micromips-alu-instructions-EB.s.cs33
-rw-r--r--capstone/suite/MC/Mips/micromips-alu-instructions.s.cs33
-rw-r--r--capstone/suite/MC/Mips/micromips-branch-instructions-EB.s.cs11
-rw-r--r--capstone/suite/MC/Mips/micromips-branch-instructions.s.cs11
-rw-r--r--capstone/suite/MC/Mips/micromips-expansions.s.cs20
-rw-r--r--capstone/suite/MC/Mips/micromips-jump-instructions-EB.s.cs5
-rw-r--r--capstone/suite/MC/Mips/micromips-jump-instructions.s.cs6
-rw-r--r--capstone/suite/MC/Mips/micromips-loadstore-instructions-EB.s.cs9
-rw-r--r--capstone/suite/MC/Mips/micromips-loadstore-instructions.s.cs9
-rw-r--r--capstone/suite/MC/Mips/micromips-loadstore-unaligned-EB.s.cs5
-rw-r--r--capstone/suite/MC/Mips/micromips-loadstore-unaligned.s.cs5
-rw-r--r--capstone/suite/MC/Mips/micromips-movcond-instructions-EB.s.cs5
-rw-r--r--capstone/suite/MC/Mips/micromips-movcond-instructions.s.cs5
-rw-r--r--capstone/suite/MC/Mips/micromips-multiply-instructions-EB.s.cs5
-rw-r--r--capstone/suite/MC/Mips/micromips-multiply-instructions.s.cs5
-rw-r--r--capstone/suite/MC/Mips/micromips-shift-instructions-EB.s.cs9
-rw-r--r--capstone/suite/MC/Mips/micromips-shift-instructions.s.cs9
-rw-r--r--capstone/suite/MC/Mips/micromips-trap-instructions-EB.s.cs13
-rw-r--r--capstone/suite/MC/Mips/micromips-trap-instructions.s.cs13
-rw-r--r--capstone/suite/MC/Mips/mips-alu-instructions.s.cs53
-rw-r--r--capstone/suite/MC/Mips/mips-control-instructions-64.s.cs33
-rw-r--r--capstone/suite/MC/Mips/mips-control-instructions.s.cs33
-rw-r--r--capstone/suite/MC/Mips/mips-coprocessor-encodings.s.cs17
-rw-r--r--capstone/suite/MC/Mips/mips-dsp-instructions.s.cs43
-rw-r--r--capstone/suite/MC/Mips/mips-expansions.s.cs19
-rw-r--r--capstone/suite/MC/Mips/mips-fpu-instructions.s.cs93
-rw-r--r--capstone/suite/MC/Mips/mips-jump-instructions.s.cs1
-rw-r--r--capstone/suite/MC/Mips/mips-memory-instructions.s.cs17
-rw-r--r--capstone/suite/MC/Mips/mips-register-names.s.cs33
-rw-r--r--capstone/suite/MC/Mips/mips64-alu-instructions.s.cs47
-rw-r--r--capstone/suite/MC/Mips/mips64-instructions.s.cs3
-rw-r--r--capstone/suite/MC/Mips/mips64-register-names.s.cs33
-rw-r--r--capstone/suite/MC/Mips/mips_directives.s.cs12
-rw-r--r--capstone/suite/MC/Mips/nabi-regs.s.cs12
-rw-r--r--capstone/suite/MC/Mips/set-at-directive.s.cs6
-rw-r--r--capstone/suite/MC/Mips/test_2r.s.cs16
-rw-r--r--capstone/suite/MC/Mips/test_2rf.s.cs33
-rw-r--r--capstone/suite/MC/Mips/test_3r.s.cs243
-rw-r--r--capstone/suite/MC/Mips/test_3rf.s.cs83
-rw-r--r--capstone/suite/MC/Mips/test_bit.s.cs49
-rw-r--r--capstone/suite/MC/Mips/test_cbranch.s.cs11
-rw-r--r--capstone/suite/MC/Mips/test_ctrlregs.s.cs33
-rw-r--r--capstone/suite/MC/Mips/test_elm.s.cs16
-rw-r--r--capstone/suite/MC/Mips/test_elm_insert.s.cs4
-rw-r--r--capstone/suite/MC/Mips/test_elm_insve.s.cs5
-rw-r--r--capstone/suite/MC/Mips/test_i10.s.cs5
-rw-r--r--capstone/suite/MC/Mips/test_i5.s.cs45
-rw-r--r--capstone/suite/MC/Mips/test_i8.s.cs11
-rw-r--r--capstone/suite/MC/Mips/test_lsa.s.cs5
-rw-r--r--capstone/suite/MC/Mips/test_mi10.s.cs24
-rw-r--r--capstone/suite/MC/Mips/test_vec.s.cs8
52 files changed, 1261 insertions, 0 deletions
diff --git a/capstone/suite/MC/Mips/hilo-addressing.s.cs b/capstone/suite/MC/Mips/hilo-addressing.s.cs
new file mode 100644
index 000000000..2d99128b6
--- /dev/null
+++ b/capstone/suite/MC/Mips/hilo-addressing.s.cs
@@ -0,0 +1,4 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+// 0x3c,0x04,0xde,0xae = lui $a0, %hi(addr)
+0x03,0xe0,0x00,0x08 = jr $ra
+// 0x80,0x82,0xbe,0xef = lb $v0, %lo(addr)($a0)
diff --git a/capstone/suite/MC/Mips/micromips-alu-instructions-EB.s.cs b/capstone/suite/MC/Mips/micromips-alu-instructions-EB.s.cs
new file mode 100644
index 000000000..f4dbe7a8c
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-alu-instructions-EB.s.cs
@@ -0,0 +1,33 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN+CS_MODE_MICRO, None
+0x00,0xe6,0x49,0x10 = add $t1, $a2, $a3
+0x11,0x26,0x45,0x67 = addi $t1, $a2, 17767
+0x31,0x26,0xc5,0x67 = addiu $t1, $a2, -15001
+0x11,0x26,0x45,0x67 = addi $t1, $a2, 17767
+0x31,0x26,0xc5,0x67 = addiu $t1, $a2, -15001
+0x00,0xe6,0x49,0x50 = addu $t1, $a2, $a3
+0x00,0xe6,0x49,0x90 = sub $t1, $a2, $a3
+0x00,0xa3,0x21,0xd0 = subu $a0, $v1, $a1
+0x00,0xe0,0x31,0x90 = sub $a2, $zero, $a3
+0x00,0xe0,0x31,0xd0 = subu $a2, $zero, $a3
+0x00,0x08,0x39,0x50 = addu $a3, $t0, $zero
+0x00,0xa3,0x1b,0x50 = slt $v1, $v1, $a1
+0x90,0x63,0x00,0x67 = slti $v1, $v1, 103
+0x90,0x63,0x00,0x67 = slti $v1, $v1, 103
+0xb0,0x63,0x00,0x67 = sltiu $v1, $v1, 103
+0x00,0xa3,0x1b,0x90 = sltu $v1, $v1, $a1
+0x41,0xa9,0x45,0x67 = lui $t1, 17767
+0x00,0xe6,0x4a,0x50 = and $t1, $a2, $a3
+0xd1,0x26,0x45,0x67 = andi $t1, $a2, 17767
+0xd1,0x26,0x45,0x67 = andi $t1, $a2, 17767
+0x00,0xa4,0x1a,0x90 = or $v1, $a0, $a1
+0x51,0x26,0x45,0x67 = ori $t1, $a2, 17767
+0x00,0xa3,0x1b,0x10 = xor $v1, $v1, $a1
+0x71,0x26,0x45,0x67 = xori $t1, $a2, 17767
+0x71,0x26,0x45,0x67 = xori $t1, $a2, 17767
+0x00,0xe6,0x4a,0xd0 = nor $t1, $a2, $a3
+0x00,0x08,0x3a,0xd0 = not $a3, $t0
+0x00,0xe6,0x4a,0x10 = mul $t1, $a2, $a3
+0x00,0xe9,0x8b,0x3c = mult $t1, $a3
+0x00,0xe9,0x9b,0x3c = multu $t1, $a3
+0x00,0xe9,0xab,0x3c = div $zero, $t1, $a3
+0x00,0xe9,0xbb,0x3c = divu $zero, $t1, $a3
diff --git a/capstone/suite/MC/Mips/micromips-alu-instructions.s.cs b/capstone/suite/MC/Mips/micromips-alu-instructions.s.cs
new file mode 100644
index 000000000..81fe6438c
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-alu-instructions.s.cs
@@ -0,0 +1,33 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO, None
+0xe6,0x00,0x10,0x49 = add $t1, $a2, $a3
+0x26,0x11,0x67,0x45 = addi $t1, $a2, 17767
+0x26,0x31,0x67,0xc5 = addiu $t1, $a2, -15001
+0x26,0x11,0x67,0x45 = addi $t1, $a2, 17767
+0x26,0x31,0x67,0xc5 = addiu $t1, $a2, -15001
+0xe6,0x00,0x50,0x49 = addu $t1, $a2, $a3
+0xe6,0x00,0x90,0x49 = sub $t1, $a2, $a3
+0xa3,0x00,0xd0,0x21 = subu $a0, $v1, $a1
+0xe0,0x00,0x90,0x31 = sub $a2, $zero, $a3
+0xe0,0x00,0xd0,0x31 = subu $a2, $zero, $a3
+0x08,0x00,0x50,0x39 = addu $a3, $t0, $zero
+0xa3,0x00,0x50,0x1b = slt $v1, $v1, $a1
+0x63,0x90,0x67,0x00 = slti $v1, $v1, 103
+0x63,0x90,0x67,0x00 = slti $v1, $v1, 103
+0x63,0xb0,0x67,0x00 = sltiu $v1, $v1, 103
+0xa3,0x00,0x90,0x1b = sltu $v1, $v1, $a1
+0xa9,0x41,0x67,0x45 = lui $t1, 17767
+0xe6,0x00,0x50,0x4a = and $t1, $a2, $a3
+0x26,0xd1,0x67,0x45 = andi $t1, $a2, 17767
+0x26,0xd1,0x67,0x45 = andi $t1, $a2, 17767
+0xa4,0x00,0x90,0x1a = or $v1, $a0, $a1
+0x26,0x51,0x67,0x45 = ori $t1, $a2, 17767
+0xa3,0x00,0x10,0x1b = xor $v1, $v1, $a1
+0x26,0x71,0x67,0x45 = xori $t1, $a2, 17767
+0x26,0x71,0x67,0x45 = xori $t1, $a2, 17767
+0xe6,0x00,0xd0,0x4a = nor $t1, $a2, $a3
+0x08,0x00,0xd0,0x3a = not $a3, $t0
+0xe6,0x00,0x10,0x4a = mul $t1, $a2, $a3
+0xe9,0x00,0x3c,0x8b = mult $t1, $a3
+0xe9,0x00,0x3c,0x9b = multu $t1, $a3
+0xe9,0x00,0x3c,0xab = div $zero, $t1, $a3
+0xe9,0x00,0x3c,0xbb = divu $zero, $t1, $a3
diff --git a/capstone/suite/MC/Mips/micromips-branch-instructions-EB.s.cs b/capstone/suite/MC/Mips/micromips-branch-instructions-EB.s.cs
new file mode 100644
index 000000000..947ea2500
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-branch-instructions-EB.s.cs
@@ -0,0 +1,11 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO+CS_MODE_BIG_ENDIAN, None
+0x94,0x00,0x02,0x9a = b 1332
+0x94,0xc9,0x02,0x9a = beq $t1, $a2, 1332
+0x40,0x46,0x02,0x9a = bgez $a2, 1332
+0x40,0x66,0x02,0x9a = bgezal $a2, 1332
+0x40,0x26,0x02,0x9a = bltzal $a2, 1332
+0x40,0xc6,0x02,0x9a = bgtz $a2, 1332
+0x40,0x86,0x02,0x9a = blez $a2, 1332
+0xb4,0xc9,0x02,0x9a = bne $t1, $a2, 1332
+// 0x40,0x60,0x02,0x9a = bal 1332
+0x40,0x06,0x02,0x9a = bltz $a2, 1332
diff --git a/capstone/suite/MC/Mips/micromips-branch-instructions.s.cs b/capstone/suite/MC/Mips/micromips-branch-instructions.s.cs
new file mode 100644
index 000000000..286bc0d94
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-branch-instructions.s.cs
@@ -0,0 +1,11 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO, None
+0x00,0x94,0x9a,0x02 = b 1332
+0xc9,0x94,0x9a,0x02 = beq $t1, $a2, 1332
+0x46,0x40,0x9a,0x02 = bgez $a2, 1332
+0x66,0x40,0x9a,0x02 = bgezal $a2, 1332
+0x26,0x40,0x9a,0x02 = bltzal $a2, 1332
+0xc6,0x40,0x9a,0x02 = bgtz $a2, 1332
+0x86,0x40,0x9a,0x02 = blez $a2, 1332
+0xc9,0xb4,0x9a,0x02 = bne $t1, $a2, 1332
+// 0x60,0x40,0x9a,0x02 = bal 1332
+0x06,0x40,0x9a,0x02 = bltz $a2, 1332
diff --git a/capstone/suite/MC/Mips/micromips-expansions.s.cs b/capstone/suite/MC/Mips/micromips-expansions.s.cs
new file mode 100644
index 000000000..b16331bb2
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-expansions.s.cs
@@ -0,0 +1,20 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO, None
+0xa0,0x50,0x7b,0x00 = ori $a1, $zero, 123
+0xc0,0x30,0xd7,0xf6 = addiu $a2, $zero, -2345
+0xa7,0x41,0x01,0x00 = lui $a3, 1
+0xe7,0x50,0x02,0x00 = ori $a3, $a3, 2
+0x80,0x30,0x14,0x00 = addiu $a0, $zero, 20
+0xa7,0x41,0x01,0x00 = lui $a3, 1
+0xe7,0x50,0x02,0x00 = ori $a3, $a3, 2
+0x85,0x30,0x14,0x00 = addiu $a0, $a1, 20
+0xa7,0x41,0x01,0x00 = lui $a3, 1
+0xe7,0x50,0x02,0x00 = ori $a3, $a3, 2
+0x07,0x01,0x50,0x39 = addu $a3, $a3, $t0
+0x8a,0x00,0x50,0x51 = addu $t2, $t2, $a0
+0x21,0x01,0x50,0x09 = addu $at, $at, $t1
+0xaa,0x41,0x0a,0x00 = lui $t2, 10
+0x8a,0x00,0x50,0x51 = addu $t2, $t2, $a0
+0x4a,0xfd,0x7b,0x00 = lw $t2, 123($t2)
+0xa1,0x41,0x02,0x00 = lui $at, 2
+0x21,0x01,0x50,0x09 = addu $at, $at, $t1
+// 0x41,0xf9,0x40,0xe2 = sw $t2, 57920($at)
diff --git a/capstone/suite/MC/Mips/micromips-jump-instructions-EB.s.cs b/capstone/suite/MC/Mips/micromips-jump-instructions-EB.s.cs
new file mode 100644
index 000000000..7f9ee60f4
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-jump-instructions-EB.s.cs
@@ -0,0 +1,5 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO+CS_MODE_BIG_ENDIAN, None
+0xd4,0x00,0x02,0x98 = j 1328
+0xf4,0x00,0x02,0x98 = jal 1328
+// 0x03,0xe6,0x0f,0x3c = jalr $a2
+0x00,0x07,0x0f,0x3c = jr $a3
diff --git a/capstone/suite/MC/Mips/micromips-jump-instructions.s.cs b/capstone/suite/MC/Mips/micromips-jump-instructions.s.cs
new file mode 100644
index 000000000..b23d8d73a
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-jump-instructions.s.cs
@@ -0,0 +1,6 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO, None
+0x00,0xd4,0x98,0x02 = j 1328
+0x00,0xf4,0x98,0x02 = jal 1328
+// 0xe6,0x03,0x3c,0x0f = jalr $a2
+0x07,0x00,0x3c,0x0f = jr $a3
+0x07,0x00,0x3c,0x0f = jr $a3
diff --git a/capstone/suite/MC/Mips/micromips-loadstore-instructions-EB.s.cs b/capstone/suite/MC/Mips/micromips-loadstore-instructions-EB.s.cs
new file mode 100644
index 000000000..57958f438
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-loadstore-instructions-EB.s.cs
@@ -0,0 +1,9 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO+CS_MODE_BIG_ENDIAN, None
+0x1c,0xa4,0x00,0x08 = lb $a1, 8($a0)
+0x14,0xc4,0x00,0x08 = lbu $a2, 8($a0)
+0x3c,0x44,0x00,0x08 = lh $v0, 8($a0)
+0x34,0x82,0x00,0x08 = lhu $a0, 8($v0)
+0xfc,0xc5,0x00,0x04 = lw $a2, 4($a1)
+0x18,0xa4,0x00,0x08 = sb $a1, 8($a0)
+0x38,0x44,0x00,0x08 = sh $v0, 8($a0)
+0xf8,0xa6,0x00,0x04 = sw $a1, 4($a2)
diff --git a/capstone/suite/MC/Mips/micromips-loadstore-instructions.s.cs b/capstone/suite/MC/Mips/micromips-loadstore-instructions.s.cs
new file mode 100644
index 000000000..561c819d2
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-loadstore-instructions.s.cs
@@ -0,0 +1,9 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO, None
+0xa4,0x1c,0x08,0x00 = lb $a1, 8($a0)
+0xc4,0x14,0x08,0x00 = lbu $a2, 8($a0)
+0x44,0x3c,0x08,0x00 = lh $v0, 8($a0)
+0x82,0x34,0x08,0x00 = lhu $a0, 8($v0)
+0xc5,0xfc,0x04,0x00 = lw $a2, 4($a1)
+0xa4,0x18,0x08,0x00 = sb $a1, 8($a0)
+0x44,0x38,0x08,0x00 = sh $v0, 8($a0)
+0xa6,0xf8,0x04,0x00 = sw $a1, 4($a2)
diff --git a/capstone/suite/MC/Mips/micromips-loadstore-unaligned-EB.s.cs b/capstone/suite/MC/Mips/micromips-loadstore-unaligned-EB.s.cs
new file mode 100644
index 000000000..9e2a3ae39
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-loadstore-unaligned-EB.s.cs
@@ -0,0 +1,5 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO+CS_MODE_BIG_ENDIAN, None
+0x60,0x85,0x00,0x10 = lwl $a0, 16($a1)
+0x60,0x85,0x10,0x10 = lwr $a0, 16($a1)
+0x60,0x85,0x80,0x10 = swl $a0, 16($a1)
+0x60,0x85,0x90,0x10 = swr $a0, 16($a1)
diff --git a/capstone/suite/MC/Mips/micromips-loadstore-unaligned.s.cs b/capstone/suite/MC/Mips/micromips-loadstore-unaligned.s.cs
new file mode 100644
index 000000000..855b4dd9f
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-loadstore-unaligned.s.cs
@@ -0,0 +1,5 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO, None
+0x85,0x60,0x10,0x00 = lwl $a0, 16($a1)
+0x85,0x60,0x10,0x10 = lwr $a0, 16($a1)
+0x85,0x60,0x10,0x80 = swl $a0, 16($a1)
+0x85,0x60,0x10,0x90 = swr $a0, 16($a1)
diff --git a/capstone/suite/MC/Mips/micromips-movcond-instructions-EB.s.cs b/capstone/suite/MC/Mips/micromips-movcond-instructions-EB.s.cs
new file mode 100644
index 000000000..4351e68a5
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-movcond-instructions-EB.s.cs
@@ -0,0 +1,5 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO+CS_MODE_BIG_ENDIAN, None
+0x00,0xe6,0x48,0x58 = movz $t1, $a2, $a3
+0x00,0xe6,0x48,0x18 = movn $t1, $a2, $a3
+0x55,0x26,0x09,0x7b = movt $t1, $a2, $fcc0
+0x55,0x26,0x01,0x7b = movf $t1, $a2, $fcc0
diff --git a/capstone/suite/MC/Mips/micromips-movcond-instructions.s.cs b/capstone/suite/MC/Mips/micromips-movcond-instructions.s.cs
new file mode 100644
index 000000000..b64cdd247
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-movcond-instructions.s.cs
@@ -0,0 +1,5 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO, None
+0xe6,0x00,0x58,0x48 = movz $t1, $a2, $a3
+0xe6,0x00,0x18,0x48 = movn $t1, $a2, $a3
+0x26,0x55,0x7b,0x09 = movt $t1, $a2, $fcc0
+0x26,0x55,0x7b,0x01 = movf $t1, $a2, $fcc0
diff --git a/capstone/suite/MC/Mips/micromips-multiply-instructions-EB.s.cs b/capstone/suite/MC/Mips/micromips-multiply-instructions-EB.s.cs
new file mode 100644
index 000000000..f04522a0c
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-multiply-instructions-EB.s.cs
@@ -0,0 +1,5 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO+CS_MODE_BIG_ENDIAN, None
+0x00,0xa4,0xcb,0x3c = madd $a0, $a1
+0x00,0xa4,0xdb,0x3c = maddu $a0, $a1
+0x00,0xa4,0xeb,0x3c = msub $a0, $a1
+0x00,0xa4,0xfb,0x3c = msubu $a0, $a1
diff --git a/capstone/suite/MC/Mips/micromips-multiply-instructions.s.cs b/capstone/suite/MC/Mips/micromips-multiply-instructions.s.cs
new file mode 100644
index 000000000..30adb5a93
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-multiply-instructions.s.cs
@@ -0,0 +1,5 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO, None
+0xa4,0x00,0x3c,0xcb = madd $a0, $a1
+0xa4,0x00,0x3c,0xdb = maddu $a0, $a1
+0xa4,0x00,0x3c,0xeb = msub $a0, $a1
+0xa4,0x00,0x3c,0xfb = msubu $a0, $a1
diff --git a/capstone/suite/MC/Mips/micromips-shift-instructions-EB.s.cs b/capstone/suite/MC/Mips/micromips-shift-instructions-EB.s.cs
new file mode 100644
index 000000000..d09bee0e4
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-shift-instructions-EB.s.cs
@@ -0,0 +1,9 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO+CS_MODE_BIG_ENDIAN, None
+0x00,0x83,0x38,0x00 = sll $a0, $v1, 7
+0x00,0x65,0x10,0x10 = sllv $v0, $v1, $a1
+0x00,0x83,0x38,0x80 = sra $a0, $v1, 7
+0x00,0x65,0x10,0x90 = srav $v0, $v1, $a1
+0x00,0x83,0x38,0x40 = srl $a0, $v1, 7
+0x00,0x65,0x10,0x50 = srlv $v0, $v1, $a1
+0x01,0x26,0x38,0xc0 = rotr $t1, $a2, 7
+0x00,0xc7,0x48,0xd0 = rotrv $t1, $a2, $a3
diff --git a/capstone/suite/MC/Mips/micromips-shift-instructions.s.cs b/capstone/suite/MC/Mips/micromips-shift-instructions.s.cs
new file mode 100644
index 000000000..3353e91a8
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-shift-instructions.s.cs
@@ -0,0 +1,9 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO, None
+0x83,0x00,0x00,0x38 = sll $a0, $v1, 7
+0x65,0x00,0x10,0x10 = sllv $v0, $v1, $a1
+0x83,0x00,0x80,0x38 = sra $a0, $v1, 7
+0x65,0x00,0x90,0x10 = srav $v0, $v1, $a1
+0x83,0x00,0x40,0x38 = srl $a0, $v1, 7
+0x65,0x00,0x50,0x10 = srlv $v0, $v1, $a1
+0x26,0x01,0xc0,0x38 = rotr $t1, $a2, 7
+0xc7,0x00,0xd0,0x48 = rotrv $t1, $a2, $a3
diff --git a/capstone/suite/MC/Mips/micromips-trap-instructions-EB.s.cs b/capstone/suite/MC/Mips/micromips-trap-instructions-EB.s.cs
new file mode 100644
index 000000000..385db92aa
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-trap-instructions-EB.s.cs
@@ -0,0 +1,13 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO+CS_MODE_BIG_ENDIAN, None
+// 0x01,0x28,0x00,0x3c = teq $t0, $t1
+// 0x01,0x28,0x02,0x3c = tge $t0, $t1
+// 0x01,0x28,0x04,0x3c = tgeu $t0, $t1
+// 0x01,0x28,0x08,0x3c = tlt $t0, $t1
+// 0x01,0x28,0x0a,0x3c = tltu $t0, $t1
+// 0x01,0x28,0x0c,0x3c = tne $t0, $t1
+0x41,0xc9,0x45,0x67 = teqi $t1, 17767
+0x41,0x29,0x45,0x67 = tgei $t1, 17767
+0x41,0x69,0x45,0x67 = tgeiu $t1, 17767
+0x41,0x09,0x45,0x67 = tlti $t1, 17767
+0x41,0x49,0x45,0x67 = tltiu $t1, 17767
+0x41,0x89,0x45,0x67 = tnei $t1, 17767
diff --git a/capstone/suite/MC/Mips/micromips-trap-instructions.s.cs b/capstone/suite/MC/Mips/micromips-trap-instructions.s.cs
new file mode 100644
index 000000000..814f8da3c
--- /dev/null
+++ b/capstone/suite/MC/Mips/micromips-trap-instructions.s.cs
@@ -0,0 +1,13 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_MICRO, None
+// 0x28,0x01,0x3c,0x00 = teq $t0, $t1
+// 0x28,0x01,0x3c,0x02 = tge $t0, $t1
+// 0x28,0x01,0x3c,0x04 = tgeu $t0, $t1
+// 0x28,0x01,0x3c,0x08 = tlt $t0, $t1
+// 0x28,0x01,0x3c,0x0a = tltu $t0, $t1
+// 0x28,0x01,0x3c,0x0c = tne $t0, $t1
+0xc9,0x41,0x67,0x45 = teqi $t1, 17767
+0x29,0x41,0x67,0x45 = tgei $t1, 17767
+0x69,0x41,0x67,0x45 = tgeiu $t1, 17767
+0x09,0x41,0x67,0x45 = tlti $t1, 17767
+0x49,0x41,0x67,0x45 = tltiu $t1, 17767
+0x89,0x41,0x67,0x45 = tnei $t1, 17767
diff --git a/capstone/suite/MC/Mips/mips-alu-instructions.s.cs b/capstone/suite/MC/Mips/mips-alu-instructions.s.cs
new file mode 100644
index 000000000..1ee3337f2
--- /dev/null
+++ b/capstone/suite/MC/Mips/mips-alu-instructions.s.cs
@@ -0,0 +1,53 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32, None
+0x24,0x48,0xc7,0x00 = and $t1, $a2, $a3
+0x67,0x45,0xc9,0x30 = andi $t1, $a2, 17767
+0x67,0x45,0xc9,0x30 = andi $t1, $a2, 17767
+0x67,0x45,0x29,0x31 = andi $t1, $t1, 17767
+0x21,0x30,0xe6,0x70 = clo $a2, $a3
+0x20,0x30,0xe6,0x70 = clz $a2, $a3
+0x84,0x61,0x33,0x7d = ins $s3, $t1, 6, 7
+0x27,0x48,0xc7,0x00 = nor $t1, $a2, $a3
+0x25,0x18,0x65,0x00 = or $v1, $v1, $a1
+0x67,0x45,0xa4,0x34 = ori $a0, $a1, 17767
+0x67,0x45,0xc9,0x34 = ori $t1, $a2, 17767
+0x80,0x00,0x6b,0x35 = ori $t3, $t3, 128
+0xc2,0x49,0x26,0x00 = rotr $t1, $a2, 7
+0x46,0x48,0xe6,0x00 = rotrv $t1, $a2, $a3
+0xc0,0x21,0x03,0x00 = sll $a0, $v1, 7
+0x04,0x10,0xa3,0x00 = sllv $v0, $v1, $a1
+0x2a,0x18,0x65,0x00 = slt $v1, $v1, $a1
+0x67,0x00,0x63,0x28 = slti $v1, $v1, 103
+0x67,0x00,0x63,0x28 = slti $v1, $v1, 103
+0x67,0x00,0x63,0x2c = sltiu $v1, $v1, 103
+0x2b,0x18,0x65,0x00 = sltu $v1, $v1, $a1
+0xc3,0x21,0x03,0x00 = sra $a0, $v1, 7
+0x07,0x10,0xa3,0x00 = srav $v0, $v1, $a1
+0xc2,0x21,0x03,0x00 = srl $a0, $v1, 7
+0x06,0x10,0xa3,0x00 = srlv $v0, $v1, $a1
+0x26,0x18,0x65,0x00 = xor $v1, $v1, $a1
+0x67,0x45,0xc9,0x38 = xori $t1, $a2, 17767
+0x67,0x45,0xc9,0x38 = xori $t1, $a2, 17767
+0x0c,0x00,0x6b,0x39 = xori $t3, $t3, 12
+0xa0,0x30,0x07,0x7c = wsbh $a2, $a3
+0x27,0x38,0x00,0x01 = not $a3, $t0
+0x20,0x48,0xc7,0x00 = add $t1, $a2, $a3
+0x67,0x45,0xc9,0x20 = addi $t1, $a2, 17767
+0x67,0xc5,0xc9,0x24 = addiu $t1, $a2, -15001
+0x67,0x45,0xc9,0x20 = addi $t1, $a2, 17767
+0x67,0x45,0x29,0x21 = addi $t1, $t1, 17767
+0x67,0xc5,0xc9,0x24 = addiu $t1, $a2, -15001
+0x28,0x00,0x6b,0x25 = addiu $t3, $t3, 40
+0x21,0x48,0xc7,0x00 = addu $t1, $a2, $a3
+0x00,0x00,0xc7,0x70 = madd $a2, $a3
+0x01,0x00,0xc7,0x70 = maddu $a2, $a3
+0x04,0x00,0xc7,0x70 = msub $a2, $a3
+0x05,0x00,0xc7,0x70 = msubu $a2, $a3
+0x18,0x00,0x65,0x00 = mult $v1, $a1
+0x19,0x00,0x65,0x00 = multu $v1, $a1
+0x22,0x48,0xc7,0x00 = sub $t1, $a2, $a3
+0xc8,0xff,0xbd,0x23 = addi $sp, $sp, -56
+0x23,0x20,0x65,0x00 = subu $a0, $v1, $a1
+0xd8,0xff,0xbd,0x27 = addiu $sp, $sp, -40
+0x22,0x30,0x07,0x00 = neg $a2, $a3
+0x23,0x30,0x07,0x00 = negu $a2, $a3
+0x21,0x38,0x00,0x01 = move $a3, $t0
diff --git a/capstone/suite/MC/Mips/mips-control-instructions-64.s.cs b/capstone/suite/MC/Mips/mips-control-instructions-64.s.cs
new file mode 100644
index 000000000..c3478da19
--- /dev/null
+++ b/capstone/suite/MC/Mips/mips-control-instructions-64.s.cs
@@ -0,0 +1,33 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS64+CS_MODE_BIG_ENDIAN, None
+0x00,0x00,0x00,0x0d = break
+// 0x00,0x07,0x00,0x0d = break 7, 0
+0x00,0x07,0x01,0x4d = break 7, 5
+0x00,0x00,0x00,0x0c = syscall
+0x00,0x0d,0x15,0x0c = syscall 13396
+0x42,0x00,0x00,0x18 = eret
+0x42,0x00,0x00,0x1f = deret
+0x41,0x60,0x60,0x00 = di
+0x41,0x60,0x60,0x00 = di
+0x41,0x6a,0x60,0x00 = di $t2
+0x41,0x60,0x60,0x20 = ei
+0x41,0x60,0x60,0x20 = ei
+0x41,0x6a,0x60,0x20 = ei $t2
+0x42,0x00,0x00,0x20 = wait
+0x00,0x03,0x00,0x34 = teq $zero, $v1
+0x00,0x03,0x00,0x74 = teq $zero, $v1, 1
+0x04,0x6c,0x00,0x01 = teqi $v1, 1
+0x00,0x03,0x00,0x30 = tge $zero, $v1
+0x00,0x03,0x00,0xf0 = tge $zero, $v1, 3
+0x04,0x68,0x00,0x03 = tgei $v1, 3
+0x00,0x03,0x00,0x31 = tgeu $zero, $v1
+0x00,0x03,0x01,0xf1 = tgeu $zero, $v1, 7
+0x04,0x69,0x00,0x07 = tgeiu $v1, 7
+0x00,0x03,0x00,0x32 = tlt $zero, $v1
+0x00,0x03,0x07,0xf2 = tlt $zero, $v1, 31
+0x04,0x6a,0x00,0x1f = tlti $v1, 31
+0x00,0x03,0x00,0x33 = tltu $zero, $v1
+0x00,0x03,0x3f,0xf3 = tltu $zero, $v1, 255
+0x04,0x6b,0x00,0xff = tltiu $v1, 255
+0x00,0x03,0x00,0x36 = tne $zero, $v1
+0x00,0x03,0xff,0xf6 = tne $zero, $v1, 1023
+0x04,0x6e,0x03,0xff = tnei $v1, 1023
diff --git a/capstone/suite/MC/Mips/mips-control-instructions.s.cs b/capstone/suite/MC/Mips/mips-control-instructions.s.cs
new file mode 100644
index 000000000..86c4ad82e
--- /dev/null
+++ b/capstone/suite/MC/Mips/mips-control-instructions.s.cs
@@ -0,0 +1,33 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x00,0x00,0x00,0x0d = break
+// 0x00,0x07,0x00,0x0d = break 7, 0
+0x00,0x07,0x01,0x4d = break 7, 5
+0x00,0x00,0x00,0x0c = syscall
+0x00,0x0d,0x15,0x0c = syscall 13396
+0x42,0x00,0x00,0x18 = eret
+0x42,0x00,0x00,0x1f = deret
+0x41,0x60,0x60,0x00 = di
+0x41,0x60,0x60,0x00 = di
+0x41,0x6a,0x60,0x00 = di $t2
+0x41,0x60,0x60,0x20 = ei
+0x41,0x60,0x60,0x20 = ei
+0x41,0x6a,0x60,0x20 = ei $t2
+0x42,0x00,0x00,0x20 = wait
+0x00,0x03,0x00,0x34 = teq $zero, $v1
+0x00,0x03,0x00,0x74 = teq $zero, $v1, 1
+0x04,0x6c,0x00,0x01 = teqi $v1, 1
+0x00,0x03,0x00,0x30 = tge $zero, $v1
+0x00,0x03,0x00,0xf0 = tge $zero, $v1, 3
+0x04,0x68,0x00,0x03 = tgei $v1, 3
+0x00,0x03,0x00,0x31 = tgeu $zero, $v1
+0x00,0x03,0x01,0xf1 = tgeu $zero, $v1, 7
+0x04,0x69,0x00,0x07 = tgeiu $v1, 7
+0x00,0x03,0x00,0x32 = tlt $zero, $v1
+0x00,0x03,0x07,0xf2 = tlt $zero, $v1, 31
+0x04,0x6a,0x00,0x1f = tlti $v1, 31
+0x00,0x03,0x00,0x33 = tltu $zero, $v1
+0x00,0x03,0x3f,0xf3 = tltu $zero, $v1, 255
+0x04,0x6b,0x00,0xff = tltiu $v1, 255
+0x00,0x03,0x00,0x36 = tne $zero, $v1
+0x00,0x03,0xff,0xf6 = tne $zero, $v1, 1023
+0x04,0x6e,0x03,0xff = tnei $v1, 1023
diff --git a/capstone/suite/MC/Mips/mips-coprocessor-encodings.s.cs b/capstone/suite/MC/Mips/mips-coprocessor-encodings.s.cs
new file mode 100644
index 000000000..d14ddc3ba
--- /dev/null
+++ b/capstone/suite/MC/Mips/mips-coprocessor-encodings.s.cs
@@ -0,0 +1,17 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS64+CS_MODE_BIG_ENDIAN, None
+0x40,0xac,0x80,0x02 = dmtc0 $t4, $s0, 2
+0x40,0xac,0x80,0x00 = dmtc0 $t4, $s0, 0
+0x40,0x8c,0x80,0x02 = mtc0 $t4, $s0, 2
+0x40,0x8c,0x80,0x00 = mtc0 $t4, $s0, 0
+0x40,0x2c,0x80,0x02 = dmfc0 $t4, $s0, 2
+0x40,0x2c,0x80,0x00 = dmfc0 $t4, $s0, 0
+0x40,0x0c,0x80,0x02 = mfc0 $t4, $s0, 2
+0x40,0x0c,0x80,0x00 = mfc0 $t4, $s0, 0
+0x48,0xac,0x80,0x02 = dmtc2 $t4, $s0, 2
+0x48,0xac,0x80,0x00 = dmtc2 $t4, $s0, 0
+0x48,0x8c,0x80,0x02 = mtc2 $t4, $s0, 2
+0x48,0x8c,0x80,0x00 = mtc2 $t4, $s0, 0
+0x48,0x2c,0x80,0x02 = dmfc2 $t4, $s0, 2
+0x48,0x2c,0x80,0x00 = dmfc2 $t4, $s0, 0
+0x48,0x0c,0x80,0x02 = mfc2 $t4, $s0, 2
+0x48,0x0c,0x80,0x00 = mfc2 $t4, $s0, 0
diff --git a/capstone/suite/MC/Mips/mips-dsp-instructions.s.cs b/capstone/suite/MC/Mips/mips-dsp-instructions.s.cs
new file mode 100644
index 000000000..ec152951d
--- /dev/null
+++ b/capstone/suite/MC/Mips/mips-dsp-instructions.s.cs
@@ -0,0 +1,43 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x7e,0x32,0x83,0x11 = precrq.qb.ph $s0, $s1, $s2
+0x7e,0x53,0x8d,0x11 = precrq.ph.w $s1, $s2, $s3
+0x7e,0x74,0x95,0x51 = precrq_rs.ph.w $s2, $s3, $s4
+0x7e,0x95,0x9b,0xd1 = precrqu_s.qb.ph $s3, $s4, $s5
+0x7c,0x15,0xa3,0x12 = preceq.w.phl $s4, $s5
+0x7c,0x16,0xab,0x52 = preceq.w.phr $s5, $s6
+0x7c,0x17,0xb1,0x12 = precequ.ph.qbl $s6, $s7
+0x7c,0x18,0xb9,0x52 = precequ.ph.qbr $s7, $t8
+0x7c,0x19,0xc1,0x92 = precequ.ph.qbla $t8, $t9
+0x7c,0x1a,0xc9,0xd2 = precequ.ph.qbra $t9, $k0
+0x7c,0x1b,0xd7,0x12 = preceu.ph.qbl $k0, $k1
+0x7c,0x1c,0xdf,0x52 = preceu.ph.qbr $k1, $gp
+0x7c,0x1d,0xe7,0x92 = preceu.ph.qbla $gp, $sp
+0x7c,0x1e,0xef,0xd2 = preceu.ph.qbra $sp, $fp
+0x7f,0x19,0xbb,0x51 = precr.qb.ph $s7, $t8, $t9
+0x7f,0x38,0x07,0x91 = precr_sra.ph.w $t8, $t9, 0
+0x7f,0x38,0xff,0x91 = precr_sra.ph.w $t8, $t9, 31
+0x7f,0x59,0x07,0xd1 = precr_sra_r.ph.w $t9, $k0, 0
+0x7f,0x59,0xff,0xd1 = precr_sra_r.ph.w $t9, $k0, 31
+0x7f,0x54,0x51,0x8a = lbux $t2, $s4($k0)
+0x7f,0x75,0x59,0x0a = lhx $t3, $s5($k1)
+0x7f,0x96,0x60,0x0a = lwx $t4, $s6($gp)
+0x00,0x43,0x18,0x18 = mult $ac3, $v0, $v1
+0x00,0x85,0x10,0x19 = multu $ac2, $a0, $a1
+0x70,0xc7,0x08,0x00 = madd $ac1, $a2, $a3
+// 0x71,0x09,0x00,0x01 = maddu $ac0, $t0, $t1
+0x71,0x4b,0x18,0x04 = msub $ac3, $t2, $t3
+0x71,0x8d,0x10,0x05 = msubu $ac2, $t4, $t5
+0x00,0x20,0x70,0x10 = mfhi $t6, $ac1
+// 0x00,0x00,0x78,0x12 = mflo $t7, $ac0
+0x02,0x00,0x18,0x11 = mthi $s0, $ac3
+0x02,0x20,0x10,0x13 = mtlo $s1, $ac2
+0x00,0x43,0x00,0x18 = mult $v0, $v1
+0x00,0x85,0x00,0x19 = multu $a0, $a1
+0x70,0xc7,0x00,0x00 = madd $a2, $a3
+// 0x71,0x09,0x00,0x01 = maddu $t0, $t1
+0x71,0x4b,0x00,0x04 = msub $t2, $t3
+0x71,0x8d,0x00,0x05 = msubu $t4, $t5
+0x00,0x00,0x70,0x10 = mfhi $t6
+// 0x00,0x00,0x78,0x12 = mflo $t7
+0x02,0x00,0x00,0x11 = mthi $s0
+0x02,0x20,0x00,0x13 = mtlo $s1
diff --git a/capstone/suite/MC/Mips/mips-expansions.s.cs b/capstone/suite/MC/Mips/mips-expansions.s.cs
new file mode 100644
index 000000000..2aeca0cde
--- /dev/null
+++ b/capstone/suite/MC/Mips/mips-expansions.s.cs
@@ -0,0 +1,19 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32, None
+0x7b,0x00,0x05,0x34 = ori $a1, $zero, 123
+0xd7,0xf6,0x06,0x24 = addiu $a2, $zero, -2345
+0x01,0x00,0x07,0x3c = lui $a3, 1
+0x02,0x00,0xe7,0x34 = ori $a3, $a3, 2
+0x14,0x00,0x04,0x24 = addiu $a0, $zero, 20
+0x01,0x00,0x07,0x3c = lui $a3, 1
+0x02,0x00,0xe7,0x34 = ori $a3, $a3, 2
+0x14,0x00,0xa4,0x24 = addiu $a0, $a1, 20
+0x01,0x00,0x07,0x3c = lui $a3, 1
+0x02,0x00,0xe7,0x34 = ori $a3, $a3, 2
+0x21,0x38,0xe8,0x00 = addu $a3, $a3, $t0
+0x21,0x50,0x44,0x01 = addu $t2, $t2, $a0
+0x21,0x08,0x29,0x00 = addu $at, $at, $t1
+0x0a,0x00,0x0a,0x3c = lui $t2, 10
+0x7b,0x00,0x4a,0x8d = lw $t2, 123($t2)
+0x02,0x00,0x01,0x3c = lui $at, 2
+0x21,0x08,0x29,0x00 = addu $at, $at, $t1
+// 0x40,0xe2,0x2a,0xac = sw $t2, 57920($at)
diff --git a/capstone/suite/MC/Mips/mips-fpu-instructions.s.cs b/capstone/suite/MC/Mips/mips-fpu-instructions.s.cs
new file mode 100644
index 000000000..335cd0f2e
--- /dev/null
+++ b/capstone/suite/MC/Mips/mips-fpu-instructions.s.cs
@@ -0,0 +1,93 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32, None
+0x05,0x73,0x20,0x46 = abs.d $f12, $f14
+0x85,0x39,0x00,0x46 = abs.s $f6, $f7
+0x00,0x62,0x2e,0x46 = add.d $f8, $f12, $f14
+0x40,0x32,0x07,0x46 = add.s $f9, $f6, $f7
+0x0f,0x73,0x20,0x46 = floor.w.d $f12, $f14
+0x8f,0x39,0x00,0x46 = floor.w.s $f6, $f7
+0x0e,0x73,0x20,0x46 = ceil.w.d $f12, $f14
+0x8e,0x39,0x00,0x46 = ceil.w.s $f6, $f7
+0x02,0x62,0x2e,0x46 = mul.d $f8, $f12, $f14
+0x42,0x32,0x07,0x46 = mul.s $f9, $f6, $f7
+0x07,0x73,0x20,0x46 = neg.d $f12, $f14
+0x87,0x39,0x00,0x46 = neg.s $f6, $f7
+0x0c,0x73,0x20,0x46 = round.w.d $f12, $f14
+0x8c,0x39,0x00,0x46 = round.w.s $f6, $f7
+0x04,0x73,0x20,0x46 = sqrt.d $f12, $f14
+0x84,0x39,0x00,0x46 = sqrt.s $f6, $f7
+0x01,0x62,0x2e,0x46 = sub.d $f8, $f12, $f14
+0x41,0x32,0x07,0x46 = sub.s $f9, $f6, $f7
+0x0d,0x73,0x20,0x46 = trunc.w.d $f12, $f14
+0x8d,0x39,0x00,0x46 = trunc.w.s $f6, $f7
+0x32,0x60,0x2e,0x46 = c.eq.d $f12, $f14
+0x32,0x30,0x07,0x46 = c.eq.s $f6, $f7
+0x30,0x60,0x2e,0x46 = c.f.d $f12, $f14
+0x30,0x30,0x07,0x46 = c.f.s $f6, $f7
+0x3e,0x60,0x2e,0x46 = c.le.d $f12, $f14
+0x3e,0x30,0x07,0x46 = c.le.s $f6, $f7
+0x3c,0x60,0x2e,0x46 = c.lt.d $f12, $f14
+0x3c,0x30,0x07,0x46 = c.lt.s $f6, $f7
+0x3d,0x60,0x2e,0x46 = c.nge.d $f12, $f14
+0x3d,0x30,0x07,0x46 = c.nge.s $f6, $f7
+0x3b,0x60,0x2e,0x46 = c.ngl.d $f12, $f14
+0x3b,0x30,0x07,0x46 = c.ngl.s $f6, $f7
+0x39,0x60,0x2e,0x46 = c.ngle.d $f12, $f14
+0x39,0x30,0x07,0x46 = c.ngle.s $f6, $f7
+0x3f,0x60,0x2e,0x46 = c.ngt.d $f12, $f14
+0x3f,0x30,0x07,0x46 = c.ngt.s $f6, $f7
+0x36,0x60,0x2e,0x46 = c.ole.d $f12, $f14
+0x36,0x30,0x07,0x46 = c.ole.s $f6, $f7
+0x34,0x60,0x2e,0x46 = c.olt.d $f12, $f14
+0x34,0x30,0x07,0x46 = c.olt.s $f6, $f7
+0x3a,0x60,0x2e,0x46 = c.seq.d $f12, $f14
+0x3a,0x30,0x07,0x46 = c.seq.s $f6, $f7
+0x38,0x60,0x2e,0x46 = c.sf.d $f12, $f14
+0x38,0x30,0x07,0x46 = c.sf.s $f6, $f7
+0x33,0x60,0x2e,0x46 = c.ueq.d $f12, $f14
+0x33,0xe0,0x12,0x46 = c.ueq.s $f28, $f18
+0x37,0x60,0x2e,0x46 = c.ule.d $f12, $f14
+0x37,0x30,0x07,0x46 = c.ule.s $f6, $f7
+0x35,0x60,0x2e,0x46 = c.ult.d $f12, $f14
+0x35,0x30,0x07,0x46 = c.ult.s $f6, $f7
+0x31,0x60,0x2e,0x46 = c.un.d $f12, $f14
+0x31,0x30,0x07,0x46 = c.un.s $f6, $f7
+0xa1,0x39,0x00,0x46 = cvt.d.s $f6, $f7
+0x21,0x73,0x80,0x46 = cvt.d.w $f12, $f14
+0x20,0x73,0x20,0x46 = cvt.s.d $f12, $f14
+0xa0,0x39,0x80,0x46 = cvt.s.w $f6, $f7
+0x24,0x73,0x20,0x46 = cvt.w.d $f12, $f14
+0xa4,0x39,0x00,0x46 = cvt.w.s $f6, $f7
+0x00,0x00,0x46,0x44 = cfc1 $a2, $0
+0x00,0xf8,0xca,0x44 = ctc1 $t2, $31
+0x00,0x38,0x06,0x44 = mfc1 $a2, $f7
+0x10,0x28,0x00,0x00 = mfhi $a1
+0x12,0x28,0x00,0x00 = mflo $a1
+0x86,0x41,0x20,0x46 = mov.d $f6, $f8
+0x86,0x39,0x00,0x46 = mov.s $f6, $f7
+0x00,0x38,0x86,0x44 = mtc1 $a2, $f7
+0x11,0x00,0xe0,0x00 = mthi $a3
+0x13,0x00,0xe0,0x00 = mtlo $a3
+0xc6,0x23,0xe9,0xe4 = swc1 $f9, 9158($a3)
+0x00,0x38,0x06,0x40 = mfc0 $a2, $a3, 0
+0x00,0x40,0x89,0x40 = mtc0 $t1, $t0, 0
+0x00,0x38,0x05,0x48 = mfc2 $a1, $a3, 0
+0x00,0x20,0x89,0x48 = mtc2 $t1, $a0, 0
+0x02,0x38,0x06,0x40 = mfc0 $a2, $a3, 2
+0x03,0x40,0x89,0x40 = mtc0 $t1, $t0, 3
+0x04,0x38,0x05,0x48 = mfc2 $a1, $a3, 4
+0x05,0x20,0x89,0x48 = mtc2 $t1, $a0, 5
+0x01,0x10,0x20,0x00 = movf $v0, $at, $fcc0
+0x01,0x10,0x21,0x00 = movt $v0, $at, $fcc0
+0x01,0x20,0xb1,0x00 = movt $a0, $a1, $fcc4
+0x11,0x31,0x28,0x46 = movf.d $f4, $f6, $fcc2
+0x11,0x31,0x14,0x46 = movf.s $f4, $f6, $fcc5
+0x05,0x00,0xa6,0x4c = luxc1 $f0, $a2($a1)
+0x0d,0x20,0xb8,0x4c = suxc1 $f4, $t8($a1)
+0x00,0x05,0xcc,0x4d = lwxc1 $f20, $t4($t6)
+0x08,0xd0,0xd2,0x4e = swxc1 $f26, $s2($s6)
+0x00,0x20,0x71,0x44 = mfhc1 $s1, $f4
+0x00,0x30,0xf1,0x44 = mthc1 $s1, $f6
+0x10,0x00,0xa4,0xeb = swc2 $4, 16($sp)
+0x10,0x00,0xa4,0xfb = sdc2 $4, 16($sp)
+0x0c,0x00,0xeb,0xcb = lwc2 $11, 12($ra)
+0x0c,0x00,0xeb,0xdb = ldc2 $11, 12($ra)
diff --git a/capstone/suite/MC/Mips/mips-jump-instructions.s.cs b/capstone/suite/MC/Mips/mips-jump-instructions.s.cs
new file mode 100644
index 000000000..5e741fc3e
--- /dev/null
+++ b/capstone/suite/MC/Mips/mips-jump-instructions.s.cs
@@ -0,0 +1 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32, None
diff --git a/capstone/suite/MC/Mips/mips-memory-instructions.s.cs b/capstone/suite/MC/Mips/mips-memory-instructions.s.cs
new file mode 100644
index 000000000..ac5b3605c
--- /dev/null
+++ b/capstone/suite/MC/Mips/mips-memory-instructions.s.cs
@@ -0,0 +1,17 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32, None
+0x10,0x00,0xa4,0xa0 = sb $a0, 16($a1)
+0x10,0x00,0xa4,0xe0 = sc $a0, 16($a1)
+0x10,0x00,0xa4,0xa4 = sh $a0, 16($a1)
+0x10,0x00,0xa4,0xac = sw $a0, 16($a1)
+0x00,0x00,0xa7,0xac = sw $a3, ($a1)
+0x10,0x00,0xa2,0xe4 = swc1 $f2, 16($a1)
+0x10,0x00,0xa4,0xa8 = swl $a0, 16($a1)
+0x04,0x00,0xa4,0x80 = lb $a0, 4($a1)
+0x04,0x00,0xa4,0x8c = lw $a0, 4($a1)
+0x04,0x00,0xa4,0x90 = lbu $a0, 4($a1)
+0x04,0x00,0xa4,0x84 = lh $a0, 4($a1)
+0x04,0x00,0xa4,0x94 = lhu $a0, 4($a1)
+0x04,0x00,0xa4,0xc0 = ll $a0, 4($a1)
+0x04,0x00,0xa4,0x8c = lw $a0, 4($a1)
+0x00,0x00,0xe7,0x8c = lw $a3, ($a3)
+0x10,0x00,0xa2,0x8f = lw $v0, 16($sp)
diff --git a/capstone/suite/MC/Mips/mips-register-names.s.cs b/capstone/suite/MC/Mips/mips-register-names.s.cs
new file mode 100644
index 000000000..fb7cd8962
--- /dev/null
+++ b/capstone/suite/MC/Mips/mips-register-names.s.cs
@@ -0,0 +1,33 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x24,0x00,0x00,0x00 = addiu $zero, $zero, 0
+0x24,0x01,0x00,0x00 = addiu $at, $zero, 0
+0x24,0x02,0x00,0x00 = addiu $v0, $zero, 0
+0x24,0x03,0x00,0x00 = addiu $v1, $zero, 0
+0x24,0x04,0x00,0x00 = addiu $a0, $zero, 0
+0x24,0x05,0x00,0x00 = addiu $a1, $zero, 0
+0x24,0x06,0x00,0x00 = addiu $a2, $zero, 0
+0x24,0x07,0x00,0x00 = addiu $a3, $zero, 0
+0x24,0x08,0x00,0x00 = addiu $t0, $zero, 0
+0x24,0x09,0x00,0x00 = addiu $t1, $zero, 0
+0x24,0x0a,0x00,0x00 = addiu $t2, $zero, 0
+0x24,0x0b,0x00,0x00 = addiu $t3, $zero, 0
+0x24,0x0c,0x00,0x00 = addiu $t4, $zero, 0
+0x24,0x0d,0x00,0x00 = addiu $t5, $zero, 0
+0x24,0x0e,0x00,0x00 = addiu $t6, $zero, 0
+0x24,0x0f,0x00,0x00 = addiu $t7, $zero, 0
+0x24,0x10,0x00,0x00 = addiu $s0, $zero, 0
+0x24,0x11,0x00,0x00 = addiu $s1, $zero, 0
+0x24,0x12,0x00,0x00 = addiu $s2, $zero, 0
+0x24,0x13,0x00,0x00 = addiu $s3, $zero, 0
+0x24,0x14,0x00,0x00 = addiu $s4, $zero, 0
+0x24,0x15,0x00,0x00 = addiu $s5, $zero, 0
+0x24,0x16,0x00,0x00 = addiu $s6, $zero, 0
+0x24,0x17,0x00,0x00 = addiu $s7, $zero, 0
+0x24,0x18,0x00,0x00 = addiu $t8, $zero, 0
+0x24,0x19,0x00,0x00 = addiu $t9, $zero, 0
+0x24,0x1a,0x00,0x00 = addiu $k0, $zero, 0
+0x24,0x1b,0x00,0x00 = addiu $k1, $zero, 0
+0x24,0x1c,0x00,0x00 = addiu $gp, $zero, 0
+0x24,0x1d,0x00,0x00 = addiu $sp, $zero, 0
+0x24,0x1e,0x00,0x00 = addiu $fp, $zero, 0
+// 0x24,0x1f,0x00,0x00 = addiu $sp, $zero, 0
diff --git a/capstone/suite/MC/Mips/mips64-alu-instructions.s.cs b/capstone/suite/MC/Mips/mips64-alu-instructions.s.cs
new file mode 100644
index 000000000..eeac44e5e
--- /dev/null
+++ b/capstone/suite/MC/Mips/mips64-alu-instructions.s.cs
@@ -0,0 +1,47 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS64, None
+0x24,0x48,0xc7,0x00 = and $t1, $a2, $a3
+0x67,0x45,0xc9,0x30 = andi $t1, $a2, 17767
+0x67,0x45,0xc9,0x30 = andi $t1, $a2, 17767
+0x21,0x30,0xe6,0x70 = clo $a2, $a3
+0x20,0x30,0xe6,0x70 = clz $a2, $a3
+0x84,0x61,0x33,0x7d = ins $s3, $t1, 6, 7
+0x27,0x48,0xc7,0x00 = nor $t1, $a2, $a3
+0x25,0x18,0x65,0x00 = or $v1, $v1, $a1
+0x67,0x45,0xa4,0x34 = ori $a0, $a1, 17767
+0x67,0x45,0xc9,0x34 = ori $t1, $a2, 17767
+0xc2,0x49,0x26,0x00 = rotr $t1, $a2, 7
+0x46,0x48,0xe6,0x00 = rotrv $t1, $a2, $a3
+0xc0,0x21,0x03,0x00 = sll $a0, $v1, 7
+0x04,0x10,0xa3,0x00 = sllv $v0, $v1, $a1
+0x2a,0x18,0x65,0x00 = slt $v1, $v1, $a1
+0x67,0x00,0x63,0x28 = slti $v1, $v1, 103
+0x67,0x00,0x63,0x28 = slti $v1, $v1, 103
+0x67,0x00,0x63,0x2c = sltiu $v1, $v1, 103
+0x2b,0x18,0x65,0x00 = sltu $v1, $v1, $a1
+0xc3,0x21,0x03,0x00 = sra $a0, $v1, 7
+0x07,0x10,0xa3,0x00 = srav $v0, $v1, $a1
+0xc2,0x21,0x03,0x00 = srl $a0, $v1, 7
+0x06,0x10,0xa3,0x00 = srlv $v0, $v1, $a1
+0x26,0x18,0x65,0x00 = xor $v1, $v1, $a1
+0x67,0x45,0xc9,0x38 = xori $t1, $a2, 17767
+0x67,0x45,0xc9,0x38 = xori $t1, $a2, 17767
+0xa0,0x30,0x07,0x7c = wsbh $a2, $a3
+0x27,0x38,0x00,0x01 = not $a3, $t0
+0x2c,0x48,0xc7,0x00 = dadd $t1, $a2, $a3
+0x67,0x45,0xc9,0x60 = daddi $t1, $a2, 17767
+0x67,0xc5,0xc9,0x64 = daddiu $t1, $a2, -15001
+0x67,0x45,0xc9,0x60 = daddi $t1, $a2, 17767
+0x67,0x45,0x29,0x61 = daddi $t1, $t1, 17767
+0x67,0xc5,0xc9,0x64 = daddiu $t1, $a2, -15001
+0x67,0xc5,0x29,0x65 = daddiu $t1, $t1, -15001
+0x2d,0x48,0xc7,0x00 = daddu $t1, $a2, $a3
+0x3a,0x4d,0x26,0x00 = drotr $t1, $a2, 20
+// 0x3e,0x4d,0x26,0x00 = drotr32 $t1, $a2, 52
+0x00,0x00,0xc7,0x70 = madd $a2, $a3
+0x01,0x00,0xc7,0x70 = maddu $a2, $a3
+0x04,0x00,0xc7,0x70 = msub $a2, $a3
+0x05,0x00,0xc7,0x70 = msubu $a2, $a3
+0x18,0x00,0x65,0x00 = mult $v1, $a1
+0x19,0x00,0x65,0x00 = multu $v1, $a1
+0x2f,0x20,0x65,0x00 = dsubu $a0, $v1, $a1
+0x2d,0x38,0x00,0x01 = move $a3, $t0
diff --git a/capstone/suite/MC/Mips/mips64-instructions.s.cs b/capstone/suite/MC/Mips/mips64-instructions.s.cs
new file mode 100644
index 000000000..be7cc23a1
--- /dev/null
+++ b/capstone/suite/MC/Mips/mips64-instructions.s.cs
@@ -0,0 +1,3 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS64, None
+0x81,0x00,0x42,0x4d = ldxc1 $f2, $v0($t2)
+0x09,0x40,0x24,0x4f = sdxc1 $f8, $a0($t9)
diff --git a/capstone/suite/MC/Mips/mips64-register-names.s.cs b/capstone/suite/MC/Mips/mips64-register-names.s.cs
new file mode 100644
index 000000000..24f59f8b4
--- /dev/null
+++ b/capstone/suite/MC/Mips/mips64-register-names.s.cs
@@ -0,0 +1,33 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS64+CS_MODE_BIG_ENDIAN, None
+0x64,0x00,0x00,0x00 = daddiu $zero, $zero, 0
+0x64,0x01,0x00,0x00 = daddiu $at, $zero, 0
+0x64,0x02,0x00,0x00 = daddiu $v0, $zero, 0
+0x64,0x03,0x00,0x00 = daddiu $v1, $zero, 0
+0x64,0x04,0x00,0x00 = daddiu $a0, $zero, 0
+0x64,0x05,0x00,0x00 = daddiu $a1, $zero, 0
+0x64,0x06,0x00,0x00 = daddiu $a2, $zero, 0
+// 0x64,0x07,0x00,0x00 = daddiu $a2, $zero, 0
+// 0x64,0x08,0x00,0x00 = daddiu $a4, $zero, 0
+// 0x64,0x09,0x00,0x00 = daddiu $a5, $zero, 0
+// 0x64,0x0a,0x00,0x00 = daddiu $a6, $zero, 0
+// 0x64,0x0b,0x00,0x00 = daddiu $a7, $zero, 0
+0x64,0x0c,0x00,0x00 = daddiu $t4, $zero, 0
+0x64,0x0d,0x00,0x00 = daddiu $t5, $zero, 0
+0x64,0x0e,0x00,0x00 = daddiu $t6, $zero, 0
+0x64,0x0f,0x00,0x00 = daddiu $t7, $zero, 0
+0x64,0x10,0x00,0x00 = daddiu $s0, $zero, 0
+0x64,0x11,0x00,0x00 = daddiu $s1, $zero, 0
+0x64,0x12,0x00,0x00 = daddiu $s2, $zero, 0
+0x64,0x13,0x00,0x00 = daddiu $s3, $zero, 0
+0x64,0x14,0x00,0x00 = daddiu $s4, $zero, 0
+0x64,0x15,0x00,0x00 = daddiu $s5, $zero, 0
+0x64,0x16,0x00,0x00 = daddiu $s6, $zero, 0
+0x64,0x17,0x00,0x00 = daddiu $s7, $zero, 0
+0x64,0x18,0x00,0x00 = daddiu $t8, $zero, 0
+0x64,0x19,0x00,0x00 = daddiu $t9, $zero, 0
+// 0x64,0x1a,0x00,0x00 = daddiu $kt0, $zero, 0
+// 0x64,0x1b,0x00,0x00 = daddiu $kt1, $zero, 0
+0x64,0x1c,0x00,0x00 = daddiu $gp, $zero, 0
+0x64,0x1d,0x00,0x00 = daddiu $sp, $zero, 0
+// 0x64,0x1e,0x00,0x00 = daddiu $s8, $zero, 0
+0x64,0x1f,0x00,0x00 = daddiu $ra, $zero, 0
diff --git a/capstone/suite/MC/Mips/mips_directives.s.cs b/capstone/suite/MC/Mips/mips_directives.s.cs
new file mode 100644
index 000000000..07d10c971
--- /dev/null
+++ b/capstone/suite/MC/Mips/mips_directives.s.cs
@@ -0,0 +1,12 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x10,0x00,0x01,0x4d = b 1336
+0x08,0x00,0x01,0x4c = j 1328
+0x0c,0x00,0x01,0x4c = jal 1328
+0x10,0x00,0x01,0x4d = b 1336
+0x00,0x00,0x00,0x00 = nop
+0x08,0x00,0x01,0x4c = j 1328
+0x00,0x00,0x00,0x00 = nop
+0x0c,0x00,0x01,0x4c = jal 1328
+0x00,0x00,0x00,0x00 = nop
+0x46,0x00,0x39,0x85 = abs.s $f6, $f7
+0x01,0xef,0x18,0x24 = and $v1, $t7, $t7
diff --git a/capstone/suite/MC/Mips/nabi-regs.s.cs b/capstone/suite/MC/Mips/nabi-regs.s.cs
new file mode 100644
index 000000000..0d14e2935
--- /dev/null
+++ b/capstone/suite/MC/Mips/nabi-regs.s.cs
@@ -0,0 +1,12 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS64+CS_MODE_BIG_ENDIAN, None
+0x02,0x04,0x80,0x20 = add $s0, $s0, $a0
+0x02,0x06,0x80,0x20 = add $s0, $s0, $a2
+0x02,0x07,0x80,0x20 = add $s0, $s0, $a3
+0x02,0x08,0x80,0x20 = add $s0, $s0, $t0
+0x02,0x09,0x80,0x20 = add $s0, $s0, $t1
+0x02,0x0a,0x80,0x20 = add $s0, $s0, $t2
+0x02,0x0b,0x80,0x20 = add $s0, $s0, $t3
+0x02,0x0c,0x80,0x20 = add $s0, $s0, $t4
+0x02,0x0d,0x80,0x20 = add $s0, $s0, $t5
+0x02,0x0e,0x80,0x20 = add $s0, $s0, $t6
+0x02,0x0f,0x80,0x20 = add $s0, $s0, $t7
diff --git a/capstone/suite/MC/Mips/set-at-directive.s.cs b/capstone/suite/MC/Mips/set-at-directive.s.cs
new file mode 100644
index 000000000..f01a43a78
--- /dev/null
+++ b/capstone/suite/MC/Mips/set-at-directive.s.cs
@@ -0,0 +1,6 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32, None
+0x08,0x00,0x60,0x00 = jr $v1
+0x08,0x00,0x80,0x03 = jr $gp
+0x08,0x00,0xc0,0x03 = jr $fp
+0x08,0x00,0xa0,0x03 = jr $sp
+0x08,0x00,0xe0,0x03 = jr $ra
diff --git a/capstone/suite/MC/Mips/test_2r.s.cs b/capstone/suite/MC/Mips/test_2r.s.cs
new file mode 100644
index 000000000..94b37bc8e
--- /dev/null
+++ b/capstone/suite/MC/Mips/test_2r.s.cs
@@ -0,0 +1,16 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x7b,0x00,0x4f,0x9e = fill.b $w30, $t1
+0x7b,0x01,0xbf,0xde = fill.h $w31, $s7
+0x7b,0x02,0xc4,0x1e = fill.w $w16, $t8
+0x7b,0x08,0x05,0x5e = nloc.b $w21, $w0
+0x7b,0x09,0xfc,0x9e = nloc.h $w18, $w31
+0x7b,0x0a,0xb8,0x9e = nloc.w $w2, $w23
+0x7b,0x0b,0x51,0x1e = nloc.d $w4, $w10
+0x7b,0x0c,0x17,0xde = nlzc.b $w31, $w2
+0x7b,0x0d,0xb6,0xde = nlzc.h $w27, $w22
+0x7b,0x0e,0xea,0x9e = nlzc.w $w10, $w29
+0x7b,0x0f,0x4e,0x5e = nlzc.d $w25, $w9
+0x7b,0x04,0x95,0x1e = pcnt.b $w20, $w18
+0x7b,0x05,0x40,0x1e = pcnt.h $w0, $w8
+0x7b,0x06,0x4d,0xde = pcnt.w $w23, $w9
+0x7b,0x07,0xc5,0x5e = pcnt.d $w21, $w24
diff --git a/capstone/suite/MC/Mips/test_2rf.s.cs b/capstone/suite/MC/Mips/test_2rf.s.cs
new file mode 100644
index 000000000..2e9560638
--- /dev/null
+++ b/capstone/suite/MC/Mips/test_2rf.s.cs
@@ -0,0 +1,33 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x7b,0x20,0x66,0x9e = fclass.w $w26, $w12
+0x7b,0x21,0x8e,0x1e = fclass.d $w24, $w17
+0x7b,0x30,0x02,0x1e = fexupl.w $w8, $w0
+0x7b,0x31,0xec,0x5e = fexupl.d $w17, $w29
+0x7b,0x32,0x23,0x5e = fexupr.w $w13, $w4
+0x7b,0x33,0x11,0x5e = fexupr.d $w5, $w2
+0x7b,0x3c,0xed,0x1e = ffint_s.w $w20, $w29
+0x7b,0x3d,0x7b,0x1e = ffint_s.d $w12, $w15
+0x7b,0x3e,0xd9,0xde = ffint_u.w $w7, $w27
+0x7b,0x3f,0x84,0xde = ffint_u.d $w19, $w16
+0x7b,0x34,0x6f,0xde = ffql.w $w31, $w13
+0x7b,0x35,0x6b,0x1e = ffql.d $w12, $w13
+0x7b,0x36,0xf6,0xde = ffqr.w $w27, $w30
+0x7b,0x37,0x7f,0x9e = ffqr.d $w30, $w15
+0x7b,0x2e,0xfe,0x5e = flog2.w $w25, $w31
+0x7b,0x2f,0x54,0x9e = flog2.d $w18, $w10
+0x7b,0x2c,0x79,0xde = frint.w $w7, $w15
+0x7b,0x2d,0xb5,0x5e = frint.d $w21, $w22
+0x7b,0x2a,0x04,0xde = frcp.w $w19, $w0
+0x7b,0x2b,0x71,0x1e = frcp.d $w4, $w14
+0x7b,0x28,0x8b,0x1e = frsqrt.w $w12, $w17
+0x7b,0x29,0x5d,0xde = frsqrt.d $w23, $w11
+0x7b,0x26,0x58,0x1e = fsqrt.w $w0, $w11
+0x7b,0x27,0x63,0xde = fsqrt.d $w15, $w12
+0x7b,0x38,0x2f,0x9e = ftint_s.w $w30, $w5
+0x7b,0x39,0xb9,0x5e = ftint_s.d $w5, $w23
+0x7b,0x3a,0x75,0x1e = ftint_u.w $w20, $w14
+0x7b,0x3b,0xad,0xde = ftint_u.d $w23, $w21
+0x7b,0x22,0x8f,0x5e = ftrunc_s.w $w29, $w17
+0x7b,0x23,0xdb,0x1e = ftrunc_s.d $w12, $w27
+0x7b,0x24,0x7c,0x5e = ftrunc_u.w $w17, $w15
+0x7b,0x25,0xd9,0x5e = ftrunc_u.d $w5, $w27
diff --git a/capstone/suite/MC/Mips/test_3r.s.cs b/capstone/suite/MC/Mips/test_3r.s.cs
new file mode 100644
index 000000000..99f5de917
--- /dev/null
+++ b/capstone/suite/MC/Mips/test_3r.s.cs
@@ -0,0 +1,243 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x78,0x04,0x4e,0x90 = add_a.b $w26, $w9, $w4
+0x78,0x3f,0xdd,0xd0 = add_a.h $w23, $w27, $w31
+0x78,0x56,0x32,0xd0 = add_a.w $w11, $w6, $w22
+0x78,0x60,0x51,0x90 = add_a.d $w6, $w10, $w0
+0x78,0x93,0xc4,0xd0 = adds_a.b $w19, $w24, $w19
+0x78,0xa4,0x36,0x50 = adds_a.h $w25, $w6, $w4
+0x78,0xdb,0x8e,0x50 = adds_a.w $w25, $w17, $w27
+0x78,0xfa,0x93,0xd0 = adds_a.d $w15, $w18, $w26
+0x79,0x13,0x5f,0x50 = adds_s.b $w29, $w11, $w19
+0x79,0x3a,0xb9,0x50 = adds_s.h $w5, $w23, $w26
+0x79,0x4d,0x74,0x10 = adds_s.w $w16, $w14, $w13
+0x79,0x7c,0x70,0x90 = adds_s.d $w2, $w14, $w28
+0x79,0x8e,0x88,0xd0 = adds_u.b $w3, $w17, $w14
+0x79,0xa4,0xf2,0x90 = adds_u.h $w10, $w30, $w4
+0x79,0xd4,0x93,0xd0 = adds_u.w $w15, $w18, $w20
+0x79,0xe9,0x57,0x90 = adds_u.d $w30, $w10, $w9
+0x78,0x15,0xa6,0x0e = addv.b $w24, $w20, $w21
+0x78,0x3b,0x69,0x0e = addv.h $w4, $w13, $w27
+0x78,0x4e,0x5c,0xce = addv.w $w19, $w11, $w14
+0x78,0x7f,0xa8,0x8e = addv.d $w2, $w21, $w31
+0x7a,0x03,0x85,0xd1 = asub_s.b $w23, $w16, $w3
+0x7a,0x39,0x8d,0x91 = asub_s.h $w22, $w17, $w25
+0x7a,0x49,0x0e,0x11 = asub_s.w $w24, $w1, $w9
+0x7a,0x6c,0x63,0x51 = asub_s.d $w13, $w12, $w12
+0x7a,0x8b,0xea,0x91 = asub_u.b $w10, $w29, $w11
+0x7a,0xaf,0x4c,0x91 = asub_u.h $w18, $w9, $w15
+0x7a,0xdf,0x9a,0x91 = asub_u.w $w10, $w19, $w31
+0x7a,0xe0,0x54,0x51 = asub_u.d $w17, $w10, $w0
+0x7a,0x01,0x28,0x90 = ave_s.b $w2, $w5, $w1
+0x7a,0x29,0x9c,0x10 = ave_s.h $w16, $w19, $w9
+0x7a,0x45,0xfc,0x50 = ave_s.w $w17, $w31, $w5
+0x7a,0x6a,0xce,0xd0 = ave_s.d $w27, $w25, $w10
+0x7a,0x89,0x9c,0x10 = ave_u.b $w16, $w19, $w9
+0x7a,0xab,0xe7,0x10 = ave_u.h $w28, $w28, $w11
+0x7a,0xcb,0x62,0xd0 = ave_u.w $w11, $w12, $w11
+0x7a,0xfc,0x9f,0x90 = ave_u.d $w30, $w19, $w28
+0x7b,0x02,0x86,0x90 = aver_s.b $w26, $w16, $w2
+0x7b,0x3b,0xdf,0xd0 = aver_s.h $w31, $w27, $w27
+0x7b,0x59,0x97,0x10 = aver_s.w $w28, $w18, $w25
+0x7b,0x7b,0xaf,0x50 = aver_s.d $w29, $w21, $w27
+0x7b,0x83,0xd7,0x50 = aver_u.b $w29, $w26, $w3
+0x7b,0xa9,0x94,0x90 = aver_u.h $w18, $w18, $w9
+0x7b,0xdd,0xcc,0x50 = aver_u.w $w17, $w25, $w29
+0x7b,0xf3,0xb5,0x90 = aver_u.d $w22, $w22, $w19
+0x79,0x9d,0x78,0x8d = bclr.b $w2, $w15, $w29
+0x79,0xbc,0xac,0x0d = bclr.h $w16, $w21, $w28
+0x79,0xc9,0x14,0xcd = bclr.w $w19, $w2, $w9
+0x79,0xe4,0xfe,0xcd = bclr.d $w27, $w31, $w4
+0x7b,0x18,0x81,0x4d = binsl.b $w5, $w16, $w24
+0x7b,0x2a,0x2f,0x8d = binsl.h $w30, $w5, $w10
+0x7b,0x4d,0x7b,0x8d = binsl.w $w14, $w15, $w13
+0x7b,0x6c,0xa5,0xcd = binsl.d $w23, $w20, $w12
+0x7b,0x82,0x5d,0x8d = binsr.b $w22, $w11, $w2
+0x7b,0xa6,0xd0,0x0d = binsr.h $w0, $w26, $w6
+0x7b,0xdc,0x1e,0x8d = binsr.w $w26, $w3, $w28
+0x7b,0xf5,0x00,0x0d = binsr.d $w0, $w0, $w21
+0x7a,0x98,0x58,0x0d = bneg.b $w0, $w11, $w24
+0x7a,0xa4,0x87,0x0d = bneg.h $w28, $w16, $w4
+0x7a,0xd3,0xd0,0xcd = bneg.w $w3, $w26, $w19
+0x7a,0xef,0xeb,0x4d = bneg.d $w13, $w29, $w15
+0x7a,0x1f,0x2f,0xcd = bset.b $w31, $w5, $w31
+0x7a,0x26,0x63,0x8d = bset.h $w14, $w12, $w6
+0x7a,0x4c,0x4f,0xcd = bset.w $w31, $w9, $w12
+0x7a,0x65,0xb1,0x4d = bset.d $w5, $w22, $w5
+0x78,0x12,0xff,0xcf = ceq.b $w31, $w31, $w18
+0x78,0x29,0xda,0x8f = ceq.h $w10, $w27, $w9
+0x78,0x4e,0x2a,0x4f = ceq.w $w9, $w5, $w14
+0x78,0x60,0x89,0x4f = ceq.d $w5, $w17, $w0
+0x7a,0x09,0x25,0xcf = cle_s.b $w23, $w4, $w9
+0x7a,0x33,0xdd,0x8f = cle_s.h $w22, $w27, $w19
+0x7a,0x4a,0xd7,0x8f = cle_s.w $w30, $w26, $w10
+0x7a,0x6a,0x2c,0x8f = cle_s.d $w18, $w5, $w10
+0x7a,0x80,0xc8,0x4f = cle_u.b $w1, $w25, $w0
+0x7a,0xbd,0x01,0xcf = cle_u.h $w7, $w0, $w29
+0x7a,0xc1,0x96,0x4f = cle_u.w $w25, $w18, $w1
+0x7a,0xfe,0x01,0x8f = cle_u.d $w6, $w0, $w30
+0x79,0x15,0x16,0x4f = clt_s.b $w25, $w2, $w21
+0x79,0x29,0x98,0x8f = clt_s.h $w2, $w19, $w9
+0x79,0x50,0x45,0xcf = clt_s.w $w23, $w8, $w16
+0x79,0x6c,0xf1,0xcf = clt_s.d $w7, $w30, $w12
+0x79,0x8d,0xf8,0x8f = clt_u.b $w2, $w31, $w13
+0x79,0xb7,0xfc,0x0f = clt_u.h $w16, $w31, $w23
+0x79,0xc9,0xc0,0xcf = clt_u.w $w3, $w24, $w9
+0x79,0xe1,0x01,0xcf = clt_u.d $w7, $w0, $w1
+0x7a,0x12,0x1f,0x52 = div_s.b $w29, $w3, $w18
+0x7a,0x2d,0x84,0x52 = div_s.h $w17, $w16, $w13
+0x7a,0x5e,0xc9,0x12 = div_s.w $w4, $w25, $w30
+0x7a,0x74,0x4f,0xd2 = div_s.d $w31, $w9, $w20
+0x7a,0x8a,0xe9,0x92 = div_u.b $w6, $w29, $w10
+0x7a,0xae,0xae,0x12 = div_u.h $w24, $w21, $w14
+0x7a,0xd9,0x77,0x52 = div_u.w $w29, $w14, $w25
+0x7a,0xf5,0x0f,0xd2 = div_u.d $w31, $w1, $w21
+0x78,0x39,0xb5,0xd3 = dotp_s.h $w23, $w22, $w25
+0x78,0x45,0x75,0x13 = dotp_s.w $w20, $w14, $w5
+0x78,0x76,0x14,0x53 = dotp_s.d $w17, $w2, $w22
+0x78,0xa6,0x13,0x53 = dotp_u.h $w13, $w2, $w6
+0x78,0xd5,0xb3,0xd3 = dotp_u.w $w15, $w22, $w21
+0x78,0xfa,0x81,0x13 = dotp_u.d $w4, $w16, $w26
+0x79,0x36,0xe0,0x53 = dpadd_s.h $w1, $w28, $w22
+0x79,0x4c,0x0a,0x93 = dpadd_s.w $w10, $w1, $w12
+0x79,0x7b,0xa8,0xd3 = dpadd_s.d $w3, $w21, $w27
+0x79,0xb4,0x2c,0x53 = dpadd_u.h $w17, $w5, $w20
+0x79,0xd0,0x46,0x13 = dpadd_u.w $w24, $w8, $w16
+0x79,0xf0,0xeb,0xd3 = dpadd_u.d $w15, $w29, $w16
+0x7a,0x2c,0x59,0x13 = dpsub_s.h $w4, $w11, $w12
+0x7a,0x46,0x39,0x13 = dpsub_s.w $w4, $w7, $w6
+0x7a,0x7c,0x67,0xd3 = dpsub_s.d $w31, $w12, $w28
+0x7a,0xb1,0xc9,0x13 = dpsub_u.h $w4, $w25, $w17
+0x7a,0xd0,0xcc,0xd3 = dpsub_u.w $w19, $w25, $w16
+0x7a,0xfa,0x51,0xd3 = dpsub_u.d $w7, $w10, $w26
+0x7a,0x22,0xc7,0x15 = hadd_s.h $w28, $w24, $w2
+0x7a,0x4b,0x8e,0x15 = hadd_s.w $w24, $w17, $w11
+0x7a,0x74,0x7c,0x55 = hadd_s.d $w17, $w15, $w20
+0x7a,0xb1,0xeb,0x15 = hadd_u.h $w12, $w29, $w17
+0x7a,0xc6,0x2a,0x55 = hadd_u.w $w9, $w5, $w6
+0x7a,0xe6,0xa0,0x55 = hadd_u.d $w1, $w20, $w6
+0x7b,0x3d,0x74,0x15 = hsub_s.h $w16, $w14, $w29
+0x7b,0x4b,0x6a,0x55 = hsub_s.w $w9, $w13, $w11
+0x7b,0x6e,0x97,0x95 = hsub_s.d $w30, $w18, $w14
+0x7b,0xae,0x61,0xd5 = hsub_u.h $w7, $w12, $w14
+0x7b,0xc5,0x2d,0x55 = hsub_u.w $w21, $w5, $w5
+0x7b,0xff,0x62,0xd5 = hsub_u.d $w11, $w12, $w31
+0x7b,0x1e,0x84,0x94 = ilvev.b $w18, $w16, $w30
+0x7b,0x2d,0x03,0x94 = ilvev.h $w14, $w0, $w13
+0x7b,0x56,0xcb,0x14 = ilvev.w $w12, $w25, $w22
+0x7b,0x63,0xdf,0x94 = ilvev.d $w30, $w27, $w3
+0x7a,0x15,0x1f,0x54 = ilvl.b $w29, $w3, $w21
+0x7a,0x31,0x56,0xd4 = ilvl.h $w27, $w10, $w17
+0x7a,0x40,0x09,0x94 = ilvl.w $w6, $w1, $w0
+0x7a,0x78,0x80,0xd4 = ilvl.d $w3, $w16, $w24
+0x7b,0x94,0x2a,0xd4 = ilvod.b $w11, $w5, $w20
+0x7b,0xbf,0x6c,0x94 = ilvod.h $w18, $w13, $w31
+0x7b,0xd8,0x87,0x54 = ilvod.w $w29, $w16, $w24
+0x7b,0xfd,0x65,0x94 = ilvod.d $w22, $w12, $w29
+0x7a,0x86,0xf1,0x14 = ilvr.b $w4, $w30, $w6
+0x7a,0xbd,0x9f,0x14 = ilvr.h $w28, $w19, $w29
+0x7a,0xd5,0xa4,0x94 = ilvr.w $w18, $w20, $w21
+0x7a,0xec,0xf5,0xd4 = ilvr.d $w23, $w30, $w12
+0x78,0x9d,0xfc,0x52 = maddv.b $w17, $w31, $w29
+0x78,0xa9,0xc1,0xd2 = maddv.h $w7, $w24, $w9
+0x78,0xd4,0xb5,0x92 = maddv.w $w22, $w22, $w20
+0x78,0xf4,0xd7,0x92 = maddv.d $w30, $w26, $w20
+0x7b,0x17,0x5d,0xce = max_a.b $w23, $w11, $w23
+0x7b,0x3e,0x2d,0x0e = max_a.h $w20, $w5, $w30
+0x7b,0x5e,0x91,0xce = max_a.w $w7, $w18, $w30
+0x7b,0x7f,0x42,0x0e = max_a.d $w8, $w8, $w31
+0x79,0x13,0x0a,0x8e = max_s.b $w10, $w1, $w19
+0x79,0x31,0xeb,0xce = max_s.h $w15, $w29, $w17
+0x79,0x4e,0xeb,0xce = max_s.w $w15, $w29, $w14
+0x79,0x63,0xc6,0x4e = max_s.d $w25, $w24, $w3
+0x79,0x85,0xc3,0x0e = max_u.b $w12, $w24, $w5
+0x79,0xa7,0x31,0x4e = max_u.h $w5, $w6, $w7
+0x79,0xc7,0x24,0x0e = max_u.w $w16, $w4, $w7
+0x79,0xf8,0x66,0x8e = max_u.d $w26, $w12, $w24
+0x7b,0x81,0xd1,0x0e = min_a.b $w4, $w26, $w1
+0x7b,0xbf,0x6b,0x0e = min_a.h $w12, $w13, $w31
+0x7b,0xc0,0xa7,0x0e = min_a.w $w28, $w20, $w0
+0x7b,0xf3,0xa3,0x0e = min_a.d $w12, $w20, $w19
+0x7a,0x0e,0x1c,0xce = min_s.b $w19, $w3, $w14
+0x7a,0x28,0xae,0xce = min_s.h $w27, $w21, $w8
+0x7a,0x5e,0x70,0x0e = min_s.w $w0, $w14, $w30
+0x7a,0x75,0x41,0x8e = min_s.d $w6, $w8, $w21
+0x7a,0x88,0xd5,0x8e = min_u.b $w22, $w26, $w8
+0x7a,0xac,0xd9,0xce = min_u.h $w7, $w27, $w12
+0x7a,0xce,0xa2,0x0e = min_u.w $w8, $w20, $w14
+0x7a,0xef,0x76,0x8e = min_u.d $w26, $w14, $w15
+0x7b,0x1a,0x0c,0x92 = mod_s.b $w18, $w1, $w26
+0x7b,0x3c,0xf7,0xd2 = mod_s.h $w31, $w30, $w28
+0x7b,0x4d,0x30,0x92 = mod_s.w $w2, $w6, $w13
+0x7b,0x76,0xdd,0x52 = mod_s.d $w21, $w27, $w22
+0x7b,0x8d,0x3c,0x12 = mod_u.b $w16, $w7, $w13
+0x7b,0xa7,0x46,0x12 = mod_u.h $w24, $w8, $w7
+0x7b,0xd1,0x17,0x92 = mod_u.w $w30, $w2, $w17
+0x7b,0xf9,0x17,0xd2 = mod_u.d $w31, $w2, $w25
+0x79,0x0c,0x2b,0x92 = msubv.b $w14, $w5, $w12
+0x79,0x3e,0x39,0x92 = msubv.h $w6, $w7, $w30
+0x79,0x55,0x13,0x52 = msubv.w $w13, $w2, $w21
+0x79,0x7b,0x74,0x12 = msubv.d $w16, $w14, $w27
+0x78,0x0d,0x1d,0x12 = mulv.b $w20, $w3, $w13
+0x78,0x2e,0xd6,0xd2 = mulv.h $w27, $w26, $w14
+0x78,0x43,0xea,0x92 = mulv.w $w10, $w29, $w3
+0x78,0x7d,0x99,0xd2 = mulv.d $w7, $w19, $w29
+0x79,0x07,0xd9,0x54 = pckev.b $w5, $w27, $w7
+0x79,0x3b,0x20,0x54 = pckev.h $w1, $w4, $w27
+0x79,0x40,0xa7,0x94 = pckev.w $w30, $w20, $w0
+0x79,0x6f,0x09,0x94 = pckev.d $w6, $w1, $w15
+0x79,0x9e,0xe4,0x94 = pckod.b $w18, $w28, $w30
+0x79,0xa8,0x2e,0x94 = pckod.h $w26, $w5, $w8
+0x79,0xc2,0x22,0x54 = pckod.w $w9, $w4, $w2
+0x79,0xf4,0xb7,0x94 = pckod.d $w30, $w22, $w20
+0x78,0x0c,0xb9,0x54 = sld.b $w5, $w23[$t4]
+0x78,0x23,0xb8,0x54 = sld.h $w1, $w23[$v1]
+0x78,0x49,0x45,0x14 = sld.w $w20, $w8[$t1]
+0x78,0x7e,0xb9,0xd4 = sld.d $w7, $w23[$fp]
+0x78,0x11,0x00,0xcd = sll.b $w3, $w0, $w17
+0x78,0x23,0xdc,0x4d = sll.h $w17, $w27, $w3
+0x78,0x46,0x3c,0x0d = sll.w $w16, $w7, $w6
+0x78,0x7a,0x02,0x4d = sll.d $w9, $w0, $w26
+0x78,0x81,0x0f,0x14 = splat.b $w28, $w1[$at]
+0x78,0xab,0x58,0x94 = splat.h $w2, $w11[$t3]
+0x78,0xcb,0x05,0x94 = splat.w $w22, $w0[$t3]
+0x78,0xe2,0x00,0x14 = splat.d $w0, $w0[$v0]
+0x78,0x91,0x27,0x0d = sra.b $w28, $w4, $w17
+0x78,0xa3,0x4b,0x4d = sra.h $w13, $w9, $w3
+0x78,0xd3,0xae,0xcd = sra.w $w27, $w21, $w19
+0x78,0xf7,0x47,0x8d = sra.d $w30, $w8, $w23
+0x78,0x92,0x94,0xd5 = srar.b $w19, $w18, $w18
+0x78,0xa8,0xb9,0xd5 = srar.h $w7, $w23, $w8
+0x78,0xc2,0x60,0x55 = srar.w $w1, $w12, $w2
+0x78,0xee,0x3d,0x55 = srar.d $w21, $w7, $w14
+0x79,0x13,0x1b,0x0d = srl.b $w12, $w3, $w19
+0x79,0x34,0xfd,0xcd = srl.h $w23, $w31, $w20
+0x79,0x4b,0xdc,0x8d = srl.w $w18, $w27, $w11
+0x79,0x7a,0x60,0xcd = srl.d $w3, $w12, $w26
+0x79,0x0b,0xab,0xd5 = srlr.b $w15, $w21, $w11
+0x79,0x33,0x6d,0x55 = srlr.h $w21, $w13, $w19
+0x79,0x43,0xf1,0x95 = srlr.w $w6, $w30, $w3
+0x79,0x6e,0x10,0x55 = srlr.d $w1, $w2, $w14
+0x78,0x01,0x7e,0x51 = subs_s.b $w25, $w15, $w1
+0x78,0x36,0xcf,0x11 = subs_s.h $w28, $w25, $w22
+0x78,0x55,0x62,0x91 = subs_s.w $w10, $w12, $w21
+0x78,0x72,0xa1,0x11 = subs_s.d $w4, $w20, $w18
+0x78,0x99,0x35,0x51 = subs_u.b $w21, $w6, $w25
+0x78,0xa7,0x50,0xd1 = subs_u.h $w3, $w10, $w7
+0x78,0xca,0x7a,0x51 = subs_u.w $w9, $w15, $w10
+0x78,0xea,0x99,0xd1 = subs_u.d $w7, $w19, $w10
+0x79,0x0c,0x39,0x91 = subsus_u.b $w6, $w7, $w12
+0x79,0x33,0xe9,0x91 = subsus_u.h $w6, $w29, $w19
+0x79,0x47,0x79,0xd1 = subsus_u.w $w7, $w15, $w7
+0x79,0x6f,0x1a,0x51 = subsus_u.d $w9, $w3, $w15
+0x79,0x9f,0x1d,0x91 = subsuu_s.b $w22, $w3, $w31
+0x79,0xb6,0xbc,0xd1 = subsuu_s.h $w19, $w23, $w22
+0x79,0xcd,0x52,0x51 = subsuu_s.w $w9, $w10, $w13
+0x79,0xe0,0x31,0x51 = subsuu_s.d $w5, $w6, $w0
+0x78,0x93,0x69,0x8e = subv.b $w6, $w13, $w19
+0x78,0xac,0xc9,0x0e = subv.h $w4, $w25, $w12
+0x78,0xcb,0xde,0xce = subv.w $w27, $w27, $w11
+0x78,0xea,0xc2,0x4e = subv.d $w9, $w24, $w10
+0x78,0x05,0x80,0xd5 = vshf.b $w3, $w16, $w5
+0x78,0x28,0x9d,0x15 = vshf.h $w20, $w19, $w8
+0x78,0x59,0xf4,0x15 = vshf.w $w16, $w30, $w25
+0x78,0x6f,0x5c,0xd5 = vshf.d $w19, $w11, $w15
diff --git a/capstone/suite/MC/Mips/test_3rf.s.cs b/capstone/suite/MC/Mips/test_3rf.s.cs
new file mode 100644
index 000000000..491162d48
--- /dev/null
+++ b/capstone/suite/MC/Mips/test_3rf.s.cs
@@ -0,0 +1,83 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x78,0x1c,0x9f,0x1b = fadd.w $w28, $w19, $w28
+0x78,0x3d,0x13,0x5b = fadd.d $w13, $w2, $w29
+0x78,0x19,0x5b,0x9a = fcaf.w $w14, $w11, $w25
+0x78,0x33,0x08,0x5a = fcaf.d $w1, $w1, $w19
+0x78,0x90,0xb8,0x5a = fceq.w $w1, $w23, $w16
+0x78,0xb0,0x40,0x1a = fceq.d $w0, $w8, $w16
+0x79,0x98,0x4c,0x1a = fcle.w $w16, $w9, $w24
+0x79,0xa1,0x76,0xda = fcle.d $w27, $w14, $w1
+0x79,0x08,0x47,0x1a = fclt.w $w28, $w8, $w8
+0x79,0x2b,0xcf,0x9a = fclt.d $w30, $w25, $w11
+0x78,0xd7,0x90,0x9c = fcne.w $w2, $w18, $w23
+0x78,0xef,0xa3,0x9c = fcne.d $w14, $w20, $w15
+0x78,0x59,0x92,0x9c = fcor.w $w10, $w18, $w25
+0x78,0x6b,0xcc,0x5c = fcor.d $w17, $w25, $w11
+0x78,0xd5,0x13,0x9a = fcueq.w $w14, $w2, $w21
+0x78,0xe7,0x1f,0x5a = fcueq.d $w29, $w3, $w7
+0x79,0xc3,0x2c,0x5a = fcule.w $w17, $w5, $w3
+0x79,0xfe,0x0f,0xda = fcule.d $w31, $w1, $w30
+0x79,0x49,0xc9,0x9a = fcult.w $w6, $w25, $w9
+0x79,0x71,0x46,0xda = fcult.d $w27, $w8, $w17
+0x78,0x48,0xa1,0x1a = fcun.w $w4, $w20, $w8
+0x78,0x63,0x5f,0x5a = fcun.d $w29, $w11, $w3
+0x78,0x93,0x93,0x5c = fcune.w $w13, $w18, $w19
+0x78,0xb5,0xd4,0x1c = fcune.d $w16, $w26, $w21
+0x78,0xc2,0xc3,0x5b = fdiv.w $w13, $w24, $w2
+0x78,0xf9,0x24,0xdb = fdiv.d $w19, $w4, $w25
+0x7a,0x10,0x02,0x1b = fexdo.h $w8, $w0, $w16
+0x7a,0x3b,0x68,0x1b = fexdo.w $w0, $w13, $w27
+0x79,0xc3,0x04,0x5b = fexp2.w $w17, $w0, $w3
+0x79,0xea,0x05,0x9b = fexp2.d $w22, $w0, $w10
+0x79,0x17,0x37,0x5b = fmadd.w $w29, $w6, $w23
+0x79,0x35,0xe2,0xdb = fmadd.d $w11, $w28, $w21
+0x7b,0x8d,0xb8,0x1b = fmax.w $w0, $w23, $w13
+0x7b,0xa8,0x96,0x9b = fmax.d $w26, $w18, $w8
+0x7b,0xca,0x82,0x9b = fmax_a.w $w10, $w16, $w10
+0x7b,0xf6,0x4f,0x9b = fmax_a.d $w30, $w9, $w22
+0x7b,0x1e,0x0e,0x1b = fmin.w $w24, $w1, $w30
+0x7b,0x2a,0xde,0xdb = fmin.d $w27, $w27, $w10
+0x7b,0x54,0xea,0x9b = fmin_a.w $w10, $w29, $w20
+0x7b,0x78,0xf3,0x5b = fmin_a.d $w13, $w30, $w24
+0x79,0x40,0xcc,0x5b = fmsub.w $w17, $w25, $w0
+0x79,0x70,0x92,0x1b = fmsub.d $w8, $w18, $w16
+0x78,0x8f,0x78,0xdb = fmul.w $w3, $w15, $w15
+0x78,0xaa,0xf2,0x5b = fmul.d $w9, $w30, $w10
+0x7a,0x0a,0x2e,0x5a = fsaf.w $w25, $w5, $w10
+0x7a,0x3d,0x1e,0x5a = fsaf.d $w25, $w3, $w29
+0x7a,0x8d,0x8a,0xda = fseq.w $w11, $w17, $w13
+0x7a,0xbf,0x07,0x5a = fseq.d $w29, $w0, $w31
+0x7b,0x9f,0xff,0x9a = fsle.w $w30, $w31, $w31
+0x7b,0xb8,0xbc,0x9a = fsle.d $w18, $w23, $w24
+0x7b,0x06,0x2b,0x1a = fslt.w $w12, $w5, $w6
+0x7b,0x35,0xd4,0x1a = fslt.d $w16, $w26, $w21
+0x7a,0xcc,0x0f,0x9c = fsne.w $w30, $w1, $w12
+0x7a,0xf7,0x6b,0x9c = fsne.d $w14, $w13, $w23
+0x7a,0x5b,0x6e,0xdc = fsor.w $w27, $w13, $w27
+0x7a,0x6b,0xc3,0x1c = fsor.d $w12, $w24, $w11
+0x78,0x41,0xd7,0xdb = fsub.w $w31, $w26, $w1
+0x78,0x7b,0x8c,0xdb = fsub.d $w19, $w17, $w27
+0x7a,0xd9,0xc4,0x1a = fsueq.w $w16, $w24, $w25
+0x7a,0xee,0x74,0x9a = fsueq.d $w18, $w14, $w14
+0x7b,0xcd,0xf5,0xda = fsule.w $w23, $w30, $w13
+0x7b,0xfa,0x58,0x9a = fsule.d $w2, $w11, $w26
+0x7b,0x56,0xd2,0xda = fsult.w $w11, $w26, $w22
+0x7b,0x7e,0xb9,0x9a = fsult.d $w6, $w23, $w30
+0x7a,0x5c,0x90,0xda = fsun.w $w3, $w18, $w28
+0x7a,0x73,0x5c,0x9a = fsun.d $w18, $w11, $w19
+0x7a,0x82,0xfc,0x1c = fsune.w $w16, $w31, $w2
+0x7a,0xb1,0xd0,0xdc = fsune.d $w3, $w26, $w17
+0x7a,0x98,0x24,0x1b = ftq.h $w16, $w4, $w24
+0x7a,0xb9,0x29,0x5b = ftq.w $w5, $w5, $w25
+0x79,0x4a,0xa4,0x1c = madd_q.h $w16, $w20, $w10
+0x79,0x69,0x17,0x1c = madd_q.w $w28, $w2, $w9
+0x7b,0x49,0x92,0x1c = maddr_q.h $w8, $w18, $w9
+0x7b,0x70,0x67,0x5c = maddr_q.w $w29, $w12, $w16
+0x79,0x8a,0xd6,0x1c = msub_q.h $w24, $w26, $w10
+0x79,0xbc,0xf3,0x5c = msub_q.w $w13, $w30, $w28
+0x7b,0x8b,0xab,0x1c = msubr_q.h $w12, $w21, $w11
+0x7b,0xb4,0x70,0x5c = msubr_q.w $w1, $w14, $w20
+0x79,0x1e,0x81,0x9c = mul_q.h $w6, $w16, $w30
+0x79,0x24,0x0c,0x1c = mul_q.w $w16, $w1, $w4
+0x7b,0x13,0xa1,0x9c = mulr_q.h $w6, $w20, $w19
+0x7b,0x34,0x0e,0xdc = mulr_q.w $w27, $w1, $w20
diff --git a/capstone/suite/MC/Mips/test_bit.s.cs b/capstone/suite/MC/Mips/test_bit.s.cs
new file mode 100644
index 000000000..882cd9020
--- /dev/null
+++ b/capstone/suite/MC/Mips/test_bit.s.cs
@@ -0,0 +1,49 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x79,0xf2,0xf5,0x49 = bclri.b $w21, $w30, 2
+0x79,0xe0,0xae,0x09 = bclri.h $w24, $w21, 0
+0x79,0xc3,0xf5,0xc9 = bclri.w $w23, $w30, 3
+0x79,0x80,0x5a,0x49 = bclri.d $w9, $w11, 0
+0x7b,0x71,0x66,0x49 = binsli.b $w25, $w12, 1
+0x7b,0x60,0xb5,0x49 = binsli.h $w21, $w22, 0
+0x7b,0x40,0x25,0x89 = binsli.w $w22, $w4, 0
+0x7b,0x06,0x11,0x89 = binsli.d $w6, $w2, 6
+0x7b,0xf0,0x9b,0xc9 = binsri.b $w15, $w19, 0
+0x7b,0xe1,0xf2,0x09 = binsri.h $w8, $w30, 1
+0x7b,0xc5,0x98,0x89 = binsri.w $w2, $w19, 5
+0x7b,0x81,0xa4,0x89 = binsri.d $w18, $w20, 1
+0x7a,0xf0,0x9e,0x09 = bnegi.b $w24, $w19, 0
+0x7a,0xe3,0x5f,0x09 = bnegi.h $w28, $w11, 3
+0x7a,0xc5,0xd8,0x49 = bnegi.w $w1, $w27, 5
+0x7a,0x81,0xa9,0x09 = bnegi.d $w4, $w21, 1
+0x7a,0x70,0x44,0x89 = bseti.b $w18, $w8, 0
+0x7a,0x62,0x76,0x09 = bseti.h $w24, $w14, 2
+0x7a,0x44,0x92,0x49 = bseti.w $w9, $w18, 4
+0x7a,0x01,0x79,0xc9 = bseti.d $w7, $w15, 1
+0x78,0x72,0xff,0xca = sat_s.b $w31, $w31, 2
+0x78,0x60,0x9c,0xca = sat_s.h $w19, $w19, 0
+0x78,0x40,0xec,0xca = sat_s.w $w19, $w29, 0
+0x78,0x00,0xb2,0xca = sat_s.d $w11, $w22, 0
+0x78,0xf3,0x68,0x4a = sat_u.b $w1, $w13, 3
+0x78,0xe4,0xc7,0x8a = sat_u.h $w30, $w24, 4
+0x78,0xc0,0x6f,0xca = sat_u.w $w31, $w13, 0
+0x78,0x85,0x87,0x4a = sat_u.d $w29, $w16, 5
+0x78,0x71,0x55,0xc9 = slli.b $w23, $w10, 1
+0x78,0x61,0x92,0x49 = slli.h $w9, $w18, 1
+0x78,0x44,0xea,0xc9 = slli.w $w11, $w29, 4
+0x78,0x01,0xa6,0x49 = slli.d $w25, $w20, 1
+0x78,0xf1,0xee,0x09 = srai.b $w24, $w29, 1
+0x78,0xe0,0x30,0x49 = srai.h $w1, $w6, 0
+0x78,0xc1,0xd1,0xc9 = srai.w $w7, $w26, 1
+0x78,0x83,0xcd,0x09 = srai.d $w20, $w25, 3
+0x79,0x70,0xc9,0x4a = srari.b $w5, $w25, 0
+0x79,0x64,0x31,0xca = srari.h $w7, $w6, 4
+0x79,0x45,0x5c,0x4a = srari.w $w17, $w11, 5
+0x79,0x05,0xcd,0x4a = srari.d $w21, $w25, 5
+0x79,0x72,0x00,0x89 = srli.b $w2, $w0, 2
+0x79,0x62,0xff,0xc9 = srli.h $w31, $w31, 2
+0x79,0x44,0x49,0x49 = srli.w $w5, $w9, 4
+0x79,0x05,0xd6,0xc9 = srli.d $w27, $w26, 5
+0x79,0xf0,0x1c,0x8a = srlri.b $w18, $w3, 0
+0x79,0xe3,0x10,0x4a = srlri.h $w1, $w2, 3
+0x79,0xc2,0xb2,0xca = srlri.w $w11, $w22, 2
+0x79,0x86,0x56,0x0a = srlri.d $w24, $w10, 6
diff --git a/capstone/suite/MC/Mips/test_cbranch.s.cs b/capstone/suite/MC/Mips/test_cbranch.s.cs
new file mode 100644
index 000000000..92e7cdb04
--- /dev/null
+++ b/capstone/suite/MC/Mips/test_cbranch.s.cs
@@ -0,0 +1,11 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+// 0x47,0x80,0x00,0x01 = bnz.b $w0, 4
+// 0x47,0xa1,0x00,0x04 = bnz.h $w1, 16
+// 0x47,0xc2,0x00,0x20 = bnz.w $w2, 128
+// 0x47,0xe3,0xff,0xe0 = bnz.d $w3, -128
+// 0x45,0xe0,0x00,0x01 = bnz.v $w0, 4
+// 0x47,0x00,0x00,0x20 = bz.b $w0, 128
+// 0x47,0x21,0x00,0x40 = bz.h $w1, 256
+// 0x47,0x42,0x00,0x80 = bz.w $w2, 512
+// 0x47,0x63,0xff,0x00 = bz.d $w3, -1024
+// 0x45,0x60,0x00,0x01 = bz.v $w0, 4
diff --git a/capstone/suite/MC/Mips/test_ctrlregs.s.cs b/capstone/suite/MC/Mips/test_ctrlregs.s.cs
new file mode 100644
index 000000000..fb587a75f
--- /dev/null
+++ b/capstone/suite/MC/Mips/test_ctrlregs.s.cs
@@ -0,0 +1,33 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x78,0x7e,0x00,0x59 = cfcmsa $at, $0
+0x78,0x7e,0x00,0x59 = cfcmsa $at, $0
+0x78,0x7e,0x08,0x99 = cfcmsa $v0, $1
+0x78,0x7e,0x08,0x99 = cfcmsa $v0, $1
+0x78,0x7e,0x10,0xd9 = cfcmsa $v1, $2
+0x78,0x7e,0x10,0xd9 = cfcmsa $v1, $2
+0x78,0x7e,0x19,0x19 = cfcmsa $a0, $3
+0x78,0x7e,0x19,0x19 = cfcmsa $a0, $3
+0x78,0x7e,0x21,0x59 = cfcmsa $a1, $4
+0x78,0x7e,0x21,0x59 = cfcmsa $a1, $4
+0x78,0x7e,0x29,0x99 = cfcmsa $a2, $5
+0x78,0x7e,0x29,0x99 = cfcmsa $a2, $5
+0x78,0x7e,0x31,0xd9 = cfcmsa $a3, $6
+0x78,0x7e,0x31,0xd9 = cfcmsa $a3, $6
+0x78,0x7e,0x3a,0x19 = cfcmsa $t0, $7
+0x78,0x7e,0x3a,0x19 = cfcmsa $t0, $7
+0x78,0x3e,0x08,0x19 = ctcmsa $0, $at
+0x78,0x3e,0x08,0x19 = ctcmsa $0, $at
+0x78,0x3e,0x10,0x59 = ctcmsa $1, $v0
+0x78,0x3e,0x10,0x59 = ctcmsa $1, $v0
+0x78,0x3e,0x18,0x99 = ctcmsa $2, $v1
+0x78,0x3e,0x18,0x99 = ctcmsa $2, $v1
+0x78,0x3e,0x20,0xd9 = ctcmsa $3, $a0
+0x78,0x3e,0x20,0xd9 = ctcmsa $3, $a0
+0x78,0x3e,0x29,0x19 = ctcmsa $4, $a1
+0x78,0x3e,0x29,0x19 = ctcmsa $4, $a1
+0x78,0x3e,0x31,0x59 = ctcmsa $5, $a2
+0x78,0x3e,0x31,0x59 = ctcmsa $5, $a2
+0x78,0x3e,0x39,0x99 = ctcmsa $6, $a3
+0x78,0x3e,0x39,0x99 = ctcmsa $6, $a3
+0x78,0x3e,0x41,0xd9 = ctcmsa $7, $t0
+0x78,0x3e,0x41,0xd9 = ctcmsa $7, $t0
diff --git a/capstone/suite/MC/Mips/test_elm.s.cs b/capstone/suite/MC/Mips/test_elm.s.cs
new file mode 100644
index 000000000..c2ba95257
--- /dev/null
+++ b/capstone/suite/MC/Mips/test_elm.s.cs
@@ -0,0 +1,16 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x78,0x82,0x43,0x59 = copy_s.b $t5, $w8[2]
+0x78,0xa0,0xc8,0x59 = copy_s.h $at, $w25[0]
+0x78,0xb1,0x2d,0x99 = copy_s.w $s6, $w5[1]
+0x78,0xc4,0xa5,0x99 = copy_u.b $s6, $w20[4]
+0x78,0xe0,0x25,0x19 = copy_u.h $s4, $w4[0]
+0x78,0xf2,0x6f,0x99 = copy_u.w $fp, $w13[2]
+0x78,0x04,0xe8,0x19 = sldi.b $w0, $w29[4]
+0x78,0x20,0x8a,0x19 = sldi.h $w8, $w17[0]
+0x78,0x32,0xdd,0x19 = sldi.w $w20, $w27[2]
+0x78,0x38,0x61,0x19 = sldi.d $w4, $w12[0]
+0x78,0x42,0x1e,0x59 = splati.b $w25, $w3[2]
+0x78,0x61,0xe6,0x19 = splati.h $w24, $w28[1]
+0x78,0x70,0x93,0x59 = splati.w $w13, $w18[0]
+0x78,0x78,0x0f,0x19 = splati.d $w28, $w1[0]
+0x78,0xbe,0xc5,0xd9 = move.v $w23, $w24
diff --git a/capstone/suite/MC/Mips/test_elm_insert.s.cs b/capstone/suite/MC/Mips/test_elm_insert.s.cs
new file mode 100644
index 000000000..c9edc8e5e
--- /dev/null
+++ b/capstone/suite/MC/Mips/test_elm_insert.s.cs
@@ -0,0 +1,4 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x79,0x03,0xed,0xd9 = insert.b $w23[3], $sp
+0x79,0x22,0x2d,0x19 = insert.h $w20[2], $a1
+0x79,0x32,0x7a,0x19 = insert.w $w8[2], $t7
diff --git a/capstone/suite/MC/Mips/test_elm_insve.s.cs b/capstone/suite/MC/Mips/test_elm_insve.s.cs
new file mode 100644
index 000000000..7657969b7
--- /dev/null
+++ b/capstone/suite/MC/Mips/test_elm_insve.s.cs
@@ -0,0 +1,5 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x79,0x43,0x4e,0x59 = insve.b $w25[3], $w9[0]
+0x79,0x62,0x16,0x19 = insve.h $w24[2], $w2[0]
+0x79,0x72,0x68,0x19 = insve.w $w0[2], $w13[0]
+0x79,0x78,0x90,0xd9 = insve.d $w3[0], $w18[0]
diff --git a/capstone/suite/MC/Mips/test_i10.s.cs b/capstone/suite/MC/Mips/test_i10.s.cs
new file mode 100644
index 000000000..ba799f9d7
--- /dev/null
+++ b/capstone/suite/MC/Mips/test_i10.s.cs
@@ -0,0 +1,5 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x7b,0x06,0x32,0x07 = ldi.b $w8, 198
+0x7b,0x29,0xcd,0x07 = ldi.h $w20, 313
+0x7b,0x4f,0x66,0x07 = ldi.w $w24, 492
+// 0x7b,0x7a,0x66,0xc7 = ldi.d $w27, -180
diff --git a/capstone/suite/MC/Mips/test_i5.s.cs b/capstone/suite/MC/Mips/test_i5.s.cs
new file mode 100644
index 000000000..57192231b
--- /dev/null
+++ b/capstone/suite/MC/Mips/test_i5.s.cs
@@ -0,0 +1,45 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x78,0x1e,0xf8,0xc6 = addvi.b $w3, $w31, 30
+0x78,0x3a,0x6e,0x06 = addvi.h $w24, $w13, 26
+0x78,0x5a,0xa6,0x86 = addvi.w $w26, $w20, 26
+0x78,0x75,0x0c,0x06 = addvi.d $w16, $w1, 21
+// 0x78,0x18,0xae,0x07 = ceqi.b $w24, $w21, -8
+0x78,0x22,0x7f,0xc7 = ceqi.h $w31, $w15, 2
+// 0x78,0x5f,0x0b,0x07 = ceqi.w $w12, $w1, -1
+0x78,0x67,0xb6,0x07 = ceqi.d $w24, $w22, 7
+0x7a,0x01,0x83,0x07 = clei_s.b $w12, $w16, 1
+// 0x7a,0x37,0x50,0x87 = clei_s.h $w2, $w10, -9
+// 0x7a,0x56,0x59,0x07 = clei_s.w $w4, $w11, -10
+// 0x7a,0x76,0xe8,0x07 = clei_s.d $w0, $w29, -10
+0x7a,0x83,0x8d,0x47 = clei_u.b $w21, $w17, 3
+0x7a,0xb1,0x3f,0x47 = clei_u.h $w29, $w7, 17
+0x7a,0xc2,0x08,0x47 = clei_u.w $w1, $w1, 2
+0x7a,0xfd,0xde,0xc7 = clei_u.d $w27, $w27, 29
+// 0x79,0x19,0x6c,0xc7 = clti_s.b $w19, $w13, -7
+// 0x79,0x34,0x53,0xc7 = clti_s.h $w15, $w10, -12
+0x79,0x4b,0x63,0x07 = clti_s.w $w12, $w12, 11
+// 0x79,0x71,0xa7,0x47 = clti_s.d $w29, $w20, -15
+0x79,0x9d,0x4b,0x87 = clti_u.b $w14, $w9, 29
+0x79,0xb9,0xce,0x07 = clti_u.h $w24, $w25, 25
+0x79,0xd6,0x08,0x47 = clti_u.w $w1, $w1, 22
+0x79,0xe1,0xcd,0x47 = clti_u.d $w21, $w25, 1
+0x79,0x01,0xad,0x86 = maxi_s.b $w22, $w21, 1
+// 0x79,0x38,0x2f,0x46 = maxi_s.h $w29, $w5, -8
+// 0x79,0x54,0x50,0x46 = maxi_s.w $w1, $w10, -12
+// 0x79,0x70,0xeb,0x46 = maxi_s.d $w13, $w29, -16
+0x79,0x8c,0x05,0x06 = maxi_u.b $w20, $w0, 12
+0x79,0xa3,0x70,0x46 = maxi_u.h $w1, $w14, 3
+0x79,0xcb,0xb6,0xc6 = maxi_u.w $w27, $w22, 11
+0x79,0xe4,0x36,0x86 = maxi_u.d $w26, $w6, 4
+0x7a,0x01,0x09,0x06 = mini_s.b $w4, $w1, 1
+// 0x7a,0x37,0xde,0xc6 = mini_s.h $w27, $w27, -9
+0x7a,0x49,0x5f,0x06 = mini_s.w $w28, $w11, 9
+0x7a,0x6a,0x52,0xc6 = mini_s.d $w11, $w10, 10
+0x7a,0x9b,0xbc,0x86 = mini_u.b $w18, $w23, 27
+0x7a,0xb2,0xd1,0xc6 = mini_u.h $w7, $w26, 18
+0x7a,0xda,0x62,0xc6 = mini_u.w $w11, $w12, 26
+0x7a,0xe2,0x7a,0xc6 = mini_u.d $w11, $w15, 2
+0x78,0x93,0xa6,0x06 = subvi.b $w24, $w20, 19
+0x78,0xa4,0x9a,0xc6 = subvi.h $w11, $w19, 4
+0x78,0xcb,0x53,0x06 = subvi.w $w12, $w10, 11
+0x78,0xe7,0x84,0xc6 = subvi.d $w19, $w16, 7
diff --git a/capstone/suite/MC/Mips/test_i8.s.cs b/capstone/suite/MC/Mips/test_i8.s.cs
new file mode 100644
index 000000000..0b08f63aa
--- /dev/null
+++ b/capstone/suite/MC/Mips/test_i8.s.cs
@@ -0,0 +1,11 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x78,0x30,0xe8,0x80 = andi.b $w2, $w29, 48
+0x78,0x7e,0xb1,0x81 = bmnzi.b $w6, $w22, 126
+0x79,0x58,0x0e,0xc1 = bmzi.b $w27, $w1, 88
+0x7a,0xbd,0x1f,0x41 = bseli.b $w29, $w3, 189
+0x7a,0x38,0x88,0x40 = nori.b $w1, $w17, 56
+0x79,0x87,0xa6,0x80 = ori.b $w26, $w20, 135
+0x78,0x69,0xf4,0xc2 = shf.b $w19, $w30, 105
+0x79,0x4c,0x44,0x42 = shf.h $w17, $w8, 76
+0x7a,0x5d,0x1b,0x82 = shf.w $w14, $w3, 93
+0x7b,0x14,0x54,0x00 = xori.b $w16, $w10, 20
diff --git a/capstone/suite/MC/Mips/test_lsa.s.cs b/capstone/suite/MC/Mips/test_lsa.s.cs
new file mode 100644
index 000000000..098775c04
--- /dev/null
+++ b/capstone/suite/MC/Mips/test_lsa.s.cs
@@ -0,0 +1,5 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x01,0x2a,0x40,0x05 = lsa $t0, $t1, $t2, 1
+0x01,0x2a,0x40,0x45 = lsa $t0, $t1, $t2, 2
+0x01,0x2a,0x40,0x85 = lsa $t0, $t1, $t2, 3
+0x01,0x2a,0x40,0xc5 = lsa $t0, $t1, $t2, 4
diff --git a/capstone/suite/MC/Mips/test_mi10.s.cs b/capstone/suite/MC/Mips/test_mi10.s.cs
new file mode 100644
index 000000000..54d62c469
--- /dev/null
+++ b/capstone/suite/MC/Mips/test_mi10.s.cs
@@ -0,0 +1,24 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x7a,0x00,0x08,0x20 = ld.b $w0, -512($at)
+0x78,0x00,0x10,0x60 = ld.b $w1, ($v0)
+0x79,0xff,0x18,0xa0 = ld.b $w2, 511($v1)
+0x7a,0x00,0x20,0xe1 = ld.h $w3, -1024($a0)
+0x7b,0x00,0x29,0x21 = ld.h $w4, -512($a1)
+0x78,0x00,0x31,0x61 = ld.h $w5, ($a2)
+0x79,0x00,0x39,0xa1 = ld.h $w6, 512($a3)
+0x79,0xff,0x41,0xe1 = ld.h $w7, 1022($t0)
+0x7a,0x00,0x4a,0x22 = ld.w $w8, -2048($t1)
+0x7b,0x00,0x52,0x62 = ld.w $w9, -1024($t2)
+0x7b,0x80,0x5a,0xa2 = ld.w $w10, -512($t3)
+0x78,0x80,0x62,0xe2 = ld.w $w11, 512($t4)
+0x79,0x00,0x6b,0x22 = ld.w $w12, 1024($t5)
+0x79,0xff,0x73,0x62 = ld.w $w13, 2044($t6)
+0x7a,0x00,0x7b,0xa3 = ld.d $w14, -4096($t7)
+0x7b,0x00,0x83,0xe3 = ld.d $w15, -2048($s0)
+0x7b,0x80,0x8c,0x23 = ld.d $w16, -1024($s1)
+0x7b,0xc0,0x94,0x63 = ld.d $w17, -512($s2)
+0x78,0x00,0x9c,0xa3 = ld.d $w18, ($s3)
+0x78,0x40,0xa4,0xe3 = ld.d $w19, 512($s4)
+0x78,0x80,0xad,0x23 = ld.d $w20, 1024($s5)
+0x79,0x00,0xb5,0x63 = ld.d $w21, 2048($s6)
+0x79,0xff,0xbd,0xa3 = ld.d $w22, 4088($s7)
diff --git a/capstone/suite/MC/Mips/test_vec.s.cs b/capstone/suite/MC/Mips/test_vec.s.cs
new file mode 100644
index 000000000..930386823
--- /dev/null
+++ b/capstone/suite/MC/Mips/test_vec.s.cs
@@ -0,0 +1,8 @@
+# CS_ARCH_MIPS, CS_MODE_MIPS32+CS_MODE_BIG_ENDIAN, None
+0x78,0x1b,0xa6,0x5e = and.v $w25, $w20, $w27
+0x78,0x87,0x34,0x5e = bmnz.v $w17, $w6, $w7
+0x78,0xa9,0x88,0xde = bmz.v $w3, $w17, $w9
+0x78,0xce,0x02,0x1e = bsel.v $w8, $w0, $w14
+0x78,0x40,0xf9,0xde = nor.v $w7, $w31, $w0
+0x78,0x3e,0xd6,0x1e = or.v $w24, $w26, $w30
+0x78,0x6f,0xd9,0xde = xor.v $w7, $w27, $w15