この記事は 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
Ref
-
- RustのABIと共有ライブラリ – mox692 のブログ
-
- Rustと少しのC – The Embedded Rust Book
-
- Application Binary Interface – The Rust Reference
-
- Rustのゼロコスト抽象化の効果をアセンブラで確認
- –emit-specifies-the-types-of-output-files-to-generate | Command-line Arguments – The rustc book