mirror of
https://github.com/TomHarte/CLK.git
synced 2025-02-19 23:29:05 +00:00
Test MOVEs and add operand validation.
This commit is contained in:
parent
76d7e0e1f8
commit
de40fed248
@ -175,6 +175,24 @@ template <uint8_t op, bool validate> Preinstruction Predecoder<model>::validated
|
|||||||
return Preinstruction();
|
return Preinstruction();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch(original.mode<1>()) {
|
||||||
|
default: return original;
|
||||||
|
|
||||||
|
case AddressingMode::ImmediateData:
|
||||||
|
case AddressingMode::ProgramCounterIndirectWithDisplacement:
|
||||||
|
case AddressingMode::ProgramCounterIndirectWithIndex8bitDisplacement:
|
||||||
|
case AddressingMode::None:
|
||||||
|
return Preinstruction();
|
||||||
|
}
|
||||||
|
|
||||||
|
// MOVE.
|
||||||
|
case OpT(Operation::MOVEb): case OpT(Operation::MOVEw): case OpT(Operation::MOVEl):
|
||||||
|
switch(original.mode<0>()) {
|
||||||
|
default: break;
|
||||||
|
case AddressingMode::None:
|
||||||
|
return Preinstruction();
|
||||||
|
}
|
||||||
|
|
||||||
switch(original.mode<1>()) {
|
switch(original.mode<1>()) {
|
||||||
default: return original;
|
default: return original;
|
||||||
|
|
||||||
|
@ -112,6 +112,10 @@ template <int index> NSString *operand(Preinstruction instruction) {
|
|||||||
case Operation::SUBXw: instruction = @"SUBX.w"; break;
|
case Operation::SUBXw: instruction = @"SUBX.w"; break;
|
||||||
case Operation::SUBXl: instruction = @"SUBX.l"; break;
|
case Operation::SUBXl: instruction = @"SUBX.l"; break;
|
||||||
|
|
||||||
|
case Operation::MOVEb: instruction = @"MOVE.b"; break;
|
||||||
|
case Operation::MOVEw: instruction = @"MOVE.w"; break;
|
||||||
|
case Operation::MOVEl: instruction = @"MOVE.l"; break;
|
||||||
|
|
||||||
// For now, skip any unmapped operations.
|
// For now, skip any unmapped operations.
|
||||||
default: continue;
|
default: continue;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user