[Libre-soc-bugs] [Bug 785] New: Implement gfb* instructions for GF(2^n) instructions

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Mon Mar 21 03:02:40 GMT 2022


https://bugs.libre-soc.org/show_bug.cgi?id=785

            Bug ID: 785
           Summary: Implement gfb* instructions for GF(2^n) instructions
           Product: Libre-SOC's second ASIC
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: CONFIRMED
          Severity: enhancement
          Priority: ---
         Component: source code
          Assignee: programmerjake at gmail.com
          Reporter: programmerjake at gmail.com
                CC: libre-soc-bugs at lists.libre-soc.org,
                    programmerjake at gmail.com
        Depends on: 784
            Blocks: 782
   NLnet milestone: NLnet.2021.02A.CryptoRouter
    parent task for 782
 budget allocation:

Instructions:
* gfbredpoly # sets reducing polynomial SPR `GFBREDPOLY`
    unless this is an immediate op, mtspr is completely sufficient.
* gfbmul RT, RA, RB
* gfbmadd RT, RA, RB, RC
* gfbtmadd twin for fft
* gfbinv rt, ra
    input 0 gives result 0 even though that is division by zero,
    that's what's needed for AES.

Steps (edit as needed):
* TODO: Instruction Encodings
* TODO: MSR bit to be reserved to indicate Poly SPR in use
  (avoids need to save Poly SPR on contextswitch)
* basic adaptable modules (probably in nmutil)
  * TODO: module in nmutil
  * TODO: unit test
  * TODO: formal
* TODO: add encoding of gfb* to SVP64Asm class (as a 32bit op)
* TODO: add gfb* to TBD pipe(s)
* TODO: fu unit tests
* TODO: fu formal


Referenced Bugs:

https://bugs.libre-soc.org/show_bug.cgi?id=782
[Bug 782] add galois field bitmanip instructions
https://bugs.libre-soc.org/show_bug.cgi?id=784
[Bug 784] Implement cl* instructions for carry-less operations
-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list