eal/x86: add 256 bytes copy for AVX2
The rte_mov256 function was missing for AVX2.
Fixes: 9144d6bcde
("eal/x86: optimize memcpy for SSE and AVX")
Signed-off-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
This commit is contained in:
parent
40abb903fe
commit
a9cfccbb03
@ -371,6 +371,23 @@ rte_mov128(uint8_t *dst, const uint8_t *src)
|
|||||||
rte_mov32((uint8_t *)dst + 3 * 32, (const uint8_t *)src + 3 * 32);
|
rte_mov32((uint8_t *)dst + 3 * 32, (const uint8_t *)src + 3 * 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copy 256 bytes from one location to another,
|
||||||
|
* locations should not overlap.
|
||||||
|
*/
|
||||||
|
static __rte_always_inline void
|
||||||
|
rte_mov256(uint8_t *dst, const uint8_t *src)
|
||||||
|
{
|
||||||
|
rte_mov32((uint8_t *)dst + 0 * 32, (const uint8_t *)src + 0 * 32);
|
||||||
|
rte_mov32((uint8_t *)dst + 1 * 32, (const uint8_t *)src + 1 * 32);
|
||||||
|
rte_mov32((uint8_t *)dst + 2 * 32, (const uint8_t *)src + 2 * 32);
|
||||||
|
rte_mov32((uint8_t *)dst + 3 * 32, (const uint8_t *)src + 3 * 32);
|
||||||
|
rte_mov32((uint8_t *)dst + 4 * 32, (const uint8_t *)src + 4 * 32);
|
||||||
|
rte_mov32((uint8_t *)dst + 5 * 32, (const uint8_t *)src + 5 * 32);
|
||||||
|
rte_mov32((uint8_t *)dst + 6 * 32, (const uint8_t *)src + 6 * 32);
|
||||||
|
rte_mov32((uint8_t *)dst + 7 * 32, (const uint8_t *)src + 7 * 32);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Copy 128-byte blocks from one location to another,
|
* Copy 128-byte blocks from one location to another,
|
||||||
* locations should not overlap.
|
* locations should not overlap.
|
||||||
|
Loading…
Reference in New Issue
Block a user