mirror of
https://github.com/TomHarte/CLK.git
synced 2025-02-05 05:34:20 +00:00
Figure out what the call to perform
should look like.
Albeit that this class doesn't currently offer any of the proper flow control actions.
This commit is contained in:
parent
43cd740a7b
commit
df999978f1
@ -8,6 +8,10 @@
|
|||||||
|
|
||||||
#include "Executor.hpp"
|
#include "Executor.hpp"
|
||||||
|
|
||||||
|
#include "Perform.hpp"
|
||||||
|
|
||||||
|
#include <cassert>
|
||||||
|
|
||||||
using namespace InstructionSet::M68k;
|
using namespace InstructionSet::M68k;
|
||||||
|
|
||||||
template <Model model, typename BusHandler>
|
template <Model model, typename BusHandler>
|
||||||
@ -17,7 +21,7 @@ Executor<model, BusHandler>::Executor(BusHandler &handler) : bus_handler_(handle
|
|||||||
|
|
||||||
template <Model model, typename BusHandler>
|
template <Model model, typename BusHandler>
|
||||||
void Executor<model, BusHandler>::reset() {
|
void Executor<model, BusHandler>::reset() {
|
||||||
|
// TODO.
|
||||||
}
|
}
|
||||||
|
|
||||||
template <Model model, typename BusHandler>
|
template <Model model, typename BusHandler>
|
||||||
@ -33,9 +37,20 @@ void Executor<model, BusHandler>::run_for_instructions(int count) {
|
|||||||
// Obtain the appropriate sequence.
|
// Obtain the appropriate sequence.
|
||||||
Sequence<model> sequence(instruction.operation);
|
Sequence<model> sequence(instruction.operation);
|
||||||
|
|
||||||
|
// Temporary storage.
|
||||||
|
CPU::SlicedInt32 source, dest;
|
||||||
|
|
||||||
// Perform it.
|
// Perform it.
|
||||||
while(!sequence.empty()) {
|
while(!sequence.empty()) {
|
||||||
const auto step = sequence.pop_front();
|
const auto step = sequence.pop_front();
|
||||||
|
|
||||||
|
switch(step) {
|
||||||
|
default: assert(false); // i.e. TODO
|
||||||
|
|
||||||
|
case Step::Perform:
|
||||||
|
perform<model>(instruction, source, dest, status_, this);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user