Add sc, illegal and decrementer exceptions and some supervisor state
authorMichael Neuling <mikey@neuling.org>
Tue, 31 Mar 2020 06:32:09 +0000 (17:32 +1100)
committerMichael Neuling <mikey@neuling.org>
Wed, 1 Apr 2020 01:02:33 +0000 (12:02 +1100)
commit5ef5604b65f612ca4b5e3e945e3ceb3ed273bf28
tree44f132898403149c2686482d23498a856acf84ee
parent594a19de37f136d443d8b7d2308d12cce5fb0ae5
Add sc, illegal and decrementer exceptions and some supervisor state

This adds the following exceptions:
 - 0x700 program check (for illegal instructions)
 - 0x900 decrementer
 - 0xc00 system call

This also adds some supervisor state:
 - decremeter
 - msr
(SPRG0/1 and SRR0/1 already exist as fast SPRs)

It also adds some supporting instructions:
 - rfid
 - mtmsrd
 - mfmsr
 - sc

MSR state is added but only EE is used in this patch set. Other bits
are read/written but are not used at all.

This adds a 2 stage state machine to execute1.vhdl. This state machine
allows fast SPRS SRR0/1 to be written in different cycles. This state
machine can be extended later to add DAR and DSISR SPR writing for
more complex exceptions like page faults.

Signed-off-by: Michael Neuling <mikey@neuling.org>
common.vhdl
decode1.vhdl
decode_types.vhdl
execute1.vhdl