File tree Expand file tree Collapse file tree 1 file changed +70
-0
lines changed 
src/doc/unstable-book/src/compiler-flags Expand file tree Collapse file tree 1 file changed +70
-0
lines changed Original file line number Diff line number Diff line change 1+ # ` verbose-asm `  
2+ 
3+ The tracking issue for this feature is: [ #126802  ] ( https://github.com/rust-lang/rust/issues/126802 ) .
4+ 
5+ ------------------------ 
6+ 
7+ This enables passing ` -Zverbose-asm `  to get contextual comments added by LLVM.
8+ 
9+ Sample code:
10+ 
11+ ``` rust 
12+ #[no_mangle]
13+ pub  fn  foo (a :  i32 , b :  i32 ) ->  i32  {
14+     a  +  b 
15+ }
16+ ``` 
17+ 
18+ Default output:
19+ 
20+ ``` asm 
21+ foo: 
22+         push    rax 
23+         add     edi, esi 
24+         mov     dword ptr [rsp + 4], edi 
25+         seto    al 
26+         jo      .LBB0_2 
27+         mov     eax, dword ptr [rsp + 4] 
28+         pop     rcx 
29+         ret 
30+ .LBB0_2: 
31+         lea     rdi, [rip + .L__unnamed_1] 
32+         mov     rax, qword ptr [rip + core::panicking::panic_const::panic_const_add_overflow::h9c85248fe0d735b2@GOTPCREL] 
33+         call    rax 
34+ 
35+ .L__unnamed_2: 
36+         .ascii  "/app/example.rs" 
37+ 
38+ .L__unnamed_1: 
39+         .quad   .L__unnamed_2 
40+         .asciz  "\017\000\000\000\000\000\000\000\004\000\000\000\005\000\000" 
41+ ``` 
42+ 
43+ With ` -Zverbose-asm ` :
44+ 
45+ ``` asm 
46+ foo:                                    # @foo 
47+ # %bb.0: 
48+         push    rax 
49+         add     edi, esi 
50+         mov     dword ptr [rsp + 4], edi        # 4-byte Spill 
51+         seto    al 
52+         jo      .LBB0_2 
53+ # %bb.1: 
54+         mov     eax, dword ptr [rsp + 4]        # 4-byte Reload 
55+         pop     rcx 
56+         ret 
57+ .LBB0_2: 
58+         lea     rdi, [rip + .L__unnamed_1] 
59+         mov     rax, qword ptr [rip + core::panicking::panic_const::panic_const_add_overflow::h9c85248fe0d735b2@GOTPCREL] 
60+         call    rax 
61+                                         # -- End function 
62+ .L__unnamed_2: 
63+         .ascii  "/app/example.rs" 
64+ 
65+ .L__unnamed_1: 
66+         .quad   .L__unnamed_2 
67+         .asciz  "\017\000\000\000\000\000\000\000\004\000\000\000\005\000\000" 
68+ 
69+                                         # DW_AT_external 
70+ ``` 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments