1*b786e01fSAlexander Yermolovich# clang++ main.cpp -g2 -O2 -S 2*b786e01fSAlexander Yermolovich# int helper(int z_, int d_) { 3*b786e01fSAlexander Yermolovich# return z_ + d_; 4*b786e01fSAlexander Yermolovich# } 5*b786e01fSAlexander Yermolovich 6*b786e01fSAlexander Yermolovich 7*b786e01fSAlexander Yermolovich .text 8*b786e01fSAlexander Yermolovich .file "helper.cpp" 9*b786e01fSAlexander Yermolovich .globl _Z6helperii # -- Begin function _Z6helperii 10*b786e01fSAlexander Yermolovich .p2align 4, 0x90 11*b786e01fSAlexander Yermolovich .type _Z6helperii,@function 12*b786e01fSAlexander Yermolovich_Z6helperii: # @_Z6helperii 13*b786e01fSAlexander Yermolovich.Lfunc_begin0: 14*b786e01fSAlexander Yermolovich .file 0 "." "helper.cpp" md5 0x8020e02b87876b529416442978378ed0 15*b786e01fSAlexander Yermolovich .loc 0 1 0 # helper.cpp:1:0 16*b786e01fSAlexander Yermolovich .cfi_startproc 17*b786e01fSAlexander Yermolovich# %bb.0: # %entry 18*b786e01fSAlexander Yermolovich #DEBUG_VALUE: helper:z_ <- $edi 19*b786e01fSAlexander Yermolovich #DEBUG_VALUE: helper:d_ <- $esi 20*b786e01fSAlexander Yermolovich # kill: def $esi killed $esi def $rsi 21*b786e01fSAlexander Yermolovich # kill: def $edi killed $edi def $rdi 22*b786e01fSAlexander Yermolovich .loc 0 2 13 prologue_end # helper.cpp:2:13 23*b786e01fSAlexander Yermolovich leal (%rdi,%rsi), %eax 24*b786e01fSAlexander Yermolovich .loc 0 2 3 is_stmt 0 # helper.cpp:2:3 25*b786e01fSAlexander Yermolovich retq 26*b786e01fSAlexander Yermolovich.Ltmp0: 27*b786e01fSAlexander Yermolovich.Lfunc_end0: 28*b786e01fSAlexander Yermolovich .size _Z6helperii, .Lfunc_end0-_Z6helperii 29*b786e01fSAlexander Yermolovich .cfi_endproc 30*b786e01fSAlexander Yermolovich # -- End function 31*b786e01fSAlexander Yermolovich .section .debug_abbrev,"",@progbits 32*b786e01fSAlexander Yermolovich .byte 1 # Abbreviation Code 33*b786e01fSAlexander Yermolovich .byte 17 # DW_TAG_compile_unit 34*b786e01fSAlexander Yermolovich .byte 1 # DW_CHILDREN_yes 35*b786e01fSAlexander Yermolovich .byte 37 # DW_AT_producer 36*b786e01fSAlexander Yermolovich .byte 37 # DW_FORM_strx1 37*b786e01fSAlexander Yermolovich .byte 19 # DW_AT_language 38*b786e01fSAlexander Yermolovich .byte 5 # DW_FORM_data2 39*b786e01fSAlexander Yermolovich .byte 3 # DW_AT_name 40*b786e01fSAlexander Yermolovich .byte 37 # DW_FORM_strx1 41*b786e01fSAlexander Yermolovich .byte 114 # DW_AT_str_offsets_base 42*b786e01fSAlexander Yermolovich .byte 23 # DW_FORM_sec_offset 43*b786e01fSAlexander Yermolovich .byte 16 # DW_AT_stmt_list 44*b786e01fSAlexander Yermolovich .byte 23 # DW_FORM_sec_offset 45*b786e01fSAlexander Yermolovich .byte 27 # DW_AT_comp_dir 46*b786e01fSAlexander Yermolovich .byte 37 # DW_FORM_strx1 47*b786e01fSAlexander Yermolovich .byte 17 # DW_AT_low_pc 48*b786e01fSAlexander Yermolovich .byte 27 # DW_FORM_addrx 49*b786e01fSAlexander Yermolovich .byte 18 # DW_AT_high_pc 50*b786e01fSAlexander Yermolovich .byte 6 # DW_FORM_data4 51*b786e01fSAlexander Yermolovich .byte 115 # DW_AT_addr_base 52*b786e01fSAlexander Yermolovich .byte 23 # DW_FORM_sec_offset 53*b786e01fSAlexander Yermolovich .byte 0 # EOM(1) 54*b786e01fSAlexander Yermolovich .byte 0 # EOM(2) 55*b786e01fSAlexander Yermolovich .byte 2 # Abbreviation Code 56*b786e01fSAlexander Yermolovich .byte 46 # DW_TAG_subprogram 57*b786e01fSAlexander Yermolovich .byte 1 # DW_CHILDREN_yes 58*b786e01fSAlexander Yermolovich .byte 17 # DW_AT_low_pc 59*b786e01fSAlexander Yermolovich .byte 27 # DW_FORM_addrx 60*b786e01fSAlexander Yermolovich .byte 18 # DW_AT_high_pc 61*b786e01fSAlexander Yermolovich .byte 6 # DW_FORM_data4 62*b786e01fSAlexander Yermolovich .byte 64 # DW_AT_frame_base 63*b786e01fSAlexander Yermolovich .byte 24 # DW_FORM_exprloc 64*b786e01fSAlexander Yermolovich .byte 122 # DW_AT_call_all_calls 65*b786e01fSAlexander Yermolovich .byte 25 # DW_FORM_flag_present 66*b786e01fSAlexander Yermolovich .byte 110 # DW_AT_linkage_name 67*b786e01fSAlexander Yermolovich .byte 37 # DW_FORM_strx1 68*b786e01fSAlexander Yermolovich .byte 3 # DW_AT_name 69*b786e01fSAlexander Yermolovich .byte 37 # DW_FORM_strx1 70*b786e01fSAlexander Yermolovich .byte 58 # DW_AT_decl_file 71*b786e01fSAlexander Yermolovich .byte 11 # DW_FORM_data1 72*b786e01fSAlexander Yermolovich .byte 59 # DW_AT_decl_line 73*b786e01fSAlexander Yermolovich .byte 11 # DW_FORM_data1 74*b786e01fSAlexander Yermolovich .byte 73 # DW_AT_type 75*b786e01fSAlexander Yermolovich .byte 19 # DW_FORM_ref4 76*b786e01fSAlexander Yermolovich .byte 63 # DW_AT_external 77*b786e01fSAlexander Yermolovich .byte 25 # DW_FORM_flag_present 78*b786e01fSAlexander Yermolovich .byte 0 # EOM(1) 79*b786e01fSAlexander Yermolovich .byte 0 # EOM(2) 80*b786e01fSAlexander Yermolovich .byte 3 # Abbreviation Code 81*b786e01fSAlexander Yermolovich .byte 5 # DW_TAG_formal_parameter 82*b786e01fSAlexander Yermolovich .byte 0 # DW_CHILDREN_no 83*b786e01fSAlexander Yermolovich .byte 2 # DW_AT_location 84*b786e01fSAlexander Yermolovich .byte 24 # DW_FORM_exprloc 85*b786e01fSAlexander Yermolovich .byte 3 # DW_AT_name 86*b786e01fSAlexander Yermolovich .byte 37 # DW_FORM_strx1 87*b786e01fSAlexander Yermolovich .byte 58 # DW_AT_decl_file 88*b786e01fSAlexander Yermolovich .byte 11 # DW_FORM_data1 89*b786e01fSAlexander Yermolovich .byte 59 # DW_AT_decl_line 90*b786e01fSAlexander Yermolovich .byte 11 # DW_FORM_data1 91*b786e01fSAlexander Yermolovich .byte 73 # DW_AT_type 92*b786e01fSAlexander Yermolovich .byte 19 # DW_FORM_ref4 93*b786e01fSAlexander Yermolovich .byte 0 # EOM(1) 94*b786e01fSAlexander Yermolovich .byte 0 # EOM(2) 95*b786e01fSAlexander Yermolovich .byte 4 # Abbreviation Code 96*b786e01fSAlexander Yermolovich .byte 36 # DW_TAG_base_type 97*b786e01fSAlexander Yermolovich .byte 0 # DW_CHILDREN_no 98*b786e01fSAlexander Yermolovich .byte 3 # DW_AT_name 99*b786e01fSAlexander Yermolovich .byte 37 # DW_FORM_strx1 100*b786e01fSAlexander Yermolovich .byte 62 # DW_AT_encoding 101*b786e01fSAlexander Yermolovich .byte 11 # DW_FORM_data1 102*b786e01fSAlexander Yermolovich .byte 11 # DW_AT_byte_size 103*b786e01fSAlexander Yermolovich .byte 11 # DW_FORM_data1 104*b786e01fSAlexander Yermolovich .byte 0 # EOM(1) 105*b786e01fSAlexander Yermolovich .byte 0 # EOM(2) 106*b786e01fSAlexander Yermolovich .byte 0 # EOM(3) 107*b786e01fSAlexander Yermolovich .section .debug_info,"",@progbits 108*b786e01fSAlexander Yermolovich.Lcu_begin0: 109*b786e01fSAlexander Yermolovich .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 110*b786e01fSAlexander Yermolovich.Ldebug_info_start0: 111*b786e01fSAlexander Yermolovich .short 5 # DWARF version number 112*b786e01fSAlexander Yermolovich .byte 1 # DWARF Unit Type 113*b786e01fSAlexander Yermolovich .byte 8 # Address Size (in bytes) 114*b786e01fSAlexander Yermolovich .long .debug_abbrev # Offset Into Abbrev. Section 115*b786e01fSAlexander Yermolovich .byte 1 # Abbrev [1] 0xc:0x41 DW_TAG_compile_unit 116*b786e01fSAlexander Yermolovich .byte 0 # DW_AT_producer 117*b786e01fSAlexander Yermolovich .short 33 # DW_AT_language 118*b786e01fSAlexander Yermolovich .byte 1 # DW_AT_name 119*b786e01fSAlexander Yermolovich .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 120*b786e01fSAlexander Yermolovich .long .Lline_table_start0 # DW_AT_stmt_list 121*b786e01fSAlexander Yermolovich .byte 2 # DW_AT_comp_dir 122*b786e01fSAlexander Yermolovich .byte 0 # DW_AT_low_pc 123*b786e01fSAlexander Yermolovich .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 124*b786e01fSAlexander Yermolovich .long .Laddr_table_base0 # DW_AT_addr_base 125*b786e01fSAlexander Yermolovich .byte 2 # Abbrev [2] 0x23:0x25 DW_TAG_subprogram 126*b786e01fSAlexander Yermolovich .byte 0 # DW_AT_low_pc 127*b786e01fSAlexander Yermolovich .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 128*b786e01fSAlexander Yermolovich .byte 1 # DW_AT_frame_base 129*b786e01fSAlexander Yermolovich .byte 87 130*b786e01fSAlexander Yermolovich # DW_AT_call_all_calls 131*b786e01fSAlexander Yermolovich .byte 3 # DW_AT_linkage_name 132*b786e01fSAlexander Yermolovich .byte 4 # DW_AT_name 133*b786e01fSAlexander Yermolovich .byte 0 # DW_AT_decl_file 134*b786e01fSAlexander Yermolovich .byte 1 # DW_AT_decl_line 135*b786e01fSAlexander Yermolovich .long 72 # DW_AT_type 136*b786e01fSAlexander Yermolovich # DW_AT_external 137*b786e01fSAlexander Yermolovich .byte 3 # Abbrev [3] 0x33:0xa DW_TAG_formal_parameter 138*b786e01fSAlexander Yermolovich .byte 1 # DW_AT_location 139*b786e01fSAlexander Yermolovich .byte 85 140*b786e01fSAlexander Yermolovich .byte 6 # DW_AT_name 141*b786e01fSAlexander Yermolovich .byte 0 # DW_AT_decl_file 142*b786e01fSAlexander Yermolovich .byte 1 # DW_AT_decl_line 143*b786e01fSAlexander Yermolovich .long 72 # DW_AT_type 144*b786e01fSAlexander Yermolovich .byte 3 # Abbrev [3] 0x3d:0xa DW_TAG_formal_parameter 145*b786e01fSAlexander Yermolovich .byte 1 # DW_AT_location 146*b786e01fSAlexander Yermolovich .byte 84 147*b786e01fSAlexander Yermolovich .byte 7 # DW_AT_name 148*b786e01fSAlexander Yermolovich .byte 0 # DW_AT_decl_file 149*b786e01fSAlexander Yermolovich .byte 1 # DW_AT_decl_line 150*b786e01fSAlexander Yermolovich .long 72 # DW_AT_type 151*b786e01fSAlexander Yermolovich .byte 0 # End Of Children Mark 152*b786e01fSAlexander Yermolovich .byte 4 # Abbrev [4] 0x48:0x4 DW_TAG_base_type 153*b786e01fSAlexander Yermolovich .byte 5 # DW_AT_name 154*b786e01fSAlexander Yermolovich .byte 5 # DW_AT_encoding 155*b786e01fSAlexander Yermolovich .byte 4 # DW_AT_byte_size 156*b786e01fSAlexander Yermolovich .byte 0 # End Of Children Mark 157*b786e01fSAlexander Yermolovich.Ldebug_info_end0: 158*b786e01fSAlexander Yermolovich .section .debug_str_offsets,"",@progbits 159*b786e01fSAlexander Yermolovich .long 36 # Length of String Offsets Set 160*b786e01fSAlexander Yermolovich .short 5 161*b786e01fSAlexander Yermolovich .short 0 162*b786e01fSAlexander Yermolovich.Lstr_offsets_base0: 163*b786e01fSAlexander Yermolovich .section .debug_str,"MS",@progbits,1 164*b786e01fSAlexander Yermolovich.Linfo_string0: 165*b786e01fSAlexander Yermolovich .asciz "clang version 16.0.0" # string offset=0 166*b786e01fSAlexander Yermolovich.Linfo_string1: 167*b786e01fSAlexander Yermolovich .asciz "helper.cpp" # string offset=134 168*b786e01fSAlexander Yermolovich.Linfo_string2: 169*b786e01fSAlexander Yermolovich .asciz "." # string offset=145 170*b786e01fSAlexander Yermolovich.Linfo_string3: 171*b786e01fSAlexander Yermolovich .asciz "_Z6helperii" # string offset=198 172*b786e01fSAlexander Yermolovich.Linfo_string4: 173*b786e01fSAlexander Yermolovich .asciz "helper" # string offset=210 174*b786e01fSAlexander Yermolovich.Linfo_string5: 175*b786e01fSAlexander Yermolovich .asciz "int" # string offset=217 176*b786e01fSAlexander Yermolovich.Linfo_string6: 177*b786e01fSAlexander Yermolovich .asciz "z_" # string offset=221 178*b786e01fSAlexander Yermolovich.Linfo_string7: 179*b786e01fSAlexander Yermolovich .asciz "d_" # string offset=224 180*b786e01fSAlexander Yermolovich .section .debug_str_offsets,"",@progbits 181*b786e01fSAlexander Yermolovich .long .Linfo_string0 182*b786e01fSAlexander Yermolovich .long .Linfo_string1 183*b786e01fSAlexander Yermolovich .long .Linfo_string2 184*b786e01fSAlexander Yermolovich .long .Linfo_string3 185*b786e01fSAlexander Yermolovich .long .Linfo_string4 186*b786e01fSAlexander Yermolovich .long .Linfo_string5 187*b786e01fSAlexander Yermolovich .long .Linfo_string6 188*b786e01fSAlexander Yermolovich .long .Linfo_string7 189*b786e01fSAlexander Yermolovich .section .debug_addr,"",@progbits 190*b786e01fSAlexander Yermolovich .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution 191*b786e01fSAlexander Yermolovich.Ldebug_addr_start0: 192*b786e01fSAlexander Yermolovich .short 5 # DWARF version number 193*b786e01fSAlexander Yermolovich .byte 8 # Address size 194*b786e01fSAlexander Yermolovich .byte 0 # Segment selector size 195*b786e01fSAlexander Yermolovich.Laddr_table_base0: 196*b786e01fSAlexander Yermolovich .quad .Lfunc_begin0 197*b786e01fSAlexander Yermolovich.Ldebug_addr_end0: 198*b786e01fSAlexander Yermolovich .ident "clang version 16.0.0" 199*b786e01fSAlexander Yermolovich .section ".note.GNU-stack","",@progbits 200*b786e01fSAlexander Yermolovich .addrsig 201*b786e01fSAlexander Yermolovich .section .debug_line,"",@progbits 202*b786e01fSAlexander Yermolovich.Lline_table_start0: 203