Eliminate use of primary opcode outside of decode1
authorPaul Mackerras <paulus@ozlabs.org>
Thu, 28 Jul 2022 10:28:41 +0000 (20:28 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Tue, 9 Aug 2022 10:13:54 +0000 (20:13 +1000)
commit26dc1e879c0999c201657dee44ea40c0760e4517
treef4ab7d06a40a1430cf9acfa197d9418bee8cfacc
parentc9aea45ffe8188579fd1f4686a3d80bba29fa827
Eliminate use of primary opcode outside of decode1

This changes code that previously looked at the primary opcode (bits
26 to 31) of the instruction to use other methods, in places other
than in stage0 of decode1.

* Extend rc_t to have a new value, RCOE, indicating that the
  instruction has both Rc and OE bits.

* Decode2 now tells execute1 whether the instruction has a third
  operand, used for distinguishing between multiply and multiply-add
  instructions.

* The invert_a field of the decode ROM is overloaded for load/store
  instructions to indicate cache-inhibited loads and stores.

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