raw/ioat: fix icc build
When using _mm_set_epi64() rather than _mm_set_epi64x() intrinsic, ICC tries to use the x87 floating point registers, leading to warnings about not properly clearing value when switching between x87 and SSE/AVX modes. error #13203: No EMMS instruction before call to function Fix this by using the set64x() intrinsic. Fixes: 0a92e63fc4cd ("raw/ioat: add local API to perform copies") Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Harry van Haaren <harry.van.haaren@intel.com> Tested-by: Anatoly Burakov <anatoly.burakov@intel.com>
This commit is contained in:
parent
c5eebf85ba
commit
34921a6fa0
@ -124,8 +124,7 @@ rte_ioat_enqueue_copy(int dev_id, phys_addr_t src, phys_addr_t dst,
|
||||
desc->src_addr = src;
|
||||
desc->dest_addr = dst;
|
||||
|
||||
ioat->hdls[write] = _mm_set_epi64((__m64)((uint64_t)dst_hdl),
|
||||
(__m64)((uint64_t)src_hdl));
|
||||
ioat->hdls[write] = _mm_set_epi64x((int64_t)dst_hdl, (int64_t)src_hdl);
|
||||
rte_prefetch0(&ioat->desc_ring[ioat->next_write & mask]);
|
||||
|
||||
ioat->enqueued++;
|
||||
|
Loading…
x
Reference in New Issue
Block a user