VPP-327 Coding standards cleanup for vppinfra
[vpp.git] / vppinfra / vppinfra / memcpy_sse3.h
index 12748f7..f61396c 100644 (file)
 #include <x86intrin.h>
 
 static inline void
-clib_mov16(u8 *dst, const u8 *src)
+clib_mov16 (u8 * dst, const u8 * src)
 {
-        __m128i xmm0;
+  __m128i xmm0;
 
-        xmm0 = _mm_loadu_si128((const __m128i *)src);
-        _mm_storeu_si128((__m128i *)dst, xmm0);
+  xmm0 = _mm_loadu_si128 ((const __m128i *) src);
+  _mm_storeu_si128 ((__m128i *) dst, xmm0);
 }
 
 static inline void
-clib_mov32(u8 *dst, const u8 *src)
+clib_mov32 (u8 * dst, const u8 * src)
 {
-       clib_mov16((u8 *)dst + 0 * 16, (const  u8 *)src + 0 * 16);
-       clib_mov16((u8 *)dst + 1 * 16, (const  u8 *)src + 1 * 16);
+  clib_mov16 ((u8 *) dst + 0 * 16, (const u8 *) src + 0 * 16);
+  clib_mov16 ((u8 *) dst + 1 * 16, (const u8 *) src + 1 * 16);
 }
 
 static inline void
-clib_mov64(u8 *dst, const u8 *src)
+clib_mov64 (u8 * dst, const u8 * src)
 {
-        clib_mov32((u8 *)dst + 0 * 32, (const u8 *)src + 0 * 32);
-        clib_mov32((u8 *)dst + 1 * 32, (const u8 *)src + 1 * 32);
+  clib_mov32 ((u8 *) dst + 0 * 32, (const u8 *) src + 0 * 32);
+  clib_mov32 ((u8 *) dst + 1 * 32, (const u8 *) src + 1 * 32);
 }
 
 static inline void
-clib_mov128(u8 *dst, const u8 *src)
+clib_mov128 (u8 * dst, const u8 * src)
 {
-        clib_mov64((u8 *)dst + 0 * 64, (const u8 *)src + 0 * 64);
-        clib_mov64((u8 *)dst + 1 * 64, (const u8 *)src + 1 * 64);
+  clib_mov64 ((u8 *) dst + 0 * 64, (const u8 *) src + 0 * 64);
+  clib_mov64 ((u8 *) dst + 1 * 64, (const u8 *) src + 1 * 64);
 }
 
 static inline void
-clib_mov256(u8 *dst, const u8 *src)
+clib_mov256 (u8 * dst, const u8 * src)
 {
-        clib_mov128((u8 *)dst + 0 * 128, (const u8 *)src + 0 * 128);
-        clib_mov128((u8 *)dst + 1 * 128, (const u8 *)src + 1 * 128);
+  clib_mov128 ((u8 *) dst + 0 * 128, (const u8 *) src + 0 * 128);
+  clib_mov128 ((u8 *) dst + 1 * 128, (const u8 *) src + 1 * 128);
 }
 
 /**
@@ -183,101 +183,117 @@ clib_mov256(u8 *dst, const u8 *src)
 })
 
 static inline void *
-clib_memcpy(void *dst, const void *src, size_t n)
+clib_memcpy (void *dst, const void *src, size_t n)
 {
-       __m128i xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8;
-       uword dstu = (uword)dst;
-       uword srcu = (uword)src;
-       void *ret = dst;
-       size_t dstofss;
-       size_t srcofs;
+  __m128i xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8;
+  uword dstu = (uword) dst;
+  uword srcu = (uword) src;
+  void *ret = dst;
+  size_t dstofss;
+  size_t srcofs;
 
        /**
         * Copy less than 16 bytes
         */
