[v2,1/3] eal: provide movdiri for MSVC
Checks
Commit Message
From: Tyler Retzlaff <roretzla@linux.microsoft.com>
MSVC does not support inline assembly. Instead it provides compiler
intrinsics. Provide conditional compile for MSVC for movdiri using the
_directstoreu_u32 intrinsic.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
---
lib/eal/x86/include/rte_io.h | 4 ++++
1 file changed, 4 insertions(+)
@@ -22,11 +22,15 @@ extern "C" {
static __rte_always_inline void
__rte_x86_movdiri(uint32_t value, volatile void *addr)
{
+#ifdef RTE_TOOLCHAIN_MSVC
+ _directstoreu_u32((void *)(uintptr_t)addr, value);
+#else
asm volatile(
/* MOVDIRI */
".byte 0x0f, 0x38, 0xf9, 0x02"
:
: "a" (value), "d" (addr));
+#endif
}
__rte_experimental