Bug 592

Summary: no ABIs available for A2O, A2I, Microwatt or LibreSOC
Product: Libre-SOC's first SoC Reporter: Luke Kenneth Casson Leighton <lkcl>
Component: SpecificationAssignee: Luke Kenneth Casson Leighton <lkcl>
Status: RESOLVED INVALID    
Severity: blocker CC: libre-soc-isa, programmerjake
Priority: Highest    
Version: unspecified   
Hardware: Other   
OS: Linux   
See Also: https://bugs.libre-soc.org/show_bug.cgi?id=983
NLnet milestone: --- total budget (EUR) for completion of task and all subtasks: 0
budget (EUR) for this task, excluding subtasks' budget: 0 parent task for budget allocation:
child tasks for budget allocation: The table of payments (in EUR) for this task; TOML format:

Description Luke Kenneth Casson Leighton 2021-02-08 07:51:47 GMT
this looks perfect:
https://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html

no VSX.


https://openpowerfoundation.org/?resource_lib=64-bit-elf-v2-abi-specification-power-architecture

this is where it goes awry.

whilst the Compliancy Levels make VSX entirely optional, even at the Embedded FP level, it's the V2 ABI which forces VSX.
Comment 1 Luke Kenneth Casson Leighton 2021-02-08 07:58:03 GMT
http://lists.mailinglist.openpowerfoundation.org/pipermail/syssw-elfv2abi/
Comment 2 Luke Kenneth Casson Leighton 2021-02-08 08:02:20 GMT
http://lists.mailinglist.openpowerfoundation.org/pipermail/syssw-elfv2abi/2018-December/000014.html

found contact details for bill schmidtt
Comment 4 Jacob Lifshay 2021-02-08 15:05:21 GMT
if we can, we should try to use the v2 abi without altivec since it also has many other improvements.

*vsx is actually a misnomer when applied to powerpc's SIMD support in general*, it refers specifically to the new vector-scalar interop instructions added in POWER9 (or 8? icr), not to SIMD in general, we should use either altivec or SIMD as terms that people will recognize otherwise we may get software support for SIMD without vsx -- not the intended endpoint.
Comment 5 Jacob Lifshay 2021-02-08 15:38:42 GMT
(In reply to Jacob Lifshay from comment #4)
> if we can, we should try to use the v2 abi without altivec since it also has
> many other improvements.
> 
> *vsx is actually a misnomer when applied to powerpc's SIMD support in
> general*, it refers specifically to the new vector-scalar interop
> instructions added in POWER9 (or 8? icr), not to SIMD in general, we should
> use either altivec or SIMD as terms that people will recognize otherwise we
> may get software support for SIMD without vsx -- not the intended endpoint.

vmx is also an acceptable term for altivec:
https://en.wikipedia.org/wiki/AltiVec
Comment 7 Luke Kenneth Casson Leighton 2021-02-12 18:01:37 GMT
https://gcc.gnu.org/legacy-ml/gcc/2015-11/msg00068.html
Comment 8 Luke Kenneth Casson Leighton 2021-02-12 22:02:04 GMT
good example
https://patches-gcc.linaro.org/patch/4834/
Comment 9 Luke Kenneth Casson Leighton 2023-09-05 05:20:14 BST
this turns out not to be true (many thanks to steve, author of pveclib)
there *is* an ABI, it is currently v2.0 soon to be v2.1, and VSX
*is* optional, as are many other things that suit SFFS and SFS
perfectly fine.

steve kindly explained to me that going back to v1.4 for example
would be a serious mistake, as there were a *lot* of issues fixed.
it also turns out to be straightforward to pass
the options to today's gcc to get it to disable
VSX and 128-bit FP: https://bugs.libre-soc.org/show_bug.cgi?id=1131#c1