xref: /llvm-project/bolt/test/X86/Inputs/dwarf5-call-pc-function-null-check-helper.s (revision b786e01f9340cc009a90e02033a9c84144740017)
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