[PATCH v2 1/3] eal: provide movdiri for MSVC
Andre Muezerie
andremue at linux.microsoft.com
Thu Dec 5 21:35:48 CET 2024
From: Tyler Retzlaff <roretzla at 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 at 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.0.vfs.0.3
More information about the dev
mailing list