From: Tyler Retzlaff <roret...@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 <roret...@linux.microsoft.com> --- lib/eal/x86/include/rte_io.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/eal/x86/include/rte_io.h b/lib/eal/x86/include/rte_io.h index f92a2e5295..7087e728ce 100644 --- a/lib/eal/x86/include/rte_io.h +++ b/lib/eal/x86/include/rte_io.h @@ -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 -- 2.47.2.vfs.0.1