mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-23 03:32:32 +00:00
Eliminated pointless abstraction; I ended up going indirect on instruction pages rather than scheduling methods.
This commit is contained in:
parent
d3b74cbc91
commit
b99e4210ba
@ -628,10 +628,6 @@ template <class T> class Processor: public MicroOpScheduler<MicroOp> {
|
|||||||
target.fetch_decode_execute[2] = fetch_decode_execute[2];
|
target.fetch_decode_execute[2] = fetch_decode_execute[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
void decode_operation(uint8_t operation) {
|
|
||||||
schedule_program(current_instruction_page_->instructions[operation]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Processor() : MicroOpScheduler(),
|
Processor() : MicroOpScheduler(),
|
||||||
halt_mask_(0xff),
|
halt_mask_(0xff),
|
||||||
@ -705,7 +701,7 @@ template <class T> class Processor: public MicroOpScheduler<MicroOp> {
|
|||||||
case MicroOp::DecodeOperation:
|
case MicroOp::DecodeOperation:
|
||||||
r_ = (r_ & 0x80) | ((r_ + current_instruction_page_->r_step_) & 0x7f);
|
r_ = (r_ & 0x80) | ((r_ + current_instruction_page_->r_step_) & 0x7f);
|
||||||
pc_.full++;
|
pc_.full++;
|
||||||
decode_operation(operation_ & halt_mask_);
|
schedule_program(current_instruction_page_->instructions[operation_ & halt_mask_]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MicroOp::Increment16: (*(uint16_t *)operation->source)++; break;
|
case MicroOp::Increment16: (*(uint16_t *)operation->source)++; break;
|
||||||
|
Loading…
Reference in New Issue
Block a user