FD.io VPP
v20.01-48-g3e0dafb74
Vector Packet Processing
|
Go to the source code of this file.
Macros | |
#define | CLIB_MVUNALIGN_LEFT47_IMM(dst, src, len, offset) |
Macro for copying unaligned block from one location to another with constant load offset, 47 bytes leftover maximum, locations should not overlap. More... | |
#define | CLIB_MVUNALIGN_LEFT47(dst, src, len, offset) |
Macro for copying unaligned block from one location to another, 47 bytes leftover maximum, locations should not overlap. More... | |
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_memcpy_fast (void *dst, const void *src, size_t n) |
Macro for copying unaligned block from one location to another, 47 bytes leftover maximum, locations should not overlap.
Use switch here because the aligning instruction requires immediate value for shift count. Requirements:
Definition at line 163 of file memcpy_sse3.h.
Macro for copying unaligned block from one location to another with constant load offset, 47 bytes leftover maximum, locations should not overlap.
Requirements:
Definition at line 102 of file memcpy_sse3.h.
|
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, and make sure the first 15 bytes are copied, because unaligned copy functions require up to 15 bytes backwards access.
For aligned copy
Copy 256-byte blocks
Copy whatever left
For copy with unaligned load
Copy whatever left
Definition at line 186 of file memcpy_sse3.h.
Definition at line 78 of file memcpy_sse3.h.
Definition at line 85 of file memcpy_sse3.h.
Definition at line 64 of file memcpy_sse3.h.
Definition at line 71 of file memcpy_sse3.h.