FD.io VPP  v17.04-9-g99c0734
Vector Packet Processing
memcpy_avx.h File Reference
+ Include dependency graph for memcpy_avx.h:

Go to the source code of this file.

Typedefs

typedef u8 u8x16u
 
typedef u8 u8x32u
 

Functions

static void clib_mov16 (u8 *dst, const u8 *src)
 
static void clib_mov32 (u8 *dst, const u8 *src)
 
static void clib_mov64 (u8 *dst, const u8 *src)
 
static void clib_mov128 (u8 *dst, const u8 *src)
 
static void clib_mov256 (u8 *dst, const u8 *src)
 
static void clib_mov64blocks (u8 *dst, const u8 *src, size_t n)
 
static void clib_mov256blocks (u8 *dst, const u8 *src, size_t n)
 
static void * clib_memcpy (void *dst, const void *src, size_t n)
 

Typedef Documentation

typedef u8 u8x16u

Definition at line 54 of file memcpy_avx.h.

typedef u8 u8x32u

Definition at line 55 of file memcpy_avx.h.

Function Documentation

static void* clib_memcpy ( void *  dst,
const void *  src,
size_t  n 
)
inlinestatic

Copy less than 16 bytes

Fast way when copy size doesn't exceed 512 bytes

Make store aligned when copy size exceeds 512 bytes

Copy 256-byte blocks. Use copy block function for better instruction order control, which is important when load is unaligned.

Copy 64-byte blocks. Use copy block function for better instruction order control, which is important when load is unaligned.

Copy whatever left

Definition at line 147 of file memcpy_avx.h.

+ Here is the call graph for this function:

static void clib_mov128 ( u8 dst,
const u8 src 
)
inlinestatic

Definition at line 77 of file memcpy_avx.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void clib_mov16 ( u8 dst,
const u8 src 
)
inlinestatic

Definition at line 58 of file memcpy_avx.h.

+ Here is the caller graph for this function:

static void clib_mov256 ( u8 dst,
const u8 src 
)
inlinestatic

Definition at line 84 of file memcpy_avx.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void clib_mov256blocks ( u8 dst,
const u8 src,
size_t  n 
)
inlinestatic

Definition at line 110 of file memcpy_avx.h.

+ Here is the caller graph for this function:

static void clib_mov32 ( u8 dst,
const u8 src 
)
inlinestatic

Definition at line 64 of file memcpy_avx.h.

+ Here is the caller graph for this function:

static void clib_mov64 ( u8 dst,
const u8 src 
)
inlinestatic

Definition at line 70 of file memcpy_avx.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void clib_mov64blocks ( u8 dst,
const u8 src,
size_t  n 
)
inlinestatic

Definition at line 91 of file memcpy_avx.h.

+ Here is the caller graph for this function: