1
0
mirror of https://github.com/citra-emu/citra.git synced 2024-12-22 08:40:04 +00:00

fixed thread reset to not set stack address

This commit is contained in:
bunnei 2014-05-13 23:18:28 -04:00
parent 7d078189da
commit 0de78eb3c4

View File

@ -417,7 +417,6 @@ void ThreadContext::reset() {
for (int i = 0; i < 16; i++) { for (int i = 0; i < 16; i++) {
reg[i] = 0; reg[i] = 0;
} }
reg[13] = Memory::SCRATCHPAD_VADDR_END;
cpsr = 0; cpsr = 0;
} }
@ -464,6 +463,7 @@ Thread* __KernelCreateThread(UID& id, UID module_id, const char* name, u32 prior
void __KernelResetThread(Thread *t, int lowest_priority) { void __KernelResetThread(Thread *t, int lowest_priority) {
t->context.reset(); t->context.reset();
t->context.pc = t->nt.entry_point; t->context.pc = t->nt.entry_point;
t->context.reg[13] = t->nt.initial_stack;
// If the thread would be better than lowestPriority, reset to its initial. Yes, kinda odd... // If the thread would be better than lowestPriority, reset to its initial. Yes, kinda odd...
if (t->nt.current_priority < lowest_priority) { if (t->nt.current_priority < lowest_priority) {