1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-19 08:31:11 +00:00

Add a clear, in the hope of not recreating Memory every test.

It's a big allocation, and therefore likely the bottleneck on test running.
This commit is contained in:
Thomas Harte 2023-10-07 13:39:23 -04:00
parent 5c62606154
commit ade5828035

View File

@ -98,6 +98,10 @@ struct Memory {
memory.resize(1024*1024);
}
void clear() {
tags.clear();
}
// Entry point used by the flow controller so that it can mark up locations at which the flags were written,
// so that defined-flag-only masks can be applied while verifying RAM contents.
template <typename IntT> IntT &access([[maybe_unused]] InstructionSet::x86::Source segment, uint16_t address, Tag tag) {
@ -360,8 +364,6 @@ class FlowController {
[self populate:registers status:initial_status value:initial_state[@"regs"]];
status = initial_status;
NSLog(@"Initial status: %04x as per %@", status.get(), initial_state[@"regs"][@"flags"]);
// Execute instruction.
registers.ip_ += decoded.first;
InstructionSet::x86::perform<InstructionSet::x86::Model::i8086>(