1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-26 23:52:26 +00:00

Corrects decoding of AND/OR x, Dn.

This commit is contained in:
Thomas Harte 2019-04-25 14:19:13 -04:00
parent ea463549c7
commit 4e25bcfcdc

View File

@ -894,8 +894,8 @@ struct ProcessorStorageConstructor {
case l(PreDec): // [AND/OR/EOR].l Dn, -(An)
op(int(Action::Decrement4) | MicroOp::DestinationMask, seq("n"));
case l(Ind): // [AND/OR/EOR].l Dn, (An)+
case l(PostInc): // [AND/OR/EOR].l Dn, (An)
case l(Ind): // [AND/OR/EOR].l Dn, (An)
case l(PostInc): // [AND/OR/EOR].l Dn, (An)+
op(int(Action::CopyToEffectiveAddress) | MicroOp::DestinationMask, seq("nRd+ nrd", { ea(1), ea(1) }));
op(Action::PerformOperation, seq("np nw- nW", { ea(1), ea(1) }));
if(mode == PostInc) {
@ -936,7 +936,7 @@ struct ProcessorStorageConstructor {
storage_.instructions[instruction].set_source(storage_, ea_mode, ea_register);
storage_.instructions[instruction].set_destination(storage_, Dn, data_register);
switch(mode) {
switch(is_long_word_access ? l(mode) : bw(mode)) {
default: continue;
case bw(Dn): // [AND/OR].bw Dn, Dn