While I've seen docs on using rustc
directly to output assembly, having to manually extract commands used by Cargo and edit them to write assembly is tedious.
Is there a way to run Cargo that writes out assembly files?
You can use Cargo's cargo rustc
command to send arguments to rustc
directly:
cargo rustc -- --emit asm
ls target/debug/deps/<crate_name>-<hash>.s
For optimized assembly:
cargo rustc --release -- --emit asm
ls target/release/deps/<crate_name>-<hash>.s
If you see multiple <crate_name>-<hash>-<hash>.rcgu.s
files instead of a <crate_name>-<hash>.s
file, disable incremental compilation by setting the environment variable CARGO_INCREMENTAL=0
.