verbose_asm - The Rust Unstable Book

## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# `verbose-asm`

The tracking issue for this feature is: #126802.

This enables passing `-Zverbose-asm` to get contextual comments added by LLVM.

Sample code:

    #![allow(unused)]
    fn main() {
    #[no_mangle]
    pub fn foo(a: i32, b: i32) -> i32 {
        a + b
    }
    }

Default output:

    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`:

    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