[Libre-soc-isa] [Bug 1161] New: PowerDecoder2 and insndb disagree on scalar EXTRA2 register encoding for >=r32

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Fri Sep 15 04:09:48 BST 2023


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

            Bug ID: 1161
           Summary: PowerDecoder2 and insndb disagree on scalar EXTRA2
                    register encoding for >=r32
           Product: Libre-SOC's first SoC
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: CONFIRMED
          Severity: critical
          Priority: ---
         Component: Specification
          Assignee: programmerjake at gmail.com
          Reporter: programmerjake at gmail.com
                CC: ghostmansd at gmail.com,
                    libre-soc-isa at lists.libre-soc.org, lkcl at lkcl.net,
                    programmerjake at gmail.com
            Blocks: 1044
   NLnet milestone: ---

The originally intended encoding is the tables:
https://git.libre-soc.org/?p=libreriscv.git;a=blob;f=openpower/sv/svp64.mdwn;h=c623c123a6b544bf01c863d822d36e0bd1c3fc63;hb=9e64850d9de905e3d785b9e2d8a5cec60c0ec439#l1241

note in particular that scalar EXTRA2 is supposed to be able to address every
register from r0 to r63 (vector is every even register from r0 to r126)

The algorithm in the wiki:
https://git.libre-soc.org/?p=libreriscv.git;a=blob;f=openpower/sv/svp64.mdwn;h=c623c123a6b544bf01c863d822d36e0bd1c3fc63;hb=9e64850d9de905e3d785b9e2d8a5cec60c0ec439#l1195
is incorrect afaict, because it addresses registers r0-31 and r64-95, instead
of r0-63.

PowerDecoder2 and/or insndb need to be fixed since it's based on the algorithm
rather than the tables (TBD which).

I discovered this by running:
sv.maddedu *4, *32, 36, 8
and was confused by why it kept reading RB from register 68 not 36

insndb generates the encoding:
printf "\x00\x29\x40\x05\x32\x22\x28\x10" | pysvp64dis


Referenced Bugs:

https://bugs.libre-soc.org/show_bug.cgi?id=1044
[Bug 1044] SVP64 implementation of pow(x,y,z)
-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Libre-SOC-ISA mailing list