Bug 1150 - implement PO9 changeover and associated tasks
Summary: implement PO9 changeover and associated tasks
Status: CONFIRMED
Alias: None
Product: Libre-SOC's first SoC
Classification: Unclassified
Component: Source Code (show other bugs)
Version: unspecified
Hardware: Other Linux
: --- enhancement
Assignee: Luke Kenneth Casson Leighton
URL:
Depends on:
Blocks:
 
Reported: 2023-09-03 10:47 BST by Luke Kenneth Casson Leighton
Modified: 2024-03-12 17:30 GMT (History)
4 users (show)

See Also:
NLnet milestone: NLnet.2022-08-107.ongoing
total budget (EUR) for completion of task and all subtasks: 10000
budget (EUR) for this task, excluding subtasks' budget: 10000
parent task for budget allocation: 961
child tasks for budget allocation:
The table of payments (in EUR) for this task; TOML format:
jacob=2000 lkcl=4000 ghostmansd=4000


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Luke Kenneth Casson Leighton 2023-09-03 10:47:10 BST
As part of bug #952 - the NLnet 2022 OPF ISA WG Grant 2022-08-051 -
it was established that PO9 is a candidate for use by SVP64 instead
of shoe-horning into PO1.  That now needs to be implemented
along-side its knock-on implications in ISACaller, the insndb, and
binutils. Additionally there are some instructions easy to implement
(LD/ST-post-update) that are beneficial to performance, that again
came out of the OPF RFC Feedback process.

---

* removing use of PO1 and replacing with PO9
* creating EXT200-263 under PO9
* moving all LD/ST-post-update to EXT200-263, with their exact
 respective *pre-update* EXT000-063 encodings
 (example: lhz is EXT040, therefore lhzp *is* EXT240, no
  arguing, no question: it just *is*)
* freeing up the LDST_IMM SVP64 "post-update" bit and allocating
 it instead to Vector-Immediate (with elwidths on VIs)
* using the reserved Normal/Arithmetic mode also for VI
* bug #1047 finishing LDST-EXTRA-322

involves:

* specification writing and checking
* insndb updating (two ways: PO9 itself *and* the new EXT2xx
* a new PowerDecoder (for EXT2xx)
* test_caller* unit tests
* writing the LD/ST-post-update mdwn files (Nicholas, new member)
* ISACaller updates
* binutils updates (to SVP64 as well as a new EXT2xx area)
Comment 1 Luke Kenneth Casson Leighton 2024-03-12 17:25:26 GMT
this is the table that needs to record what goes in
the new EXT200-263, what goes in PO5, what in PO22

https://libre-soc.org/openpower/sv/draft_opcode_tables/