mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-26 23:52:26 +00:00
Imports CMPI tests.
This commit is contained in:
parent
ac926f5070
commit
60df44f0ca
@ -560,6 +560,55 @@
|
|||||||
XCTAssertEqual(state.status & Flag::ConditionCodes, Flag::Zero);
|
XCTAssertEqual(state.status & Flag::ConditionCodes, Flag::Zero);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MARK: CMPI
|
||||||
|
|
||||||
|
- (void)testCMPIw {
|
||||||
|
_machine->set_program({
|
||||||
|
0x0c41, 0xffff // CMPI.W #$ffff, D1
|
||||||
|
});
|
||||||
|
auto state = _machine->get_processor_state();
|
||||||
|
state.data[1] = 0xfff2ffff;
|
||||||
|
|
||||||
|
_machine->set_processor_state(state);
|
||||||
|
_machine->run_for_instructions(1);
|
||||||
|
|
||||||
|
state = _machine->get_processor_state();
|
||||||
|
XCTAssertEqual(state.data[1], 0xfff2ffff);
|
||||||
|
XCTAssertEqual(state.status & Flag::ConditionCodes, Flag::Zero);
|
||||||
|
XCTAssertEqual(8, _machine->get_cycle_count());
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)testCMPIl {
|
||||||
|
_machine->set_program({
|
||||||
|
0x0c81, 0x8000, 0x0000 // CMPI.L #$80000000, D1
|
||||||
|
});
|
||||||
|
auto state = _machine->get_processor_state();
|
||||||
|
state.data[1] = 0x7fffffff;
|
||||||
|
|
||||||
|
_machine->set_processor_state(state);
|
||||||
|
_machine->run_for_instructions(1);
|
||||||
|
|
||||||
|
state = _machine->get_processor_state();
|
||||||
|
XCTAssertEqual(state.data[1], 0x7fffffff);
|
||||||
|
XCTAssertEqual(state.status & Flag::ConditionCodes, Flag::Negative | Flag::Overflow | Flag::Carry);
|
||||||
|
XCTAssertEqual(14, _machine->get_cycle_count());
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)testCMPIb {
|
||||||
|
_machine->set_program({
|
||||||
|
0x0c01, 0x0090 // CMPI.B #$90, D1
|
||||||
|
});
|
||||||
|
auto state = _machine->get_processor_state();
|
||||||
|
state.data[1] = 0x8f;
|
||||||
|
|
||||||
|
_machine->set_processor_state(state);
|
||||||
|
_machine->run_for_instructions(1);
|
||||||
|
|
||||||
|
state = _machine->get_processor_state();
|
||||||
|
XCTAssertEqual(state.data[1], 0x8f);
|
||||||
|
XCTAssertEqual(state.status & Flag::ConditionCodes, Flag::Negative | Flag::Carry);
|
||||||
|
XCTAssertEqual(8, _machine->get_cycle_count());
|
||||||
|
}
|
||||||
// MARK: CMPM
|
// MARK: CMPM
|
||||||
|
|
||||||
- (void)testCMPMl {
|
- (void)testCMPMl {
|
||||||
|
Loading…
Reference in New Issue
Block a user