Skip site navigation (1)Skip section navigation (2)
In-Reply-To: <ZlxZn5IQuQ-zqbwl@fuz.su>

| previous in thread | raw e-mail | index | archive | help
On 6/2/24 08:38, Robert Clausecker wrote:
> Greetings!
> 
> I'm currently working on two projects that require the Zbb
> instruction set extension on riscv64:
> 
>   - strajabot@ is a gsoc student who is currently porting the
>     SIMD-enhanced libc string functions from amd64 to riscv64.
>     For these, Zbb is immensely useful as it provides the
>     CTZ and ORC.B instructions needed for fast string comparison
> 
>   - I'm trying to write a fast sha1 implementation for libmd,
>     which (you might have guessed it) requires Zbb for rotate
>     instructions.  Not having these is possible here, but there
>     is a significant performance penalty.
> 
> Zbb is supported by the SiFive unmatched board for example.
> 
> I originally wanted to just write an ifunc dispatcher that
> checks for the presence off Zbb and then picks an appropriate
> implementation, but then noticed that AT_HWCAP currently only
> supports the detection of capital letter extensions.
> 

Hi Robert,

It should not be much work to start parsing for Zbb or similar 
extensions, so I can take this on soon. I mainly need to see what Linux 
is doing these days w.r.t. reporting multi-letter extensions to userspace.

> Furthermore, we do not give user space any access to the isa
> string (a sysctl like hw.isa would be nice), so it's not even
> possible to determine the availability manually.
> 
> Please check if you can add a sysctl to get the ISA string and
> possibly add an elf_aux_info extension to allow the user to find
> out which Z extensions are present.

This is good feedback; possible a little more annoying to implement than 
it would seem, but I'll consider this too.

Cheers,
Mitchell

> 
> We are working with 15-CURRENT, so if it's there it'll suffice
> for our needs.
> 
> Yours,
> Robert Clausecker
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?>