diff --git a/InstructionSets/M68k/Instruction.hpp b/InstructionSets/M68k/Instruction.hpp index 19e16d4ed..f53f47ab4 100644 --- a/InstructionSets/M68k/Instruction.hpp +++ b/InstructionSets/M68k/Instruction.hpp @@ -262,7 +262,7 @@ template uint8_t ope // No operands are fetched or stored. // (which means that source and destination will appear as their effective addresses) // - case Operation::LEA: case Operation::PEA: + case Operation::PEA: case Operation::JMP: case Operation::JSR: return 0; @@ -337,9 +337,6 @@ template uint8_t ope case Operation::MULU: case Operation::MULS: return FetchOp1 | FetchOp2 | StoreOp2; -// case Operation::MOVEMw: -// case Operation::MOVEMl: - // // Two-operand; read both, write source. // @@ -351,6 +348,12 @@ template uint8_t ope // case Operation::EXG: return FetchOp1 | FetchOp2 | StoreOp1 | StoreOp2; + + // + // Two-operand; just write destination. + // + case Operation::LEA: + return StoreOp2; } } diff --git a/OSBindings/Mac/Clock SignalTests/68000ComparativeTests.mm b/OSBindings/Mac/Clock SignalTests/68000ComparativeTests.mm index bfef2bea4..b6c610fda 100644 --- a/OSBindings/Mac/Clock SignalTests/68000ComparativeTests.mm +++ b/OSBindings/Mac/Clock SignalTests/68000ComparativeTests.mm @@ -39,6 +39,7 @@ // cmp // dbcc_scc // eori_andi_ori +// lea // Skipped for now, for implying a more granular decoder: // @@ -50,11 +51,16 @@ // divu_divs // eor_and_or (which invokes BCD) // exg (also BCD) +// chk +// +// And because possibly my old CHK is pushing the wrong program counter? +// +// ext.json - (void)setUp { // To limit tests run to a subset of files and/or of tests, uncomment and fill in below. - _fileSet = [NSSet setWithArray:@[@"ext.json", @"jmp_jsr.json"]]; - _testSet = [NSSet setWithArray:@[@"EXT/EXTB 0031"]]; + _fileSet = [NSSet setWithArray:@[@"link_unlk.json"]]; +// _testSet = [NSSet setWithArray:@[@"EXT/EXTB 0031"]]; // _fileSet = [NSSet setWithArray:@[@"jmp_jsr.json"]]; // _testSet = [NSSet setWithArray:@[@"CHK 41a8"]]; }