about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorbjorn3 <17426603+bjorn3@users.noreply.github.com>2023-06-23 09:19:11 +0000
committerbjorn3 <17426603+bjorn3@users.noreply.github.com>2023-06-23 09:19:11 +0000
commit7cbc8bcb4b6465dc008bbbc0d307684f157bf21f (patch)
tree11334f1007800c1035220175bfdec606eb1763d1 /src
parent41af17a9d16e4694b7f9d3ca94603b8a8e363a6f (diff)
downloadrust-7cbc8bcb4b6465dc008bbbc0d307684f157bf21f.tar.gz
rust-7cbc8bcb4b6465dc008bbbc0d307684f157bf21f.zip
Implement nontemporal_store using a regular store
Diffstat (limited to 'src')
-rw-r--r--src/intrinsics/mod.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/intrinsics/mod.rs b/src/intrinsics/mod.rs
index 5862f18299e..7943208ca54 100644
--- a/src/intrinsics/mod.rs
+++ b/src/intrinsics/mod.rs
@@ -647,12 +647,13 @@ fn codegen_regular_intrinsic_call<'tcx>(
             let val = CValue::by_ref(Pointer::new(ptr.load_scalar(fx)), inner_layout);
             ret.write_cvalue(fx, val);
         }
-        sym::volatile_store | sym::unaligned_volatile_store => {
+        sym::volatile_store | sym::unaligned_volatile_store | sym::nontemporal_store => {
             intrinsic_args!(fx, args => (ptr, val); intrinsic);
             let ptr = ptr.load_scalar(fx);
 
             // Cranelift treats stores as volatile by default
             // FIXME correctly handle unaligned_volatile_store
+            // FIXME actually do nontemporal stores if requested
             let dest = CPlace::for_ptr(Pointer::new(ptr), val.layout());
             dest.write_cvalue(fx, val);
         }