|
@@ -16,6 +16,7 @@
|
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|
|
|
|
|
|
|
#include <cstring>
|
|
#include <cstring>
|
|
|
|
|
+#include "core/mem_map.h"
|
|
|
#include "core/arm/skyeye_common/armdefs.h"
|
|
#include "core/arm/skyeye_common/armdefs.h"
|
|
|
#include "core/arm/skyeye_common/armemu.h"
|
|
#include "core/arm/skyeye_common/armemu.h"
|
|
|
|
|
|
|
@@ -138,8 +139,16 @@ 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(CP15_THREAD_URO)] = Memory::KERNEL_MEMORY_VADDR;
|
|
|
|
|
+
|
|
|
state->EndCondition = 0;
|
|
state->EndCondition = 0;
|
|
|
state->ErrorCode = 0;
|
|
state->ErrorCode = 0;
|
|
|
|
|
|