1
0
mirror of https://github.com/TomHarte/CLK.git synced 2025-01-18 23:29:49 +00:00

Fix LEA, proceed to non-functional LINK and UNLK.

This commit is contained in:
Thomas Harte 2022-05-03 20:45:36 -04:00
parent de58ec71fd
commit d3b55a74a5
2 changed files with 15 additions and 6 deletions

View File

@ -262,7 +262,7 @@ template <Model model, Operation t_operation = Operation::Undefined> uint8_t ope
// No operands are fetched or stored. // No operands are fetched or stored.
// (which means that source and destination will appear as their effective addresses) // (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: case Operation::JMP: case Operation::JSR:
return 0; return 0;
@ -337,9 +337,6 @@ template <Model model, Operation t_operation = Operation::Undefined> uint8_t ope
case Operation::MULU: case Operation::MULS: case Operation::MULU: case Operation::MULS:
return FetchOp1 | FetchOp2 | StoreOp2; return FetchOp1 | FetchOp2 | StoreOp2;
// case Operation::MOVEMw:
// case Operation::MOVEMl:
// //
// Two-operand; read both, write source. // Two-operand; read both, write source.
// //
@ -351,6 +348,12 @@ template <Model model, Operation t_operation = Operation::Undefined> uint8_t ope
// //
case Operation::EXG: case Operation::EXG:
return FetchOp1 | FetchOp2 | StoreOp1 | StoreOp2; return FetchOp1 | FetchOp2 | StoreOp1 | StoreOp2;
//
// Two-operand; just write destination.
//
case Operation::LEA:
return StoreOp2;
} }
} }

View File

@ -39,6 +39,7 @@
// cmp // cmp
// dbcc_scc // dbcc_scc
// eori_andi_ori // eori_andi_ori
// lea
// Skipped for now, for implying a more granular decoder: // Skipped for now, for implying a more granular decoder:
// //
@ -50,11 +51,16 @@
// divu_divs // divu_divs
// eor_and_or (which invokes BCD) // eor_and_or (which invokes BCD)
// exg (also BCD) // exg (also BCD)
// chk
//
// And because possibly my old CHK is pushing the wrong program counter?
//
// ext.json
- (void)setUp { - (void)setUp {
// To limit tests run to a subset of files and/or of tests, uncomment and fill in below. // 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"]]; _fileSet = [NSSet setWithArray:@[@"link_unlk.json"]];
_testSet = [NSSet setWithArray:@[@"EXT/EXTB 0031"]]; // _testSet = [NSSet setWithArray:@[@"EXT/EXTB 0031"]];
// _fileSet = [NSSet setWithArray:@[@"jmp_jsr.json"]]; // _fileSet = [NSSet setWithArray:@[@"jmp_jsr.json"]];
// _testSet = [NSSet setWithArray:@[@"CHK 41a8"]]; // _testSet = [NSSet setWithArray:@[@"CHK 41a8"]];
} }