1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-10-05 08:55:36 +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. /// will not necessarily take effect immediately when signalled.
void run_for_instructions(int); 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: private:
BusHandler &bus_handler_; BusHandler &bus_handler_;
Predecoder<model> decoder_; 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(); sbcd();
} break; } break;
#undef sbcd
// EXG and SWAP exchange/swap words or long words. // EXG and SWAP exchange/swap words or long words.
case Operation::EXG: { case Operation::EXG: {
@ -1182,7 +1184,7 @@ template <
#undef set_flags_w #undef set_flags_w
#undef set_flags_l #undef set_flags_l
#undef set_neg_zero_overflow #undef set_neg_zero_overflow
#undef set_net_zero #undef set_neg_zero
/* /*
RTE and RTR share an implementation. RTE and RTR share an implementation.