arm: added option to prepare CPU core (while mid-instruction) for thread reschedule
This commit is contained in:
		| @@ -89,6 +89,9 @@ public: | ||||
|      */ | ||||
|     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 | ||||
|     u64 GetNumInstructions() { | ||||
|         return num_instructions; | ||||
|   | ||||
| @@ -140,3 +140,8 @@ void ARM_Interpreter::LoadContext(const ThreadContext& ctx) { | ||||
|     state->Reg[15] = ctx.pc; | ||||
|     state->NextInstr = RESUME; | ||||
| } | ||||
|  | ||||
| /// Prepare core for thread reschedule (if needed to correctly handle state) | ||||
| void ARM_Interpreter::PrepareReschedule() { | ||||
|     state->NumInstrsToExecute = 0; | ||||
| } | ||||
|   | ||||
| @@ -72,6 +72,9 @@ public: | ||||
|      */ | ||||
|     void LoadContext(const ThreadContext& ctx); | ||||
|  | ||||
|     /// Prepare core for thread reschedule (if needed to correctly handle state) | ||||
|     void PrepareReschedule(); | ||||
|  | ||||
| protected: | ||||
|  | ||||
|     /** | ||||
|   | ||||
		Reference in New Issue
	
	Block a user