mirror of
https://github.com/TomHarte/CLK.git
synced 2024-07-06 01:28:57 +00:00
Implements a missing form of BTST.
This commit is contained in:
parent
d9278e9827
commit
412f091d76
@ -1739,6 +1739,9 @@ struct ProcessorStorageConstructor {
|
|||||||
op(Action::PerformOperation, is_bclr ? seq("nw", { a(ea_register) }, false) : nullptr);
|
op(Action::PerformOperation, is_bclr ? seq("nw", { a(ea_register) }, false) : nullptr);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case XXXl: // BTST.b Dn, (xxx).l
|
||||||
|
op(Action::None, seq("np"));
|
||||||
|
case XXXw: // BTST.b Dn, (xxx).w
|
||||||
case d16An: // BTST.b Dn, (d16, An)
|
case d16An: // BTST.b Dn, (d16, An)
|
||||||
case d8AnXn: // BTST.b Dn, (d8, An, Xn)
|
case d8AnXn: // BTST.b Dn, (d8, An, Xn)
|
||||||
case d16PC: // BTST.b Dn, (d16, PC)
|
case d16PC: // BTST.b Dn, (d16, PC)
|
||||||
@ -1746,17 +1749,17 @@ struct ProcessorStorageConstructor {
|
|||||||
// PC-relative addressing isn't support for BCLR.
|
// PC-relative addressing isn't support for BCLR.
|
||||||
if((mode == d16PC || mode == d8PCXn) && is_bclr) continue;
|
if((mode == d16PC || mode == d8PCXn) && is_bclr) continue;
|
||||||
|
|
||||||
op( calc_action_for_mode(mode) | MicroOp::DestinationMask,
|
op( address_action_for_mode(mode) | MicroOp::DestinationMask,
|
||||||
seq(pseq("np nrd np", mode), { ea(1) }, false));
|
seq(pseq("np nrd np", mode), { ea(1) }, false));
|
||||||
op(Action::PerformOperation, is_bclr ? seq("nw", { ea(1) }, false) : nullptr);
|
op(Action::PerformOperation, is_bclr ? seq("nw", { ea(1) }, false) : nullptr);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case XXXl: // BTST.b Dn, (xxx).l
|
case Imm: // BTST.b Dn, #
|
||||||
op(Action::None, seq("np"));
|
if(is_bclr) continue;
|
||||||
case XXXw: // BTST.b Dn, (xxx).w
|
|
||||||
op( address_assemble_for_mode(mode) | MicroOp::DestinationMask,
|
/* Yacht.txt doesn't cover this; this is a guess. */
|
||||||
seq("np nrd np", { ea(1) }, false));
|
op(int(Action::AssembleWordDataFromPrefetch) | MicroOp::DestinationMask, seq("np"));
|
||||||
op(Action::PerformOperation, is_bclr ? seq("nw", { ea(1) }, false) : nullptr);
|
op(Action::PerformOperation, seq("np"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
Loading…
Reference in New Issue
Block a user