subsets of decoded instructions are passed to function units. unfortunately the expansion of wires is vast. a solution involves passing the instruction to each pipeline and having the *FU* perform the decode... *at the FU*. to do this, decode2 should take the subset of fields to be decoded, rather than assuming that all fields should always be decoded. this can be done dynamically.
data structure for the static fields has been split out. registers etc remain in Decode1ToExecuteType. what is now needed is two things: 1. to be able to specify a row filter function on PowerDecoder. only the subset of instructions that pass the row filter are put into switch statements 2. a *column* filter that selects a subset of PowerOp, dynamically. the PowerOp subsetting is important to be able to cut down the amount of fields created in the main instruction decode phase. the most minimal subset needed would be the Function Unit (fn_unit). however there are other fields needed (register numbers particularly implicit SPRs when OP_B* are used) and also "privileged instruction detection" that mean it is not such a small subset. however specific fields such as the immediates, link register, update mode, sign extend etc, all of these can be decoded at the Function Unit as needed instead of globally in PowerDecode2. when doing so it ia not necessary to re-decode the SPR, RA, RB etc fields, hence the subsets.
*** Bug 454 has been marked as a duplicate of this bug. ***
commit 7d9479fcb2449363851ab690fc97d1940da88f36 (HEAD -> master, origin/master) Author: Luke Kenneth Casson Leighton <lkcl@lkcl.net> Date: Sun Sep 6 21:15:32 2020 +0100 pass col_subset throughout PowerDecoder commit bad13c4ad7027b200c498bb8398bc1a6e584da65 Author: Luke Kenneth Casson Leighton <lkcl@lkcl.net> Date: Sun Sep 6 20:59:48 2020 +0100 reorganise PowerOp to be dynamic commit ecdbe3dc7df2e5fc79ef419f52bf7e9ecc6ed77b Author: Luke Kenneth Casson Leighton <lkcl@lkcl.net> Date: Sun Sep 6 20:33:16 2020 +0100 reorg of PowerOp to be able to dynamically subset it
commit a42f84b31c3ac3733ac10201eb0a12680704dc49 (HEAD -> master) Author: Luke Kenneth Casson Leighton <lkcl@lkcl.net> Date: Sun Sep 6 21:42:51 2020 +0100 add row subset selector for PowerDecode. allows functions to be used to create subset decoders
commit dd54b3e59c048f447f158be1d4a62c50cbf903e0 (HEAD -> master, origin/master) Author: Luke Kenneth Casson Leighton <lkcl@lkcl.net> Date: Sun Sep 6 22:21:09 2020 +0100 decoder immediate b split out to DecodeBImm commit a9dfea89015c63c7cd4117789cf3f13b0f6acbcd Author: Luke Kenneth Casson Leighton <lkcl@lkcl.net> Date: Sun Sep 6 22:16:00 2020 +0100 decoder immediate a split out to DecodeAImm
commit ec3d17992123c7311892fe79b604ac030628d4ca (HEAD -> master, origin/master) Author: Luke Kenneth Casson Leighton <lkcl@lkcl.net> Date: Mon Sep 7 16:14:11 2020 +0100 split out PowerDecode2 into PowerDecodeSubset