brintos

brintos / llvm-project-archived public Read only

0
0
Text · 22.7 KiB · 6a52a79 Raw
615 lines · plain
1# REQUIRES: bpf-registered-target2 3## Verify that when llvm-objdump uses .BTF.ext to show CO-RE4## relocations formatting options operate as expected.5 6# RUN: llvm-mc --triple bpfel %s --filetype=obj | \7# RUN:   llvm-objdump --no-addresses --no-show-raw-insn -dr - | \8# RUN:   FileCheck --strict-whitespace --check-prefix=NOADDR %s9 10# RUN: llvm-mc --triple bpfel %s --filetype=obj | \11# RUN:   llvm-objdump --no-addresses --no-show-raw-insn -d - | \12# RUN:   FileCheck --strict-whitespace --check-prefix=NORELO %s13 14# RUN: llvm-mc --triple bpfel %s --filetype=obj | \15# RUN:   llvm-objdump --no-show-raw-insn -dr - | \16# RUN:   FileCheck --strict-whitespace --check-prefix=ADDR %s17 18# RUN: llvm-mc --triple bpfel %s --filetype=obj | \19# RUN:   llvm-objdump --adjust-vma=0x10 --no-show-raw-insn -dr - | \20# RUN:   FileCheck --strict-whitespace --check-prefix=VMA %s21 22## Input generated from the following C code:23##24##   #define __pai __attribute__((preserve_access_index))25##   struct foo {26##     int a;27##   } __pai;28##   enum bar { U, V };29##   extern void consume(unsigned long);30##   void root() {31##     asm volatile("r0 = 42;":::);32##     struct foo *foo = 0;33##     consume(__builtin_preserve_type_info(*foo, 0));34##     consume((unsigned long) &foo->a);35##     consume(__builtin_preserve_enum_value(*(enum bar *)U, 0));36##   }37##38## Using the following command:39##40##  clang -target bpf -g -O2 -S t.c41 42# NOADDR:	r1 = 0x143# NOADDR-NEXT:		CO-RE <type_exists> [3] struct foo44# NOADDR-NEXT:	call -0x145# NOADDR-NEXT:		R_BPF_64_32	consume46# NOADDR-NEXT:	r1 = 0x047# NOADDR-NEXT:		CO-RE <byte_off> [3] struct foo::a (0:0)48# NOADDR-NEXT:	call -0x149# NOADDR-NEXT:		R_BPF_64_32	consume50# NOADDR-NEXT:	r1 = 0x1 ll51# NOADDR-NEXT:		CO-RE <enumval_exists> [8] enum bar::U = 052# NOADDR-NEXT:	call -0x153# NOADDR-NEXT:		R_BPF_64_32	consume54# NOADDR-NEXT:	exit55 56# NORELO:	r1 = 0x157# NORELO-NEXT:	call -0x158# NORELO-NEXT:	r1 = 0x059# NORELO-NEXT:	call -0x160# NORELO-NEXT:	r1 = 0x1 ll61# NORELO-NEXT:	call -0x162# NORELO-NEXT:	exit63 64# ADDR:            1:	r1 = 0x165# ADDR-NEXT:		0000000000000008:  CO-RE <type_exists> [3] struct foo66# ADDR-NEXT:       2:	call -0x167# ADDR-NEXT:		0000000000000010:  R_BPF_64_32	consume68# ADDR-NEXT:       3:	r1 = 0x069# ADDR-NEXT:		0000000000000018:  CO-RE <byte_off> [3] struct foo::a (0:0)70# ADDR-NEXT:       4:	call -0x171# ADDR-NEXT:		0000000000000020:  R_BPF_64_32	consume72# ADDR-NEXT:       5:	r1 = 0x1 ll73# ADDR-NEXT:		0000000000000028:  CO-RE <enumval_exists> [8] enum bar::U = 074# ADDR-NEXT:       7:	call -0x175# ADDR-NEXT:		0000000000000038:  R_BPF_64_32	consume76# ADDR-NEXT:       8:	exit77 78# VMA:            3:	r1 = 0x179# VMA-NEXT:		0000000000000018:  CO-RE <type_exists> [3] struct foo80# VMA-NEXT:       4:	call -0x181# VMA-NEXT:		0000000000000020:  R_BPF_64_32	consume82# VMA-NEXT:       5:	r1 = 0x083# VMA-NEXT:		0000000000000028:  CO-RE <byte_off> [3] struct foo::a (0:0)84# VMA-NEXT:       6:	call -0x185# VMA-NEXT:		0000000000000030:  R_BPF_64_32	consume86# VMA-NEXT:       7:	r1 = 0x1 ll87# VMA-NEXT:		0000000000000038:  CO-RE <enumval_exists> [8] enum bar::U = 088# VMA-NEXT:       9:	call -0x189# VMA-NEXT:		0000000000000048:  R_BPF_64_32	consume90# VMA-NEXT:      10:	exit91 92	.text93	.file	"t.c"94	.file	0 "/home/eddy/work/tmp" "t.c" md5 0x7675be79a30f35c69b89cf826ff55a5f95	.globl	root                    # -- Begin function root96	.p2align	397	.type	root,@function98root:                                   # @root99.Lfunc_begin0:100	.cfi_sections .debug_frame101	.cfi_startproc102# %bb.0:                                # %entry103	.loc	0 8 3 prologue_end      # t.c:8:3104.Ltmp0:105	#APP106	r0 = 42107 108	#NO_APP109.Ltmp1:110.Ltmp2:111	#DEBUG_VALUE: root:foo <- 0112	.loc	0 10 3                  # t.c:10:3113.Ltmp3:114.Ltmp4:115	r1 = 1116	call consume117.Ltmp5:118	.loc	0 11 3                  # t.c:11:3119.Ltmp6:120.Ltmp7:121	r1 = 0122	call consume123.Ltmp8:124	.loc	0 12 3                  # t.c:12:3125.Ltmp9:126.Ltmp10:127	r1 = 1 ll128	call consume129.Ltmp11:130	.loc	0 13 1                  # t.c:13:1131.Ltmp12:132	exit133.Ltmp13:134.Ltmp14:135.Lfunc_end0:136	.size	root, .Lfunc_end0-root137	.cfi_endproc138                                        # -- End function139	.section	.debug_loclists,"",@progbits140	.long	.Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length141.Ldebug_list_header_start0:142	.short	5                       # Version143	.byte	8                       # Address size144	.byte	0                       # Segment selector size145	.long	1                       # Offset entry count146.Lloclists_table_base0:147	.long	.Ldebug_loc0-.Lloclists_table_base0148.Ldebug_loc0:149	.byte	4                       # DW_LLE_offset_pair150	.uleb128 .Ltmp1-.Lfunc_begin0   #   starting offset151	.uleb128 .Lfunc_end0-.Lfunc_begin0 #   ending offset152	.byte	2                       # Loc expr size153	.byte	48                      # DW_OP_lit0154	.byte	159                     # DW_OP_stack_value155	.byte	0                       # DW_LLE_end_of_list156.Ldebug_list_header_end0:157	.section	.debug_abbrev,"",@progbits158	.byte	1                       # Abbreviation Code159	.byte	17                      # DW_TAG_compile_unit160	.byte	1                       # DW_CHILDREN_yes161	.byte	37                      # DW_AT_producer162	.byte	37                      # DW_FORM_strx1163	.byte	19                      # DW_AT_language164	.byte	5                       # DW_FORM_data2165	.byte	3                       # DW_AT_name166	.byte	37                      # DW_FORM_strx1167	.byte	114                     # DW_AT_str_offsets_base168	.byte	23                      # DW_FORM_sec_offset169	.byte	16                      # DW_AT_stmt_list170	.byte	23                      # DW_FORM_sec_offset171	.byte	27                      # DW_AT_comp_dir172	.byte	37                      # DW_FORM_strx1173	.byte	17                      # DW_AT_low_pc174	.byte	27                      # DW_FORM_addrx175	.byte	18                      # DW_AT_high_pc176	.byte	6                       # DW_FORM_data4177	.byte	115                     # DW_AT_addr_base178	.byte	23                      # DW_FORM_sec_offset179	.ascii	"\214\001"              # DW_AT_loclists_base180	.byte	23                      # DW_FORM_sec_offset181	.byte	0                       # EOM(1)182	.byte	0                       # EOM(2)183	.byte	2                       # Abbreviation Code184	.byte	4                       # DW_TAG_enumeration_type185	.byte	1                       # DW_CHILDREN_yes186	.byte	73                      # DW_AT_type187	.byte	19                      # DW_FORM_ref4188	.byte	3                       # DW_AT_name189	.byte	37                      # DW_FORM_strx1190	.byte	11                      # DW_AT_byte_size191	.byte	11                      # DW_FORM_data1192	.byte	58                      # DW_AT_decl_file193	.byte	11                      # DW_FORM_data1194	.byte	59                      # DW_AT_decl_line195	.byte	11                      # DW_FORM_data1196	.byte	0                       # EOM(1)197	.byte	0                       # EOM(2)198	.byte	3                       # Abbreviation Code199	.byte	40                      # DW_TAG_enumerator200	.byte	0                       # DW_CHILDREN_no201	.byte	3                       # DW_AT_name202	.byte	37                      # DW_FORM_strx1203	.byte	28                      # DW_AT_const_value204	.byte	15                      # DW_FORM_udata205	.byte	0                       # EOM(1)206	.byte	0                       # EOM(2)207	.byte	4                       # Abbreviation Code208	.byte	36                      # DW_TAG_base_type209	.byte	0                       # DW_CHILDREN_no210	.byte	3                       # DW_AT_name211	.byte	37                      # DW_FORM_strx1212	.byte	62                      # DW_AT_encoding213	.byte	11                      # DW_FORM_data1214	.byte	11                      # DW_AT_byte_size215	.byte	11                      # DW_FORM_data1216	.byte	0                       # EOM(1)217	.byte	0                       # EOM(2)218	.byte	5                       # Abbreviation Code219	.byte	46                      # DW_TAG_subprogram220	.byte	1                       # DW_CHILDREN_yes221	.byte	17                      # DW_AT_low_pc222	.byte	27                      # DW_FORM_addrx223	.byte	18                      # DW_AT_high_pc224	.byte	6                       # DW_FORM_data4225	.byte	64                      # DW_AT_frame_base226	.byte	24                      # DW_FORM_exprloc227	.byte	122                     # DW_AT_call_all_calls228	.byte	25                      # DW_FORM_flag_present229	.byte	3                       # DW_AT_name230	.byte	37                      # DW_FORM_strx1231	.byte	58                      # DW_AT_decl_file232	.byte	11                      # DW_FORM_data1233	.byte	59                      # DW_AT_decl_line234	.byte	11                      # DW_FORM_data1235	.byte	63                      # DW_AT_external236	.byte	25                      # DW_FORM_flag_present237	.byte	0                       # EOM(1)238	.byte	0                       # EOM(2)239	.byte	6                       # Abbreviation Code240	.byte	52                      # DW_TAG_variable241	.byte	0                       # DW_CHILDREN_no242	.byte	2                       # DW_AT_location243	.byte	34                      # DW_FORM_loclistx244	.byte	3                       # DW_AT_name245	.byte	37                      # DW_FORM_strx1246	.byte	58                      # DW_AT_decl_file247	.byte	11                      # DW_FORM_data1248	.byte	59                      # DW_AT_decl_line249	.byte	11                      # DW_FORM_data1250	.byte	73                      # DW_AT_type251	.byte	19                      # DW_FORM_ref4252	.byte	0                       # EOM(1)253	.byte	0                       # EOM(2)254	.byte	7                       # Abbreviation Code255	.byte	72                      # DW_TAG_call_site256	.byte	0                       # DW_CHILDREN_no257	.byte	127                     # DW_AT_call_origin258	.byte	19                      # DW_FORM_ref4259	.byte	125                     # DW_AT_call_return_pc260	.byte	27                      # DW_FORM_addrx261	.byte	0                       # EOM(1)262	.byte	0                       # EOM(2)263	.byte	8                       # Abbreviation Code264	.byte	46                      # DW_TAG_subprogram265	.byte	1                       # DW_CHILDREN_yes266	.byte	3                       # DW_AT_name267	.byte	37                      # DW_FORM_strx1268	.byte	58                      # DW_AT_decl_file269	.byte	11                      # DW_FORM_data1270	.byte	59                      # DW_AT_decl_line271	.byte	11                      # DW_FORM_data1272	.byte	39                      # DW_AT_prototyped273	.byte	25                      # DW_FORM_flag_present274	.byte	60                      # DW_AT_declaration275	.byte	25                      # DW_FORM_flag_present276	.byte	63                      # DW_AT_external277	.byte	25                      # DW_FORM_flag_present278	.byte	0                       # EOM(1)279	.byte	0                       # EOM(2)280	.byte	9                       # Abbreviation Code281	.byte	5                       # DW_TAG_formal_parameter282	.byte	0                       # DW_CHILDREN_no283	.byte	73                      # DW_AT_type284	.byte	19                      # DW_FORM_ref4285	.byte	0                       # EOM(1)286	.byte	0                       # EOM(2)287	.byte	10                      # Abbreviation Code288	.byte	15                      # DW_TAG_pointer_type289	.byte	0                       # DW_CHILDREN_no290	.byte	73                      # DW_AT_type291	.byte	19                      # DW_FORM_ref4292	.byte	0                       # EOM(1)293	.byte	0                       # EOM(2)294	.byte	11                      # Abbreviation Code295	.byte	19                      # DW_TAG_structure_type296	.byte	1                       # DW_CHILDREN_yes297	.byte	3                       # DW_AT_name298	.byte	37                      # DW_FORM_strx1299	.byte	11                      # DW_AT_byte_size300	.byte	11                      # DW_FORM_data1301	.byte	58                      # DW_AT_decl_file302	.byte	11                      # DW_FORM_data1303	.byte	59                      # DW_AT_decl_line304	.byte	11                      # DW_FORM_data1305	.byte	0                       # EOM(1)306	.byte	0                       # EOM(2)307	.byte	12                      # Abbreviation Code308	.byte	13                      # DW_TAG_member309	.byte	0                       # DW_CHILDREN_no310	.byte	3                       # DW_AT_name311	.byte	37                      # DW_FORM_strx1312	.byte	73                      # DW_AT_type313	.byte	19                      # DW_FORM_ref4314	.byte	58                      # DW_AT_decl_file315	.byte	11                      # DW_FORM_data1316	.byte	59                      # DW_AT_decl_line317	.byte	11                      # DW_FORM_data1318	.byte	56                      # DW_AT_data_member_location319	.byte	11                      # DW_FORM_data1320	.byte	0                       # EOM(1)321	.byte	0                       # EOM(2)322	.byte	0                       # EOM(3)323	.section	.debug_info,"",@progbits324.Lcu_begin0:325	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit326.Ldebug_info_start0:327	.short	5                       # DWARF version number328	.byte	1                       # DWARF Unit Type329	.byte	8                       # Address Size (in bytes)330	.long	.debug_abbrev           # Offset Into Abbrev. Section331	.byte	1                       # Abbrev [1] 0xc:0x7d DW_TAG_compile_unit332	.byte	0                       # DW_AT_producer333	.short	29                      # DW_AT_language334	.byte	1                       # DW_AT_name335	.long	.Lstr_offsets_base0     # DW_AT_str_offsets_base336	.long	.Lline_table_start0     # DW_AT_stmt_list337	.byte	2                       # DW_AT_comp_dir338	.byte	0                       # DW_AT_low_pc339	.long	.Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc340	.long	.Laddr_table_base0      # DW_AT_addr_base341	.long	.Lloclists_table_base0  # DW_AT_loclists_base342	.byte	2                       # Abbrev [2] 0x27:0x10 DW_TAG_enumeration_type343	.long	55                      # DW_AT_type344	.byte	6                       # DW_AT_name345	.byte	4                       # DW_AT_byte_size346	.byte	0                       # DW_AT_decl_file347	.byte	5                       # DW_AT_decl_line348	.byte	3                       # Abbrev [3] 0x30:0x3 DW_TAG_enumerator349	.byte	4                       # DW_AT_name350	.byte	0                       # DW_AT_const_value351	.byte	3                       # Abbrev [3] 0x33:0x3 DW_TAG_enumerator352	.byte	5                       # DW_AT_name353	.byte	1                       # DW_AT_const_value354	.byte	0                       # End Of Children Mark355	.byte	4                       # Abbrev [4] 0x37:0x4 DW_TAG_base_type356	.byte	3                       # DW_AT_name357	.byte	7                       # DW_AT_encoding358	.byte	4                       # DW_AT_byte_size359	.byte	4                       # Abbrev [4] 0x3b:0x4 DW_TAG_base_type360	.byte	7                       # DW_AT_name361	.byte	7                       # DW_AT_encoding362	.byte	8                       # DW_AT_byte_size363	.byte	5                       # Abbrev [5] 0x3f:0x27 DW_TAG_subprogram364	.byte	0                       # DW_AT_low_pc365	.long	.Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc366	.byte	1                       # DW_AT_frame_base367	.byte	90368                                        # DW_AT_call_all_calls369	.byte	9                       # DW_AT_name370	.byte	0                       # DW_AT_decl_file371	.byte	7                       # DW_AT_decl_line372                                        # DW_AT_external373	.byte	6                       # Abbrev [6] 0x4a:0x9 DW_TAG_variable374	.byte	0                       # DW_AT_location375	.byte	10                      # DW_AT_name376	.byte	0                       # DW_AT_decl_file377	.byte	9                       # DW_AT_decl_line378	.long	112                     # DW_AT_type379	.byte	7                       # Abbrev [7] 0x53:0x6 DW_TAG_call_site380	.long	102                     # DW_AT_call_origin381	.byte	1                       # DW_AT_call_return_pc382	.byte	7                       # Abbrev [7] 0x59:0x6 DW_TAG_call_site383	.long	102                     # DW_AT_call_origin384	.byte	2                       # DW_AT_call_return_pc385	.byte	7                       # Abbrev [7] 0x5f:0x6 DW_TAG_call_site386	.long	102                     # DW_AT_call_origin387	.byte	3                       # DW_AT_call_return_pc388	.byte	0                       # End Of Children Mark389	.byte	8                       # Abbrev [8] 0x66:0xa DW_TAG_subprogram390	.byte	8                       # DW_AT_name391	.byte	0                       # DW_AT_decl_file392	.byte	6                       # DW_AT_decl_line393                                        # DW_AT_prototyped394                                        # DW_AT_declaration395                                        # DW_AT_external396	.byte	9                       # Abbrev [9] 0x6a:0x5 DW_TAG_formal_parameter397	.long	59                      # DW_AT_type398	.byte	0                       # End Of Children Mark399	.byte	10                      # Abbrev [10] 0x70:0x5 DW_TAG_pointer_type400	.long	117                     # DW_AT_type401	.byte	11                      # Abbrev [11] 0x75:0xf DW_TAG_structure_type402	.byte	10                      # DW_AT_name403	.byte	4                       # DW_AT_byte_size404	.byte	0                       # DW_AT_decl_file405	.byte	2                       # DW_AT_decl_line406	.byte	12                      # Abbrev [12] 0x7a:0x9 DW_TAG_member407	.byte	11                      # DW_AT_name408	.long	132                     # DW_AT_type409	.byte	0                       # DW_AT_decl_file410	.byte	3                       # DW_AT_decl_line411	.byte	0                       # DW_AT_data_member_location412	.byte	0                       # End Of Children Mark413	.byte	4                       # Abbrev [4] 0x84:0x4 DW_TAG_base_type414	.byte	12                      # DW_AT_name415	.byte	5                       # DW_AT_encoding416	.byte	4                       # DW_AT_byte_size417	.byte	0                       # End Of Children Mark418.Ldebug_info_end0:419	.section	.debug_str_offsets,"",@progbits420	.long	56                      # Length of String Offsets Set421	.short	5422	.short	0423.Lstr_offsets_base0:424	.section	.debug_str,"MS",@progbits,1425.Linfo_string0:426	.asciz	"clang version 17.0.0 (/home/eddy/work/llvm-project/clang 76d673bb89f8ec8cf65a4294a98a83c9d6646b11)" # string offset=0427.Linfo_string1:428	.asciz	"t.c"                   # string offset=99429.Linfo_string2:430	.asciz	"/home/eddy/work/tmp"   # string offset=103431.Linfo_string3:432	.asciz	"unsigned int"          # string offset=123433.Linfo_string4:434	.asciz	"U"                     # string offset=136435.Linfo_string5:436	.asciz	"V"                     # string offset=138437.Linfo_string6:438	.asciz	"bar"                   # string offset=140439.Linfo_string7:440	.asciz	"unsigned long"         # string offset=144441.Linfo_string8:442	.asciz	"consume"               # string offset=158443.Linfo_string9:444	.asciz	"root"                  # string offset=166445.Linfo_string10:446	.asciz	"foo"                   # string offset=171447.Linfo_string11:448	.asciz	"a"                     # string offset=175449.Linfo_string12:450	.asciz	"int"                   # string offset=177451	.section	.debug_str_offsets,"",@progbits452	.long	.Linfo_string0453	.long	.Linfo_string1454	.long	.Linfo_string2455	.long	.Linfo_string3456	.long	.Linfo_string4457	.long	.Linfo_string5458	.long	.Linfo_string6459	.long	.Linfo_string7460	.long	.Linfo_string8461	.long	.Linfo_string9462	.long	.Linfo_string10463	.long	.Linfo_string11464	.long	.Linfo_string12465	.section	.debug_addr,"",@progbits466	.long	.Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution467.Ldebug_addr_start0:468	.short	5                       # DWARF version number469	.byte	8                       # Address size470	.byte	0                       # Segment selector size471.Laddr_table_base0:472	.quad	.Lfunc_begin0473	.quad	.Ltmp5474	.quad	.Ltmp8475	.quad	.Ltmp11476.Ldebug_addr_end0:477	.section	.BTF,"",@progbits478	.short	60319                   # 0xeb9f479	.byte	1480	.byte	0481	.long	24482	.long	0483	.long	140484	.long	140485	.long	262486	.long	0                       # BTF_KIND_FUNC_PROTO(id = 1)487	.long	218103808               # 0xd000000488	.long	0489	.long	1                       # BTF_KIND_FUNC(id = 2)490	.long	201326593               # 0xc000001491	.long	1492	.long	67                      # BTF_KIND_STRUCT(id = 3)493	.long	67108865                # 0x4000001494	.long	4495	.long	71496	.long	4497	.long	0                       # 0x0498	.long	73                      # BTF_KIND_INT(id = 4)499	.long	16777216                # 0x1000000500	.long	4501	.long	16777248                # 0x1000020502	.long	0                       # BTF_KIND_FUNC_PROTO(id = 5)503	.long	218103809               # 0xd000001504	.long	0505	.long	0506	.long	6507	.long	129                     # BTF_KIND_INT(id = 6)508	.long	16777216                # 0x1000000509	.long	8510	.long	64                      # 0x40511	.long	143                     # BTF_KIND_FUNC(id = 7)512	.long	201326594               # 0xc000002513	.long	5514	.long	191                     # BTF_KIND_ENUM(id = 8)515	.long	100663298               # 0x6000002516	.long	4517	.long	195518	.long	0519	.long	197520	.long	1521	.byte	0                       # string offset=0522	.ascii	"root"                  # string offset=1523	.byte	0524	.ascii	".text"                 # string offset=6525	.byte	0526	.ascii	"/home/eddy/work/tmp/t.c" # string offset=12527	.byte	0528	.ascii	"  asm volatile(\"r0 = 42;\":::);" # string offset=36529	.byte	0530	.ascii	"foo"                   # string offset=67531	.byte	0532	.byte	97                      # string offset=71533	.byte	0534	.ascii	"int"                   # string offset=73535	.byte	0536	.byte	48                      # string offset=77537	.byte	0538	.ascii	"  consume(__builtin_preserve_type_info(*foo, 0));" # string offset=79539	.byte	0540	.ascii	"unsigned long"         # string offset=129541	.byte	0542	.ascii	"consume"               # string offset=143543	.byte	0544	.ascii	"0:0"                   # string offset=151545	.byte	0546	.ascii	"  consume((unsigned long) &foo->a);" # string offset=155547	.byte	0548	.ascii	"bar"                   # string offset=191549	.byte	0550	.byte	85                      # string offset=195551	.byte	0552	.byte	86                      # string offset=197553	.byte	0554	.ascii	"  consume(__builtin_preserve_enum_value(*(enum bar *)U, 0));" # string offset=199555	.byte	0556	.byte	125                     # string offset=260557	.byte	0558	.section	.BTF.ext,"",@progbits559	.short	60319                   # 0xeb9f560	.byte	1561	.byte	0562	.long	32563	.long	0564	.long	20565	.long	20566	.long	92567	.long	112568	.long	60569	.long	8                       # FuncInfo570	.long	6                       # FuncInfo section string offset=6571	.long	1572	.long	.Lfunc_begin0573	.long	2574	.long	16                      # LineInfo575	.long	6                       # LineInfo section string offset=6576	.long	5577	.long	.Ltmp0578	.long	12579	.long	36580	.long	8195                    # Line 8 Col 3581	.long	.Ltmp4582	.long	12583	.long	79584	.long	10243                   # Line 10 Col 3585	.long	.Ltmp7586	.long	12587	.long	155588	.long	11267                   # Line 11 Col 3589	.long	.Ltmp10590	.long	12591	.long	199592	.long	12291                   # Line 12 Col 3593	.long	.Ltmp12594	.long	12595	.long	260596	.long	13313                   # Line 13 Col 1597	.long	16                      # FieldReloc598	.long	6                       # Field reloc section string offset=6599	.long	3600	.long	.Ltmp3601	.long	3602	.long	77603	.long	8604	.long	.Ltmp6605	.long	3606	.long	151607	.long	0608	.long	.Ltmp9609	.long	8610	.long	77611	.long	10612	.addrsig613	.section	.debug_line,"",@progbits614.Lline_table_start0:615