citra-emu
/
citra
Archived
1
0
Fork 0

arm: added option to prepare CPU core (while mid-instruction) for thread reschedule

This commit is contained in:
bunnei 2014-06-01 21:40:10 -04:00
parent 15c7d81706
commit e8a17ee6fd
3 changed files with 11 additions and 0 deletions

View File

@ -89,6 +89,9 @@ public:
*/ */
virtual void LoadContext(const ThreadContext& ctx) = 0; virtual void LoadContext(const ThreadContext& ctx) = 0;
/// Prepare core for thread reschedule (if needed to correctly handle state)
virtual void PrepareReschedule() = 0;
/// Getter for num_instructions /// Getter for num_instructions
u64 GetNumInstructions() { u64 GetNumInstructions() {
return num_instructions; return num_instructions;

View File

@ -140,3 +140,8 @@ void ARM_Interpreter::LoadContext(const ThreadContext& ctx) {
state->Reg[15] = ctx.pc; state->Reg[15] = ctx.pc;
state->NextInstr = RESUME; state->NextInstr = RESUME;
} }
/// Prepare core for thread reschedule (if needed to correctly handle state)
void ARM_Interpreter::PrepareReschedule() {
state->NumInstrsToExecute = 0;
}

View File

@ -72,6 +72,9 @@ public:
*/ */
void LoadContext(const ThreadContext& ctx); void LoadContext(const ThreadContext& ctx);
/// Prepare core for thread reschedule (if needed to correctly handle state)
void PrepareReschedule();
protected: protected:
/** /**