vppinfra: use unaligned non-vector load/stores in x86 memcpy
Type: fix
Change-Id: I54ef23a52f05cc95210a736f84b927dd69b8a6f7
Signed-off-by: Damjan Marion <damarion@cisco.com>
diff --git a/src/vppinfra/memcpy_avx2.h b/src/vppinfra/memcpy_avx2.h
index f7a36f0..ac29d25 100644
--- a/src/vppinfra/memcpy_avx2.h
+++ b/src/vppinfra/memcpy_avx2.h
@@ -135,19 +135,19 @@
}
if (n & 0x02)
{
- *(u16 *) dstu = *(const u16 *) srcu;
- srcu = (uword) ((const u16 *) srcu + 1);
- dstu = (uword) ((u16 *) dstu + 1);
+ *(u16u *) dstu = *(const u16u *) srcu;
+ srcu = (uword) ((const u16u *) srcu + 1);
+ dstu = (uword) ((u16u *) dstu + 1);
}
if (n & 0x04)
{
- *(u32 *) dstu = *(const u32 *) srcu;
- srcu = (uword) ((const u32 *) srcu + 1);
- dstu = (uword) ((u32 *) dstu + 1);
+ *(u32u *) dstu = *(const u32u *) srcu;
+ srcu = (uword) ((const u32u *) srcu + 1);
+ dstu = (uword) ((u32u *) dstu + 1);
}
if (n & 0x08)
{
- *(u64 *) dstu = *(const u64 *) srcu;
+ *(u64u *) dstu = *(const u64u *) srcu;
}
return ret;
}