Introduction (part of MoU) This project intends to extend and improve the PPC assembly/disassembly so that the the assembly and diassembly are generated automatically based on the human-readable specification. The overall idea is that the human-readable specification for PPC and SVP64 assembly and disassembly is converted into C code. The code must be generated in a framework-independent way so that it can be reused by Libre-SOC and other projects, most importantly binutils. We intend to complete the goal set by Libre-SOC project and fill the gaps currently missing. ---- Task list --------- # libopid: SVP64 support libopid currently supports major parts of vanilla PPC assembly and disassembly (at least pure 32-bit instructions we currently have enumerated in openpower-isa repository). When we have everything autogenerated, it's time to make libopid support SVP64 instructions as well. Budget: 7500 URL: https://bugs.libre-soc.org/show_bug.cgi?id=1200 --------- # binutils: switch PPC code to libopid binutils code base has its own implementation for PPC SVP64 extensions support. This leads to code duplication, inability to follow the specs and complicates the maintenance. Instead of code duplication, we suggest to switch to libopid, C library, once SVP64 support is completed. Budget: 7500 URL: https://bugs.libre-soc.org/show_bug.cgi?id=1201 --------- # insndb: introduce human-readable fields format Currently we hard-code all possible specifications and field mappings. It's difficult to manage these and keep them in sync with the documentation. We must introduce some format to generate the documentation and the code instead. Budget: 12500 URL: https://bugs.libre-soc.org/show_bug.cgi?id=1199 --------- # maintenance: decouple insndb and libopid Currently insndb and libopid are parts of our openpower-isa repository. However, this is inconvenient for other projects which will rely on these tools (most notably binutils). Plus, keeping these into openpower-isa makes no sense once we support RISC-V architecture. The task is complicated by the fact that libopid and insndb make use of other openpower-isa components; each of these uses must be addressed separately. Budget: 5000 URL: https://bugs.libre-soc.org/show_bug.cgi?id=1202 --------- # tests: cross-check PPC Simple-V assembly between binutils and insndb We don't have tests for binutils which check the most essential SVP64. At least assembly and disassembly as present in openpower-isa tests must be covered. Budget: 7500 URL: https://bugs.libre-soc.org/show_bug.cgi?id=1203 --------- # insndb: support PPC instruction aliases insndb currently lacks support for instruction aliases. At least the instructions mentioned as aliases for vanilla PPC must be supported so that both our code and binutils can make use of it. Budget: 4000 URL: https://bugs.libre-soc.org/show_bug.cgi?id=1140 --------- # administrative activities Any task includes activities related to issue tracking and monitoring. This includes not only organizing the tasks, but also providing comments to all subtasks, participating in dicussions, budget synchronization and similar activities which rather fit the main task than any of the standalone subtasks. Budget: 3000 URL: https://bugs.libre-soc.org/show_bug.cgi?id=1257 --------- # documentation, conferences and papers Participation in conferences and other public events, submitting papers and articles, and other activities of that kind. Budget: 3000 URL: https://bugs.libre-soc.org/show_bug.cgi?id=1258