diff options
| author | Trevor Gross <tmgross@umich.edu> | 2024-06-21 14:17:47 -0500 |
|---|---|---|
| committer | Trevor Gross <tmgross@umich.edu> | 2024-07-02 21:42:02 -0400 |
| commit | 1a6893e14b7d08aee18acf82b9a08e1ba8534d7b (patch) | |
| tree | c464d1665eebacb47139008a22e378b483ef2faa | |
| parent | c15a698f567356cea22e79686c2883f3557bae0b (diff) | |
| download | rust-1a6893e14b7d08aee18acf82b9a08e1ba8534d7b.tar.gz rust-1a6893e14b7d08aee18acf82b9a08e1ba8534d7b.zip | |
Add documentation for -Zverbose-asm
| -rw-r--r-- | src/doc/unstable-book/src/compiler-flags/verbose-asm.md | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/doc/unstable-book/src/compiler-flags/verbose-asm.md b/src/doc/unstable-book/src/compiler-flags/verbose-asm.md new file mode 100644 index 00000000000..84eb90a14cf --- /dev/null +++ b/src/doc/unstable-book/src/compiler-flags/verbose-asm.md @@ -0,0 +1,70 @@ +# `verbose-asm` + +The tracking issue for this feature is: [#126802](https://github.com/rust-lang/rust/issues/126802). + +------------------------ + +This enables passing `-Zverbose-asm` to get contextual comments added by LLVM. + +Sample code: + +```rust +#[no_mangle] +pub fn foo(a: i32, b: i32) -> i32 { + a + b +} +``` + +Default output: + +```asm +foo: + push rax + add edi, esi + mov dword ptr [rsp + 4], edi + seto al + jo .LBB0_2 + mov eax, dword ptr [rsp + 4] + pop rcx + ret +.LBB0_2: + lea rdi, [rip + .L__unnamed_1] + mov rax, qword ptr [rip + core::panicking::panic_const::panic_const_add_overflow::h9c85248fe0d735b2@GOTPCREL] + call rax + +.L__unnamed_2: + .ascii "/app/example.rs" + +.L__unnamed_1: + .quad .L__unnamed_2 + .asciz "\017\000\000\000\000\000\000\000\004\000\000\000\005\000\000" +``` + +With `-Zverbose-asm`: + +```asm +foo: # @foo +# %bb.0: + push rax + add edi, esi + mov dword ptr [rsp + 4], edi # 4-byte Spill + seto al + jo .LBB0_2 +# %bb.1: + mov eax, dword ptr [rsp + 4] # 4-byte Reload + pop rcx + ret +.LBB0_2: + lea rdi, [rip + .L__unnamed_1] + mov rax, qword ptr [rip + core::panicking::panic_const::panic_const_add_overflow::h9c85248fe0d735b2@GOTPCREL] + call rax + # -- End function +.L__unnamed_2: + .ascii "/app/example.rs" + +.L__unnamed_1: + .quad .L__unnamed_2 + .asciz "\017\000\000\000\000\000\000\000\004\000\000\000\005\000\000" + + # DW_AT_external +``` |
