[Libre-soc-isa] [Bug 766] New: Justify log2 addition as helper for pseudo-code

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Tue Jan 18 07:59:24 GMT 2022


            Bug ID: 766
           Summary: Justify log2 addition as helper for pseudo-code
           Product: Libre-SOC's first SoC
           Version: unspecified
          Hardware: Other
                OS: Linux
            Status: CONFIRMED
          Severity: enhancement
          Priority: ---
         Component: Specification
          Assignee: lkcl at lkcl.net
          Reporter: programmerjake at gmail.com
                CC: libre-soc-isa at lists.libre-soc.org
   NLnet milestone: ---

log2 is needed by a large group of instructions: shifts, rotates, grev, all
others that address individual bits in an XLEN-sized word.


Example of expected semantics:
we need to extract a log2(XLEN)-bit wide uint from the LSB end of RB, and shift
by that uint (remember RA and RB are XLEN-bit wide and MSB0 bit numbering is
8-bit shift: RA << RB[8-log2(8):8-1]
16-bit shift: RA << RB[16-log2(16):16-1]
32-bit shift: RA << RB[32-log2(32):32-1]
64-bit shift: RA << RB[64-log2(64):64-1]

similarly for grev, rotate, etc.

if we require log2 to only be used in pseudo-code where its results are always
integers (so the inputs are powers of 2), then it should be entirely
unambiguous when used. it greatly improves pseudo-code clarity over writing out
a log2 definition by hand each place we want to use log2.

imho that should be sufficient justification for its inclusion.

I don't think a separate RFC is necessary, we would just include log2 in
whatever RFC we're writing that uses log2, e.g. we'd just include log2 in the
XLEN-ification RFC.

Because I think we should just include it in some other RFC, rather than have a
whole RFC dedicated to log2, I think trying to rewrite our existing pseudo-code
to remove all references to log2 is counterproductive -- we'd just include log2
in whatever RFCs include its uses in our current pseudo-code in

You are receiving this mail because:
You are on the CC list for the bug.

More information about the Libre-SOC-ISA mailing list