risc-v: Enable vectorized memset via ifunc

Jeff Law jeffreyalaw@gmail.com
Mon Dec 2 17:36:22 GMT 2024



On 10/31/24 7:38 AM, Andreas Schwab wrote:
> On Okt 30 2024, Jeff Law wrote:
> 
>> diff --git a/sysdeps/riscv/multiarch/memset_vector.S b/sysdeps/riscv/multiarch/memset_vector.S
>> new file mode 100644
>> index 0000000000..36455575a4
>> --- /dev/null
>> +++ b/sysdeps/riscv/multiarch/memset_vector.S
> 
> This should be nop-ed out if !IS_IN (libc) so that rtld-memset_vector.os
> is empty (a preexisting issue also affecting memcpy_noalignment.c).
> 
> Ok with that change.
So presumably this change to memcpy_noalignment.S is what you're looking 
for to fix its implementation (and a corresponding change to 
memset_vector.S)?  Just want to make 100% sure.


> diff --git a/sysdeps/riscv/multiarch/memcpy_noalignment.S b/sysdeps/riscv/multiarch/memcpy_noalignment.S
> index fa39be21d6..2f4de117bc 100644
> --- a/sysdeps/riscv/multiarch/memcpy_noalignment.S
> +++ b/sysdeps/riscv/multiarch/memcpy_noalignment.S
> @@ -16,6 +16,7 @@
>     License along with the GNU C Library.  If not, see
>     <https://www.gnu.org/licenses/>.  */
>  
> +#if IS_IN (libc)
>  #include <sysdep.h>
>  #include <sys/asm.h>
>  
> @@ -160,3 +161,4 @@ L(word_copy_adjust):
>         mv      a3, a5
>         j       L(word_copy)
>  END (__memcpy_noalignment)
> +#endif



More information about the Libc-alpha mailing list