FD.io VPP
v20.05.1-5-g09f167997
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 168 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 107 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 191 of file memcpy_sse3.h.
Definition at line 83 of file memcpy_sse3.h.
Definition at line 90 of file memcpy_sse3.h.
Definition at line 69 of file memcpy_sse3.h.
Definition at line 76 of file memcpy_sse3.h.