summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbunnei <ericbunnie@gmail.com>2014-06-02 03:40:10 +0200
committerbunnei <ericbunnie@gmail.com>2014-06-02 03:40:10 +0200
commite8a17ee6fdf7ab653be32f52afb10f0dafdf61c1 (patch)
treec8396f428819e31dbf2ae568538140e44d2bc27c
parentsvc: cleaned up function_wrappers, updated various SVCs to make use of pointer arguments (diff)
downloadyuzu-e8a17ee6fdf7ab653be32f52afb10f0dafdf61c1.tar
yuzu-e8a17ee6fdf7ab653be32f52afb10f0dafdf61c1.tar.gz
yuzu-e8a17ee6fdf7ab653be32f52afb10f0dafdf61c1.tar.bz2
yuzu-e8a17ee6fdf7ab653be32f52afb10f0dafdf61c1.tar.lz
yuzu-e8a17ee6fdf7ab653be32f52afb10f0dafdf61c1.tar.xz
yuzu-e8a17ee6fdf7ab653be32f52afb10f0dafdf61c1.tar.zst
yuzu-e8a17ee6fdf7ab653be32f52afb10f0dafdf61c1.zip
-rw-r--r--src/core/arm/arm_interface.h3
-rw-r--r--src/core/arm/interpreter/arm_interpreter.cpp5
-rw-r--r--src/core/arm/interpreter/arm_interpreter.h3
3 files changed, 11 insertions, 0 deletions
diff --git a/src/core/arm/arm_interface.h b/src/core/arm/arm_interface.h
index b73786ccd..316b50fbb 100644
--- a/src/core/arm/arm_interface.h
+++ b/src/core/arm/arm_interface.h
@@ -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;
diff --git a/src/core/arm/interpreter/arm_interpreter.cpp b/src/core/arm/interpreter/arm_interpreter.cpp
index 17f787b86..2aa100e86 100644
--- a/src/core/arm/interpreter/arm_interpreter.cpp
+++ b/src/core/arm/interpreter/arm_interpreter.cpp
@@ -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;
+}
diff --git a/src/core/arm/interpreter/arm_interpreter.h b/src/core/arm/interpreter/arm_interpreter.h
index 6a531e497..1e82883a2 100644
--- a/src/core/arm/interpreter/arm_interpreter.h
+++ b/src/core/arm/interpreter/arm_interpreter.h
@@ -72,6 +72,9 @@ public:
*/
void LoadContext(const ThreadContext& ctx);
+ /// Prepare core for thread reschedule (if needed to correctly handle state)
+ void PrepareReschedule();
+
protected:
/**