1
0
mirror of https://github.com/TomHarte/CLK.git synced 2025-01-11 08:30:55 +00:00

Translate BSET.

This commit is contained in:
Thomas Harte 2022-04-24 19:58:10 -04:00
parent 4f4a2e6d92
commit 03caa53863

View File

@ -246,13 +246,15 @@ template <uint8_t op> uint32_t Predecoder<model>::invalid_operands() {
Quick
>::value;
case OpT(Operation::BCHG): case OpT(Operation::BCLR):
case OpT(Operation::BCHG):
case OpT(Operation::BCLR):
case OpT(Operation::BSET):
return ~TwoOperandMask<
Dn,
AlterableAddressingModesNoAn
>::value;
case BCHGI: case BCLRI:
case BCHGI: case BCLRI: case BSETI:
return ~TwoOperandMask<
Imm,
AlterableAddressingModesNoAn
@ -294,6 +296,7 @@ template <uint8_t op, bool validate> Preinstruction Predecoder<model>::validated
case OpT(Operation::Bccb): case OpT(Operation::Bccw): case OpT(Operation::Bccl):
case OpT(Operation::BCHG): case BCHGI:
case OpT(Operation::BCLR): case BCLRI:
case OpT(Operation::BSET): case BSETI:
case OpT(Operation::NBCD): {
const auto invalid = invalid_operands<op>();
const auto observed = operand_mask(original);
@ -477,8 +480,6 @@ template <uint8_t op, bool validate> Preinstruction Predecoder<model>::validated
return Preinstruction();
}
// ADDA, SUBA.
// case OpT(Operation::ADDAw): case OpT(Operation::ADDAl):
case OpT(Operation::SUBAw): case OpT(Operation::SUBAl):
switch(original.mode<0>()) {
default: break;
@ -519,18 +520,6 @@ template <uint8_t op, bool validate> Preinstruction Predecoder<model>::validated
return Preinstruction();
}
case OpT(Operation::BSET): case BSETI:
switch(original.mode<1>()) {
default: return original;
case AddressingMode::None:
case AddressingMode::AddressRegisterDirect:
case AddressingMode::ProgramCounterIndirectWithDisplacement:
case AddressingMode::ProgramCounterIndirectWithIndex8bitDisplacement:
case AddressingMode::ImmediateData:
return Preinstruction();
}
case BTSTI:
switch(original.mode<1>()) {
default: return original;