1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-09-28 09:54:49 +00:00

Shuffle Step to give meaning to the LSB.

This commit is contained in:
Thomas Harte 2022-04-30 20:33:35 -04:00
parent 52f355db24
commit 43cd740a7b

View File

@ -15,22 +15,17 @@
namespace InstructionSet {
namespace M68k {
/// Additional guarantees: [Fetch/Store/CalcEA][1/2] have an LSB of 0 for
/// operand 1, and an LSB of 1 for operand 2.
enum class Step {
/// No further steps remain.
Done,
/// Do the logical operation.
Perform,
/// Fetch the value of operand 1.
FetchOp1,
/// Fetch the value of operand 2.
FetchOp2,
/// Do the logical operation.
Perform,
/// A catch-all for bus activity that doesn't fit the pattern
/// of fetch/stop operand 1/2, e.g. this opaquely covers almost
/// the entirety of MOVEM.
///
/// TODO: list all operations that contain this step,
/// and to cover what activity.
SpecificBusActivity,
/// Store the value of operand 1.
StoreOp1,
/// Store the value of operand 2.
@ -39,8 +34,15 @@ enum class Step {
CalcEA1,
/// Calculate effective address of operand 2.
CalcEA2,
/// A catch-all for bus activity that doesn't fit the pattern
/// of fetch/stop operand 1/2, e.g. this opaquely covers almost
/// the entirety of MOVEM.
///
/// TODO: list all operations that contain this step,
/// and to cover what activity.
SpecificBusActivity,
Max = CalcEA2
Max = SpecificBusActivity
};
/// Indicates the abstract steps necessary to perform an operation,