1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-07-07 08:28:57 +00:00

Proceed to building, but failing tests.

This commit is contained in:
Thomas Harte 2022-05-02 07:45:07 -04:00
parent 56fe00c5fb
commit 73f340586d
3 changed files with 29 additions and 1 deletions

View File

@ -37,6 +37,15 @@ template <Model model, typename BusHandler> class Executor {
/// will not necessarily take effect immediately when signalled.
void run_for_instructions(int);
// Flow control.
void consume_cycles(int) {}
void raise_exception(int);
void stop();
void set_pc(uint32_t);
void add_pc(uint32_t);
void decline_branch();
private:
BusHandler &bus_handler_;
Predecoder<model> decoder_;

View File

@ -277,6 +277,23 @@ void Executor<model, BusHandler>::run_for_instructions(int count) {
}
}
// TODO: flow control, all below here.
template <Model model, typename BusHandler>
void Executor<model, BusHandler>::raise_exception(int) {}
template <Model model, typename BusHandler>
void Executor<model, BusHandler>::stop() {}
template <Model model, typename BusHandler>
void Executor<model, BusHandler>::set_pc(uint32_t) {}
template <Model model, typename BusHandler>
void Executor<model, BusHandler>::add_pc(uint32_t) {}
template <Model model, typename BusHandler>
void Executor<model, BusHandler>::decline_branch() {}
}
}

View File

@ -905,6 +905,8 @@ template <
sbcd();
} break;
#undef sbcd
// EXG and SWAP exchange/swap words or long words.
case Operation::EXG: {
@ -1182,7 +1184,7 @@ template <
#undef set_flags_w
#undef set_flags_l
#undef set_neg_zero_overflow
#undef set_net_zero
#undef set_neg_zero
/*
RTE and RTR share an implementation.