From 5b24e63063cf7c40d55b837bf84ae9a5609ed48d Mon Sep 17 00:00:00 2001 From: Sayantan Chakraborty <142906350+sayantn@users.noreply.github.com> Date: Sun, 4 Aug 2024 01:53:40 +0530 Subject: [PATCH] Fix `_mm_stream_si64` --- crates/core_arch/src/x86_64/macros.rs | 13 +++++++++++++ crates/core_arch/src/x86_64/sse2.rs | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/crates/core_arch/src/x86_64/macros.rs b/crates/core_arch/src/x86_64/macros.rs index 17e1c257c7..53f1d02bd3 100644 --- a/crates/core_arch/src/x86_64/macros.rs +++ b/crates/core_arch/src/x86_64/macros.rs @@ -20,3 +20,16 @@ macro_rules! static_assert_sae { static_assert!($imm == 4 || $imm == 8, "Invalid IMM value") }; } + +#[cfg(target_pointer_width = "32")] +macro_rules! vps { + ($inst1:expr, $inst2:expr) => { + concat!($inst1, " [{p:e}]", $inst2) + }; +} +#[cfg(target_pointer_width = "64")] +macro_rules! vps { + ($inst1:expr, $inst2:expr) => { + concat!($inst1, " [{p}]", $inst2) + }; +} diff --git a/crates/core_arch/src/x86_64/sse2.rs b/crates/core_arch/src/x86_64/sse2.rs index 8f85d4e282..9a99a28876 100644 --- a/crates/core_arch/src/x86_64/sse2.rs +++ b/crates/core_arch/src/x86_64/sse2.rs @@ -79,7 +79,7 @@ pub unsafe fn _mm_cvttsd_si64x(a: __m128d) -> i64 { #[stable(feature = "simd_x86", since = "1.27.0")] pub unsafe fn _mm_stream_si64(mem_addr: *mut i64, a: i64) { crate::arch::asm!( - "movnti [{p}], {a}", + vps!("movnti", ",{a}"), p = in(reg) mem_addr, a = in(reg) a, options(nostack, preserves_flags),