Re:Git's list of banned C functions
by JoeAltmaier on Saturday March 06, 2021 @06:35PM
(#26371558)
Do they manage alignment? Say a source string starting at offset 3 inside a dword, to a destination at offset 1? That's the issue. Not just block copy of align register-sized memory.
Page fault is irrelevant. It already can happen in block copy instructions.
No, they don't provide alignment but they provide a way to write code once whatever the size of the implementation's vector registers.
As for block copy instruction AFAIK there's no such things in RISC-V for example.
Re:Git's list of banned C functions
by JoeAltmaier on Sunday March 07, 2021 @04:14PM
(#26379829)
So, no, they don't have anything like an arbitrary block copy that adjusts for alignment. Not surprising; nobody does. So we struggle in software, and have libraries with 11 bugs etc.
Uh, you're not an hardware designer and it shows.. What if there's a page fault during the copy, you handle it in the CPU? That said, have a look at RISC-V vectors instruction (not yet stable AFAIK) and ARM's SVE2: both should allow very efficient memcpy(among other things) much more easily than with current SIMD ISA.