lang (asm)
project-inline-asm
To create a project group with the purpose of designing subsequent RFCs to extend the language to support inline assembly in Rust code.
In systems programming some tasks require dropping down to the assembly level. The primary reasons are for performance, precise timing, and low level hardware access. Using inline assembly for this is sometimes convenient, and sometimes necessary to avoid function call overhead.
The inline assembler syntax currently available in nightly Rust is very ad-hoc. It provides a thin wrapper over the inline assembly syntax available in LLVM IR. For stabilization a more user-friendly syntax that lends itself to implementation across various backends is preferable.
Initial shepherds:
Lang team liaisons:
The main goal of the asm project group is to design and implement an asm!
macro using a syntax that we feel we can maintain, easily write, and stabilize.
The project group has the following additional goals:
asm!
macro.asm!
syntax is portable to different compiler backends such as LLVM, GCC, etc.With a lower priority, the project group also intends to tackle the following secondary, future goals:
global_asm!
).#[naked]
).