この記事は 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
广告
将在 10 秒后关闭
bannerAds