この記事は Qiita株式会社のカレンダー | Advent Calendar 2022 - Qiita の7日目の記事です。
これはなに
以下の記事を読んで、Rustをビルドしたときのアセンブリを見てみたいと思い、アセンブリを出力する方法を調べたので書く。
- RustのABIと共有ライブラリ - mox692 のブログ
- Rustと少しのC - The Embedded Rust Book
- Application Binary Interface - The Rust Reference
結論
$ rustc --emit asm main.rs
Intel syntaxで出力したい場合は、
$ rustc --emit asm -C 'llvm-args=-x86-asm-syntax=intel' main.rs
アセンブリが出力されたことを確認。
$ head main.s
.text
.intel_syntax noprefix
.file "main.89363361-cgu.0"
.section .text._ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17hbac26043a2d15d39E,"ax",@progbits
.p2align 4, 0x90
.type _ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17hbac26043a2d15d39E,@function
_ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17hbac26043a2d15d39E:
.cfi_startproc
sub rsp, 24
.cfi_def_cfa_offset 32