core: Migrate 3DS-specific CP15 register setting into Init
This commit is contained in:
parent
c3ffe8f9c3
commit
8004d35ea1
|
@ -139,16 +139,8 @@ void ARMul_Reset(ARMul_State* state)
|
||||||
state->Bank = SVCBANK;
|
state->Bank = SVCBANK;
|
||||||
FLUSHPIPE;
|
FLUSHPIPE;
|
||||||
|
|
||||||
// Reset CP15
|
|
||||||
ResetMPCoreCP15Registers(state);
|
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->EndCondition = 0;
|
||||||
state->ErrorCode = 0;
|
state->ErrorCode = 0;
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include "core/core.h"
|
#include "core/core.h"
|
||||||
#include "core/core_timing.h"
|
#include "core/core_timing.h"
|
||||||
|
|
||||||
|
#include "core/mem_map.h"
|
||||||
#include "core/settings.h"
|
#include "core/settings.h"
|
||||||
#include "core/arm/arm_interface.h"
|
#include "core/arm/arm_interface.h"
|
||||||
#include "core/arm/disassembler/arm_disasm.h"
|
#include "core/arm/disassembler/arm_disasm.h"
|
||||||
|
@ -59,6 +60,10 @@ int Init() {
|
||||||
g_sys_core = new ARM_DynCom(USER32MODE);
|
g_sys_core = new ARM_DynCom(USER32MODE);
|
||||||
g_app_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");
|
LOG_DEBUG(Core, "Initialized OK");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue