diff options
| author | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2023-06-23 09:19:11 +0000 |
|---|---|---|
| committer | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2023-06-23 09:19:11 +0000 |
| commit | 7cbc8bcb4b6465dc008bbbc0d307684f157bf21f (patch) | |
| tree | 11334f1007800c1035220175bfdec606eb1763d1 /src | |
| parent | 41af17a9d16e4694b7f9d3ca94603b8a8e363a6f (diff) | |
| download | rust-7cbc8bcb4b6465dc008bbbc0d307684f157bf21f.tar.gz rust-7cbc8bcb4b6465dc008bbbc0d307684f157bf21f.zip | |
Implement nontemporal_store using a regular store
Diffstat (limited to 'src')
| -rw-r--r-- | src/intrinsics/mod.rs | 3 |
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); } |
