From 8004d35ea163b621ea3f3d4333f2c58ec926d7c9 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 6 Apr 2015 13:01:19 -0400 Subject: [PATCH] core: Migrate 3DS-specific CP15 register setting into Init --- src/core/arm/interpreter/arminit.cpp | 8 -------- src/core/core.cpp | 5 +++++ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/core/arm/interpreter/arminit.cpp b/src/core/arm/interpreter/arminit.cpp index 7254a16f3d..1d732fe847 100644 --- a/src/core/arm/interpreter/arminit.cpp +++ b/src/core/arm/interpreter/arminit.cpp @@ -139,16 +139,8 @@ void ARMul_Reset(ARMul_State* state) state->Bank = SVCBANK; FLUSHPIPE; - // Reset CP15 ResetMPCoreCP15Registers(state); - // This is separate from the CP15 register reset function, as - // this isn't an ARM-defined reset value; it's set by the 3DS. - // - // TODO: Whenever TLS is implemented, this should contain - // the address of the 0x200-byte TLS - state->CP15[CP15_THREAD_URO] = Memory::KERNEL_MEMORY_VADDR; - state->EndCondition = 0; state->ErrorCode = 0; diff --git a/src/core/core.cpp b/src/core/core.cpp index 15787bc17d..81e642318c 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -7,6 +7,7 @@ #include "core/core.h" #include "core/core_timing.h" +#include "core/mem_map.h" #include "core/settings.h" #include "core/arm/arm_interface.h" #include "core/arm/disassembler/arm_disasm.h" @@ -59,6 +60,10 @@ int Init() { g_sys_core = new ARM_DynCom(USER32MODE); g_app_core = new ARM_DynCom(USER32MODE); + // TODO: Whenever TLS is implemented, this should contain + // the address of the 0x200-byte TLS + g_app_core->SetCP15Register(CP15_THREAD_URO, Memory::KERNEL_MEMORY_VADDR); + LOG_DEBUG(Core, "Initialized OK"); return 0; }