From 6151e26958fa243b6322a9a544446dda5020204b Mon Sep 17 00:00:00 2001 From: bunnei Date: Fri, 25 Apr 2014 15:57:32 -0400 Subject: added disassembly to unimplemented instruction --- src/core/arm/interpreter/armsupp.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/core/arm/interpreter') diff --git a/src/core/arm/interpreter/armsupp.cpp b/src/core/arm/interpreter/armsupp.cpp index 101b9807a..48e55c63a 100644 --- a/src/core/arm/interpreter/armsupp.cpp +++ b/src/core/arm/interpreter/armsupp.cpp @@ -17,9 +17,11 @@ #include "armdefs.h" #include "armemu.h" + //#include "ansidecl.h" #include "skyeye_defs.h" #include "core/hle/hle.h" +#include "core/arm/disassembler/arm_disasm.h" unsigned xscale_cp15_cp_access_allowed (ARMul_State * state, unsigned reg, unsigned cpnum); @@ -846,7 +848,10 @@ ARMul_CDP (ARMul_State * state, ARMword instr) void ARMul_UndefInstr (ARMul_State * state, ARMword instr) { - ERROR_LOG(ARM11, "Undefined instruction!! Instr: 0x%x", instr); + char buff[512]; + ARM_Disasm disasm = ARM_Disasm(); + disasm.disasm(state->pc, instr, buff); + ERROR_LOG(ARM11, "Undefined instruction!! Disasm: %s Opcode: 0x%x", buff, instr); ARMul_Abort (state, ARMul_UndefinedInstrV); } -- cgit v1.2.3 From cb0663de5147f10533ecdbf6f58865f7cbe0241c Mon Sep 17 00:00:00 2001 From: bunnei Date: Fri, 25 Apr 2014 17:15:19 -0400 Subject: moved HLE::MRC to its own module, added support for catching data synchronization barrier command --- src/core/arm/interpreter/armemu.cpp | 3 ++- src/core/arm/interpreter/armsupp.cpp | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src/core/arm/interpreter') diff --git a/src/core/arm/interpreter/armemu.cpp b/src/core/arm/interpreter/armemu.cpp index 6074ff480..c137c61fe 100644 --- a/src/core/arm/interpreter/armemu.cpp +++ b/src/core/arm/interpreter/armemu.cpp @@ -4467,7 +4467,7 @@ ARMul_Emulate26 (ARMul_State * state) } /* Drop through. */ - case 0xe0: + //case 0xe0: case 0xe4: case 0xe6: case 0xe8: @@ -4502,6 +4502,7 @@ ARMul_Emulate26 (ARMul_State * state) /* Co-Processor Register Transfers (MRC) and Data Ops. */ + case 0xe0: case 0xe1: case 0xe3: case 0xe5: diff --git a/src/core/arm/interpreter/armsupp.cpp b/src/core/arm/interpreter/armsupp.cpp index 48e55c63a..b2bbedc18 100644 --- a/src/core/arm/interpreter/armsupp.cpp +++ b/src/core/arm/interpreter/armsupp.cpp @@ -20,7 +20,7 @@ //#include "ansidecl.h" #include "skyeye_defs.h" -#include "core/hle/hle.h" +#include "core/hle/mrc.h" #include "core/arm/disassembler/arm_disasm.h" unsigned xscale_cp15_cp_access_allowed (ARMul_State * state, unsigned reg, @@ -738,7 +738,8 @@ ARMword ARMul_MRC (ARMul_State * state, ARMword instr) { unsigned cpab; - ARMword result = HLE::CallGetThreadCommandBuffer(); + + ARMword result = HLE::CallMRC((HLE::ARM11_MRC_OPERATION)BITS(20, 27)); ////printf("SKYEYE ARMul_MRC, CPnum is %x, instr %x\n",CPNum, instr); //if (!CP_ACCESS_ALLOWED (state, CPNum)) { -- cgit v1.2.3 From f76a60be05ea1b12fda9ad9852719b50dee9649e Mon Sep 17 00:00:00 2001 From: bunnei Date: Sun, 27 Apr 2014 18:22:30 -0400 Subject: removed commented out line - this was for an unimplemented MRC call, no longer need to leave this here --- src/core/arm/interpreter/armemu.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'src/core/arm/interpreter') diff --git a/src/core/arm/interpreter/armemu.cpp b/src/core/arm/interpreter/armemu.cpp index c137c61fe..a35c5c8dc 100644 --- a/src/core/arm/interpreter/armemu.cpp +++ b/src/core/arm/interpreter/armemu.cpp @@ -4467,7 +4467,6 @@ ARMul_Emulate26 (ARMul_State * state) } /* Drop through. */ - //case 0xe0: case 0xe4: case 0xe6: case 0xe8: -- cgit v1.2.3 From a48c6b947d5314ab804f375cca22af159cc3b77b Mon Sep 17 00:00:00 2001 From: bunnei Date: Sun, 27 Apr 2014 18:29:51 -0400 Subject: removed DISALLOW_COPY_AND_ASSIGN in favor of NonCopyable class --- src/core/arm/interpreter/arm_interpreter.h | 1 - 1 file changed, 1 deletion(-) (limited to 'src/core/arm/interpreter') diff --git a/src/core/arm/interpreter/arm_interpreter.h b/src/core/arm/interpreter/arm_interpreter.h index f3c86f8dd..625c0c652 100644 --- a/src/core/arm/interpreter/arm_interpreter.h +++ b/src/core/arm/interpreter/arm_interpreter.h @@ -63,5 +63,4 @@ private: ARMul_State* m_state; - DISALLOW_COPY_AND_ASSIGN(ARM_Interpreter); }; -- cgit v1.2.3