How to use storytelling to fit inline assembly into Rust
2 days ago
- #Compiler Optimizations
- #Rust
- #Inline Assembly
- Inline assembly in Rust must adhere to the Rust Abstract Machine's rules, despite not being written in Rust.
- A 'storytelling' approach is proposed where each inline assembly block must have a corresponding Rust code 'story' that explains its behavior in Rust terms.
- This approach ensures that inline assembly is compatible with Rust's optimizations and prevents undefined behavior.
- Examples include hardware operations, page table manipulation, non-temporal stores, stack painting, and floating-point control registers.
- The storytelling approach helps identify when inline assembly might lead to miscompilations or undefined behavior.
- The proposal aims to formalize rules for inline assembly and FFI interactions with Rust's undefined behavior.