-       if (n < 16) {
-               if (n & 0x01) {
-                       *(u8 *)dstu = *(const u8 *)srcu;
-                       srcu = (uword)((const u8 *)srcu + 1);
-                       dstu = (uword)((u8 *)dstu + 1);
-               }
-               if (n & 0x02) {
-                       *(u16 *)dstu = *(const u16 *)srcu;
-                       srcu = (uword)((const u16 *)srcu + 1);
-                       dstu = (uword)((u16 *)dstu + 1);
-               }
-               if (n & 0x04) {
-                       *(u32 *)dstu = *(const u32 *)srcu;
-                       srcu = (uword)((const u32 *)srcu + 1);
-                       dstu = (uword)((u32 *)dstu + 1);
-               }
-               if (n & 0x08) {
-                       *(u64 *)dstu = *(const u64 *)srcu;
-               }
-               return ret;
+  if (n < 16)
+    {
+      if (n & 0x01)
+       {
+         *(u8 *) dstu = *(const u8 *) srcu;
+         srcu = (uword) ((const u8 *) srcu + 1);
+         dstu = (uword) ((u8 *) dstu + 1);
        }
+      if (n & 0x02)
+       {
+         *(u16 *) dstu = *(const u16 *) srcu;
+         srcu = (uword) ((const u16 *) srcu + 1);
+         dstu = (uword) ((u16 *) dstu + 1);
+       }
+      if (n & 0x04)
+       {
+         *(u32 *) dstu = *(const u32 *) srcu;
+         srcu = (uword) ((const u32 *) srcu + 1);
+         dstu = (uword) ((u32 *) dstu + 1);
+       }
+      if (n & 0x08)
+       {
+         *(u64 *) dstu = *(const u64 *) srcu;
+       }
+      return ret;
+    }
 
        /**
         * Fast way when copy size doesn't exceed 512 bytes
         */
-       if (n <= 32) {
-               clib_mov16((u8 *)dst, (const u8 *)src);
-               clib_mov16((u8 *)dst - 16 + n, (const u8 *)src - 16 + n);
-               return ret;
+  if (n <= 32)
+    {
+      clib_mov16 ((u8 *) dst, (const u8 *) src);
+      clib_mov16 ((u8 *) dst - 16 + n, (const u8 *) src - 16 + n);
+      return ret;
+    }
+  if (n <= 48)
+    {
+      clib_mov32 ((u8 *) dst, (const u8 *) src);
+      clib_mov16 ((u8 *) dst - 16 + n, (const u8 *) src - 16 + n);
+      return ret;
+    }
+  if (n <= 64)
+    {
+      clib_mov32 ((u8 *) dst, (const u8 *) src);
+      clib_mov16 ((u8 *) dst + 32, (const u8 *) src + 32);
+      clib_mov16 ((u8 *) dst - 16 + n, (const u8 *) src - 16 + n);
+      return ret;
+    }
+  if (n <= 128)
+    {
+      goto COPY_BLOCK_128_BACK15;
+    }
+  if (n <= 512)
+    {
+      if (n >= 256)
+       {
+         n -= 256;
+         clib_mov128 ((u8 *) dst, (const u8 *) src);
+         clib_mov128 ((u8 *) dst + 128, (const u8 *) src + 128);
+         src = (const u8 *) src + 256;
+         dst = (u8 *) dst + 256;
        }
-       if (n <= 48) {
-               clib_mov32((u8 *)dst, (const u8 *)src);
-               clib_mov16((u8 *)dst - 16 + n, (const u8 *)src - 16 + n);
-               return ret;
+    COPY_BLOCK_255_BACK15:
+      if (n >= 128)
+       {
+         n -= 128;
+         clib_mov128 ((u8 *) dst, (const u8 *) src);
+         src = (const u8 *) src + 128;
+         dst = (u8 *) dst + 128;
        }
-       if (n <= 64) {
-               clib_mov32((u8 *)dst, (const u8 *)src);
-               clib_mov16((u8 *)dst + 32, (const u8 *)src + 32);
-               clib_mov16((u8 *)dst - 16 + n, (const u8 *)src - 16 + n);
-               return ret;
+    COPY_BLOCK_128_BACK15:
+      if (n >= 64)
+       {
+         n -= 64;
+         clib_mov64 ((u8 *) dst, (const u8 *) src);
+         src = (const u8 *) src + 64;
+         dst = (u8 *) dst + 64;
        }
-       if (n <= 128) {
-               goto COPY_BLOCK_128_BACK15;
+    COPY_BLOCK_64_BACK15:
+      if (n >= 32)
+       {
+         n -= 32;
+         clib_mov32 ((u8 *) dst, (const u8 *) src);
+         src = (const u8 *) src + 32;
+         dst = (u8 *) dst + 32;
        }
-       if (n <= 512) {
-               if (n >= 256) {
-                       n -= 256;
-                       clib_mov128((u8 *)dst, (const u8 *)src);
-                       clib_mov128((u8 *)dst + 128, (const u8 *)src + 128);
-                       src = (const u8 *)src + 256;
-                       dst = (u8 *)dst + 256;
-               }
-COPY_BLOCK_255_BACK15:
-               if (n >= 128) {
-                       n -= 128;
-                       clib_mov128((u8 *)dst, (const u8 *)src);
-                       src = (const u8 *)src + 128;
-                       dst = (u8 *)dst + 128;
-               }
-COPY_BLOCK_128_BACK15:
-               if (n >= 64) {
-                       n -= 64;
-                       clib_mov64((u8 *)dst, (const u8 *)src);
-                       src = (const u8 *)src + 64;
-                       dst = (u8 *)dst + 64;
-               }
-COPY_BLOCK_64_BACK15:
-               if (n >= 32) {
-                       n -= 32;
-                       clib_mov32((u8 *)dst, (const u8 *)src);
-                       src = (const u8 *)src + 32;
-                       dst = (u8 *)dst + 32;
-               }
-               if (n > 16) {
-                       clib_mov16((u8 *)dst, (const u8 *)src);
-                       clib_mov16((u8 *)dst - 16 + n, (const u8 *)src - 16 + n);
-                       return ret;
-               }
-               if (n > 0) {
-                       clib_mov16((u8 *)dst - 16 + n, (const u8 *)src - 16 + n);
-               }
-               return ret;
+      if (n > 16)
+       {
+         clib_mov16 ((u8 *) dst, (const u8 *) src);
+         clib_mov16 ((u8 *) dst - 16 + n, (const u8 *) src - 16 + n);
+         return ret;
        }
+      if (n > 0)
+       {
+         clib_mov16 ((u8 *) dst - 16 + n, (const u8 *) src - 16 + n);
+       }
+      return ret;
+    }
 
        /**
         * Make store aligned when copy size exceeds 512 bytes,
@@ -285,41 +301,43 @@ COPY_BLOCK_64_BACK15:
         * unaligned copy functions require up to 15 bytes
         * backwards access.
         */
-       dstofss = 16 - ((uword)dst & 0x0F) + 16;
-       n -= dstofss;
-       clib_mov32((u8 *)dst, (const u8 *)src);
-       src = (const u8 *)src + dstofss;
-       dst = (u8 *)dst + dstofss;
-       srcofs = ((uword)src & 0x0F);
+  dstofss = 16 - ((uword) dst & 0x0F) + 16;
+  n -= dstofss;
+  clib_mov32 ((u8 *) dst, (const u8 *) src);
+  src = (const u8 *) src + dstofss;
+  dst = (u8 *) dst + dstofss;
+  srcofs = ((uword) src & 0x0F);
 
        /**
         * For aligned copy
         */
-       if (srcofs == 0) {
+  if (srcofs == 0)
+    {
                /**
                 * Copy 256-byte blocks
                 */
-               for (; n >= 256; n -= 256) {
-                       clib_mov256((u8 *)dst, (const u8 *)src);
-                       dst = (u8 *)dst + 256;
-                       src = (const u8 *)src + 256;
-               }
+      for (; n >= 256; n -= 256)
+       {
+         clib_mov256 ((u8 *) dst, (const u8 *) src);
+         dst = (u8 *) dst + 256;
+         src = (const u8 *) src + 256;
+       }
 
                /**
                 * Copy whatever left
                 */
-               goto COPY_BLOCK_255_BACK15;
-       }
+      goto COPY_BLOCK_255_BACK15;
+    }
 
        /**
         * For copy with unaligned load
         */
-       CLIB_MVUNALIGN_LEFT47(dst, src, n, srcofs);
+  CLIB_MVUNALIGN_LEFT47 (dst, src, n, srcofs);
 
        /**
         * Copy whatever left
         */
-       goto COPY_BLOCK_64_BACK15;
+  goto COPY_BLOCK_64_BACK15;
 }
 
 
@@ -328,3 +346,11 @@ COPY_BLOCK_64_BACK15:
 
 #endif /* included_clib_memcpy_sse3_h */
 
+
+/*
+ * fd.io coding-style-patch-verification: ON
+ *
+ * Local Variables:
+ * eval: (c-set-style "gnu")
+ * End:
+ */