[Libre-soc-isa] [Bug 610] New: renumber FP regs as pairs for ELFv2 ABI compliance

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Thu Mar 4 22:40:55 GMT 2021


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

            Bug ID: 610
           Summary: renumber FP regs as pairs for ELFv2 ABI compliance
           Product: Libre-SOC's first SoC
           Version: unspecified
          Hardware: PC
                OS: Other
            Status: CONFIRMED
          Severity: enhancement
          Priority: ---
         Component: Specification
          Assignee: lkcl at lkcl.net
          Reporter: oliva at libre-soc.org
                CC: libre-soc-isa at lists.libre-soc.org
   NLnet milestone: ---

Since the ELFv2 ABI requires 128-bit VSX registers, and we don't want to
implement VSX, I thought we could group our own 64-bit registers in pairs, each
equivalent to a single VSX register, so that we could comply with the calling
conventions without software emulation of VSX opcodes and registers.

We could accomplish this by shifting our FP register numbers by one bit, so
that only the even-numbered ones would be directly accessible/nameable. 
Getting to the odd-numbered ones would require vectors, which is not unlike
other recent changes that made only registers multiple of certain powers of two
directly nameable.

We'd go from 128 separate 64-bit FP registers to 64 pairs of 64-bit FP
registers, which could pave the way for future extensions that would use the
pairs as a single float128 register.

This amounts to a very tiny actual change to the implementation, that is mainly
a different way of looking at our FP regs so as to avoid a huge performance
penalty we'd incur in ELFv2 VSX emulation.

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


More information about the Libre-SOC-ISA mailing list