From b578fc3a926fbe4af00f2b8f0f4de3d793b680bf Mon Sep 17 00:00:00 2001
From: Jason Hiser <jdhiser@gmail.com>
Date: Mon, 9 Dec 2019 14:59:46 -0500
Subject: [PATCH] fixed up capstone call for mips.

---
 irdb-libs/rida/rida.cpp | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/irdb-libs/rida/rida.cpp b/irdb-libs/rida/rida.cpp
index f2349e4dc..41458862d 100644
--- a/irdb-libs/rida/rida.cpp
+++ b/irdb-libs/rida/rida.cpp
@@ -73,11 +73,12 @@ class CreateFunctions_t
 				exit(1);
 			}
 
-			const auto cs_mode= 
-				machine_type == mtArm32   ? CS_MODE_LITTLE_ENDIAN :
-				machine_type == mtAarch64 ? CS_MODE_LITTLE_ENDIAN :
-				file_class   == ELF64     ? CS_MODE_64 : 
-				file_class   == ELF32     ? CS_MODE_32 : 
+			const auto my_cs_mode = 
+				machine_type == mtArm32   ? cs_mode(CS_MODE_LITTLE_ENDIAN) :
+				machine_type == mtAarch64 ? cs_mode(CS_MODE_LITTLE_ENDIAN) :
+				machine_type == mtMips32  ? cs_mode(CS_MODE_MIPS32 | CS_MODE_BIG_ENDIAN) : 
+				file_class   == ELF64     ? cs_mode(CS_MODE_64) : 
+				file_class   == ELF32     ? cs_mode(CS_MODE_32) : 
 				throw std::runtime_error("Cannot handle ELF class");
 
 			const auto my_cs_arch = 
@@ -85,9 +86,10 @@ class CreateFunctions_t
 				machine_type == mtI386    ?  CS_ARCH_X86   :
 				machine_type == mtArm32   ?  CS_ARCH_ARM   : 
 				machine_type == mtAarch64 ?  CS_ARCH_ARM64 : 
+				machine_type == mtMips32  ?  CS_ARCH_MIPS  : 
 				throw std::runtime_error("Cannot handle architecture");
 
-			if (cs_open(my_cs_arch, cs_mode , &cshandle) != CS_ERR_OK)
+			if (cs_open(my_cs_arch, my_cs_mode , &cshandle) != CS_ERR_OK)
 			{
 				cerr<<"Cannot initialize capstone"<<endl;
 				exit(1);
-- 
GitLab