summaryrefslogtreecommitdiff
path: root/src/core/hle/hle.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2014-06-05 00:26:48 -0400
committerGravatar bunnei2014-06-05 00:26:48 -0400
commit174cc9a0ed023ca89420fbc999ed82337cc94b8b (patch)
tree77880fcb4200aea1921919dc850f1f90897a9657 /src/core/hle/hle.cpp
parentarm: fixed a bug where ARM_Interpreter::ExecuteInstructions was actually exec... (diff)
downloadyuzu-174cc9a0ed023ca89420fbc999ed82337cc94b8b.tar.gz
yuzu-174cc9a0ed023ca89420fbc999ed82337cc94b8b.tar.xz
yuzu-174cc9a0ed023ca89420fbc999ed82337cc94b8b.zip
hle: added a hokey way to force a thread reschedule during CPU single step mode (as used by the debugger)
Diffstat (limited to 'src/core/hle/hle.cpp')
-rw-r--r--src/core/hle/hle.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/core/hle/hle.cpp b/src/core/hle/hle.cpp
index 08b0685c9..e49395f56 100644
--- a/src/core/hle/hle.cpp
+++ b/src/core/hle/hle.cpp
@@ -16,6 +16,8 @@ namespace HLE {
16 16
17static std::vector<ModuleDef> g_module_db; 17static std::vector<ModuleDef> g_module_db;
18 18
19bool g_reschedule = false; ///< If true, immediately reschedules the CPU to a new thread
20
19const FunctionDef* GetSVCInfo(u32 opcode) { 21const FunctionDef* GetSVCInfo(u32 opcode) {
20 u32 func_num = opcode & 0xFFFFFF; // 8 bits 22 u32 func_num = opcode & 0xFFFFFF; // 8 bits
21 if (func_num > 0xFF) { 23 if (func_num > 0xFF) {
@@ -47,6 +49,7 @@ void Reschedule(const char *reason) {
47 _dbg_assert_msg_(HLE, reason != 0 && strlen(reason) < 256, "Reschedule: Invalid or too long reason."); 49 _dbg_assert_msg_(HLE, reason != 0 && strlen(reason) < 256, "Reschedule: Invalid or too long reason.");
48#endif 50#endif
49 Core::g_app_core->PrepareReschedule(); 51 Core::g_app_core->PrepareReschedule();
52 g_reschedule = true;
50} 53}
51 54
52void RegisterModule(std::string name, int num_functions, const FunctionDef* func_table) { 55void RegisterModule(std::string name, int num_functions, const FunctionDef* func_table) {