mirror of
https://github.com/TomHarte/CLK.git
synced 2025-08-13 00:25:26 +00:00
Translate BSET.
This commit is contained in:
@@ -246,13 +246,15 @@ template <uint8_t op> uint32_t Predecoder<model>::invalid_operands() {
|
|||||||
Quick
|
Quick
|
||||||
>::value;
|
>::value;
|
||||||
|
|
||||||
case OpT(Operation::BCHG): case OpT(Operation::BCLR):
|
case OpT(Operation::BCHG):
|
||||||
|
case OpT(Operation::BCLR):
|
||||||
|
case OpT(Operation::BSET):
|
||||||
return ~TwoOperandMask<
|
return ~TwoOperandMask<
|
||||||
Dn,
|
Dn,
|
||||||
AlterableAddressingModesNoAn
|
AlterableAddressingModesNoAn
|
||||||
>::value;
|
>::value;
|
||||||
|
|
||||||
case BCHGI: case BCLRI:
|
case BCHGI: case BCLRI: case BSETI:
|
||||||
return ~TwoOperandMask<
|
return ~TwoOperandMask<
|
||||||
Imm,
|
Imm,
|
||||||
AlterableAddressingModesNoAn
|
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::Bccb): case OpT(Operation::Bccw): case OpT(Operation::Bccl):
|
||||||
case OpT(Operation::BCHG): case BCHGI:
|
case OpT(Operation::BCHG): case BCHGI:
|
||||||
case OpT(Operation::BCLR): case BCLRI:
|
case OpT(Operation::BCLR): case BCLRI:
|
||||||
|
case OpT(Operation::BSET): case BSETI:
|
||||||
case OpT(Operation::NBCD): {
|
case OpT(Operation::NBCD): {
|
||||||
const auto invalid = invalid_operands<op>();
|
const auto invalid = invalid_operands<op>();
|
||||||
const auto observed = operand_mask(original);
|
const auto observed = operand_mask(original);
|
||||||
@@ -477,8 +480,6 @@ template <uint8_t op, bool validate> Preinstruction Predecoder<model>::validated
|
|||||||
return Preinstruction();
|
return Preinstruction();
|
||||||
}
|
}
|
||||||
|
|
||||||
// ADDA, SUBA.
|
|
||||||
// case OpT(Operation::ADDAw): case OpT(Operation::ADDAl):
|
|
||||||
case OpT(Operation::SUBAw): case OpT(Operation::SUBAl):
|
case OpT(Operation::SUBAw): case OpT(Operation::SUBAl):
|
||||||
switch(original.mode<0>()) {
|
switch(original.mode<0>()) {
|
||||||
default: break;
|
default: break;
|
||||||
@@ -519,18 +520,6 @@ template <uint8_t op, bool validate> Preinstruction Predecoder<model>::validated
|
|||||||
return Preinstruction();
|
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:
|
case BTSTI:
|
||||||
switch(original.mode<1>()) {
|
switch(original.mode<1>()) {
|
||||||
default: return original;
|
default: return original;
|
||||||
|
Reference in New Issue
Block a user