On Sat, 15 Jan 2022 16:39:50 -0500
Luc Pelletier <lucp.at.w...@gmail.com> wrote:

> diff --git a/lib/eal/x86/include/rte_memcpy.h 
> b/lib/eal/x86/include/rte_memcpy.h
> index 1b6c6e585f..e422397e49 100644
> --- a/lib/eal/x86/include/rte_memcpy.h
> +++ b/lib/eal/x86/include/rte_memcpy.h
> @@ -45,6 +45,23 @@ extern "C" {
>  static __rte_always_inline void *
>  rte_memcpy(void *dst, const void *src, size_t n);
>  
> +/**
> + * Copy bytes from one location to another,
> + * locations should not overlap.
> + * Use with unaligned src/dst, and n <= 15.
> + */
> +static __rte_always_inline void *
> +rte_mov15_or_less_unaligned(void *dst, const void *src, size_t n)
> +{
> +     void *ret = dst;
> +     for (; n; n--) {
> +             *((char *)dst) = *((const char *) src);
> +             dst = ((char *)dst) + 1;
> +             src = ((const char *)src) + 1;
> +     }
> +     return ret;
> +}

X86 always allows unaligned access. Irregardless of what tools say.
Why impose additional overhead in performance critical code.

Reply via email to