aboutsummaryrefslogtreecommitdiff
path: root/src/core/arm/interpreter/arm_interpreter.cpp
diff options
context:
space:
mode:
authorbunnei <ericbunnie@gmail.com>2014-05-17 13:35:20 -0400
committerbunnei <ericbunnie@gmail.com>2014-05-17 13:35:20 -0400
commit3fac6dc39e6e94aa068d93535261eede97224e50 (patch)
tree41b5a266814d633b94d090f13bc46c89e8f7f622 /src/core/arm/interpreter/arm_interpreter.cpp
parent14ae026386cf3f984d60401e2104165c3ca3266b (diff)
parent265c770a9d663b96a9a422201bac3dd454fa95c0 (diff)
Merge branch 'master' into threading
Diffstat (limited to 'src/core/arm/interpreter/arm_interpreter.cpp')
-rw-r--r--src/core/arm/interpreter/arm_interpreter.cpp19
1 files changed, 7 insertions, 12 deletions
diff --git a/src/core/arm/interpreter/arm_interpreter.cpp b/src/core/arm/interpreter/arm_interpreter.cpp
index 4e1387fdb..c21ff0464 100644
--- a/src/core/arm/interpreter/arm_interpreter.cpp
+++ b/src/core/arm/interpreter/arm_interpreter.cpp
@@ -93,16 +93,11 @@ u64 ARM_Interpreter::GetTicks() const {
return ARMul_Time(m_state);
}
-/// Execture next instruction
-void ARM_Interpreter::ExecuteInstruction() {
- m_state->step++;
- m_state->cycle++;
- m_state->EndCondition = 0;
- m_state->stop_simulator = 0;
- m_state->NextInstr = RESUME;
- m_state->last_pc = m_state->Reg[15];
- m_state->Reg[15] = ARMul_DoInstr(m_state);
- m_state->Cpsr = ((m_state->Cpsr & 0x0fffffdf) | (m_state->NFlag << 31) | (m_state->ZFlag << 30) |
- (m_state->CFlag << 29) | (m_state->VFlag << 28) | (m_state->TFlag << 5));
- m_state->NextInstr |= PRIMEPIPE; // Flush pipe
+/**
+ * Executes the given number of instructions
+ * @param num_instructions Number of instructions to executes
+ */
+void ARM_Interpreter::ExecuteInstructions(int num_instructions) {
+ m_state->NumInstrsToExecute = num_instructions;
+ ARMul_Emulate32(m_state);
}