execute1: Restructure to separate out execution of side effects
authorPaul Mackerras <paulus@ozlabs.org>
Sat, 18 Jun 2022 06:24:30 +0000 (16:24 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Fri, 22 Jul 2022 02:10:06 +0000 (12:10 +1000)
commit813e2317bf1f1c10d988f660c0a4282da316a3b9
tree54b14ca5cbeb5896d9d11981e64401577a97b62c
parent204fedc63f7831e35cea09688b6e5249de8938da
execute1: Restructure to separate out execution of side effects

We now have a record that represents the actions taken in executing an
instruction, and a process that computes that for the incoming
instruction.  We no longer have 'current' or 'r.cur_instr', instead
things like the destination register are put into r.e in the first
cycle of an instruction and not reinitialized in subsequent busy
cycles.

For mfspr and mtspr, we now decode "slow" SPR numbers (those SPRs that
are not stored in the register file) to a new "spr_selector" record
in decode1 (excluding those in the loadstore unit).  With this, the
result for mfspr is determined in the data path.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
common.vhdl
cr_file.vhdl
decode1.vhdl
decode2.vhdl
execute1.vhdl