mirror of
https://github.com/TomHarte/CLK.git
synced 2024-07-09 06:29:33 +00:00
Attempt better to avoid entering a second instruction.
This commit is contained in:
parent
1b87626b82
commit
1bf7c0ae5f
@ -222,6 +222,8 @@ struct TestProcessor: public CPU::MC68000Mk2::BusHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (void)testOperationClassic:(NSDictionary *)test name:(NSString *)name {
|
- (void)testOperationClassic:(NSDictionary *)test name:(NSString *)name {
|
||||||
|
struct TerminateMarker {};
|
||||||
|
|
||||||
auto uniqueTest68000 = std::make_unique<TestProcessor>(_ram.data());
|
auto uniqueTest68000 = std::make_unique<TestProcessor>(_ram.data());
|
||||||
auto test68000 = uniqueTest68000.get();
|
auto test68000 = uniqueTest68000.get();
|
||||||
|
|
||||||
@ -296,9 +298,14 @@ struct TestProcessor: public CPU::MC68000Mk2::BusHandler {
|
|||||||
if([_failures containsObject:name]) {
|
if([_failures containsObject:name]) {
|
||||||
[_failingOpcodes addObject:@((test68000->ram[0x101] << 8) | test68000->ram[0x100])];
|
[_failingOpcodes addObject:@((test68000->ram[0x101] << 8) | test68000->ram[0x100])];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Make sure nothing further occurs; keep this test isolated.
|
||||||
|
throw TerminateMarker();
|
||||||
};
|
};
|
||||||
|
|
||||||
test68000->run_for_instructions(1, comparitor);
|
try {
|
||||||
|
test68000->run_for_instructions(1, comparitor);
|
||||||
|
} catch(TerminateMarker m) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setInitialState:(NSDictionary *)test {
|
- (void)setInitialState:(NSDictionary *)test {
|
||||||
|
Loading…
Reference in New Issue
Block a user