-
Notifications
You must be signed in to change notification settings - Fork 4.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Start unifying unaligned memory access codepaths. (#37445)
The intrinsic expansions for Unsafe.ReadUnaligned and Unsafe.WriteUnaligned now use mini_emit_memory_load and mini_emit_memory_store. stind is now implemented in terms of mini_emit_memory_store; when used during compilation of the the sgen nursery check wrapper, mini_emit_memory_store will no longer longer emit a release fence when storing a reference under the CLR memory model. mini_emit_memory_load and mini_emit_memory_store also no longer decompose unaligned loads/stores to explicit byte-wise memcpy move sequences; the LLVM IR backend already converts MONO_INST_UNALIGNED-flagged OP_LOAD*/OP_STORE* operations to LLVM memory movement operations with alignment 1. Should fix mono/mono#19142. Co-authored-by: imhameed <[email protected]>
- Loading branch information
1 parent
d6b5d17
commit 0bf441b
Showing
3 changed files
with
31 additions
and
64 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters