brintos

brintos / llvm-project-archived public Read only

0
0
Text · 21.3 KiB · c38742c Raw
462 lines · plain
1/* Original C (for context):2* #include <stdio.h>3* 4* int main(int argc, char **argv) {5*   for (int i = 1; i < argc; ++i)6*     puts(argv[i]);7*   return 0;8* }9*/10	.file	"d_original_example.c"11	.text12	.globl	main                            # -- Begin function main13	.p2align	414	.type	main,@function15main:                                   # @main16.Lfunc_begin0:17	.file	0 "." "d_original_example.c" md5 0x25192a1d5a6018cf37d369f9004fab0018	.cfi_startproc19# %bb.0:                                # %entry20	#DEBUG_VALUE: main:argc <- $edi21	#DEBUG_VALUE: main:argv <- $rsi22	#DEBUG_VALUE: i <- 123	.loc	0 4 21 prologue_end             # d_original_example.c:4:2124	cmpl	$2, %edi25.Ltmp0:26	.loc	0 4 3 is_stmt 0                 # d_original_example.c:4:327	jl	.LBB0_428.Ltmp1:29# %bb.1:                                # %for.body.preheader30	#DEBUG_VALUE: main:argc <- $edi31	#DEBUG_VALUE: main:argv <- $rsi32	#DEBUG_VALUE: i <- 133	pushq	%rbp34	.cfi_def_cfa_offset 1635	.cfi_offset %rbp, -1636	movq	%rsp, %rbp37	.cfi_def_cfa_register %rbp38	pushq	%r1539	pushq	%r1440	pushq	%rbx41	pushq	%rax42	.cfi_offset %rbx, -4043	.cfi_offset %r14, -3244	.cfi_offset %r15, -2445	movq	%rsi, %rbx46.Ltmp2:47	.loc	0 4 21                          # d_original_example.c:4:2148	movl	%edi, %r14d49.Ltmp3:50	#DEBUG_VALUE: main:argc <- $r14d51	.loc	0 0 21                          # d_original_example.c:0:2152	movl	$1, %r15d53.Ltmp4:54	.p2align	455.LBB0_2:                                # %for.body56                                        # =>This Inner Loop Header: Depth=157	#DEBUG_VALUE: main:argc <- $r14d58	#DEBUG_VALUE: main:argv <- $rbx59	#DEBUG_VALUE: i <- $r1560	.loc	0 5 10 is_stmt 1                # d_original_example.c:5:1061	movq	(%rbx,%r15,8), %rdi62	.loc	0 5 5 is_stmt 0                 # d_original_example.c:5:563	callq	puts@PLT64.Ltmp5:65	.loc	0 4 29 is_stmt 1                # d_original_example.c:4:2966	incq	%r1567.Ltmp6:68	#DEBUG_VALUE: i <- $r1569	.loc	0 4 21 is_stmt 0                # d_original_example.c:4:2170	cmpq	%r15, %r1471.Ltmp7:72	.loc	0 4 3                           # d_original_example.c:4:373	jne	.LBB0_274.Ltmp8:75# %bb.3:76	#DEBUG_VALUE: main:argc <- $r14d77	#DEBUG_VALUE: main:argv <- $rbx78	#DEBUG_VALUE: i <- $r1579	.loc	0 0 3                           # d_original_example.c:0:380	addq	$8, %rsp81	popq	%rbx82.Ltmp9:83	#DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi84	popq	%r1485.Ltmp10:86	#DEBUG_VALUE: main:argc <- [DW_OP_LLVM_entry_value 1] $edi87	popq	%r1588	popq	%rbp89	.cfi_def_cfa %rsp, 890	.cfi_restore %rbx91	.cfi_restore %r1492	.cfi_restore %r1593	.cfi_restore %rbp94.Ltmp11:95.LBB0_4:                                # %for.cond.cleanup96	#DEBUG_VALUE: main:argc <- [DW_OP_LLVM_entry_value 1] $edi97	#DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi98	.loc	0 6 3 is_stmt 1                 # d_original_example.c:6:399	xorl	%eax, %eax100	retq101.Ltmp12:102.Lfunc_end0:103	.size	main, .Lfunc_end0-main104	.cfi_endproc105	.file	1 "/usr/include" "stdio.h" md5 0xf31eefcc3f15835fc5a4023a625cf609106                                        # -- End function107	.section	.debug_loclists,"",@progbits108	.long	.Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length109.Ldebug_list_header_start0:110	.short	5                               # Version111	.byte	8                               # Address size112	.byte	0                               # Segment selector size113	.long	3                               # Offset entry count114.Lloclists_table_base0:115	.long	.Ldebug_loc0-.Lloclists_table_base0116	.long	.Ldebug_loc1-.Lloclists_table_base0117	.long	.Ldebug_loc2-.Lloclists_table_base0118.Ldebug_loc0:119	.byte	4                               # DW_LLE_offset_pair120	.uleb128 .Lfunc_begin0-.Lfunc_begin0    #   starting offset121	.uleb128 .Ltmp3-.Lfunc_begin0           #   ending offset122	.byte	1                               # Loc expr size123	.byte	85                              # super-register DW_OP_reg5124	.byte	4                               # DW_LLE_offset_pair125	.uleb128 .Ltmp3-.Lfunc_begin0           #   starting offset126	.uleb128 .Ltmp10-.Lfunc_begin0          #   ending offset127	.byte	1                               # Loc expr size128	.byte	94                              # super-register DW_OP_reg14129	.byte	4                               # DW_LLE_offset_pair130	.uleb128 .Ltmp10-.Lfunc_begin0          #   starting offset131	.uleb128 .Lfunc_end0-.Lfunc_begin0      #   ending offset132	.byte	4                               # Loc expr size133	.byte	163                             # DW_OP_entry_value134	.byte	1                               # 1135	.byte	85                              # super-register DW_OP_reg5136	.byte	159                             # DW_OP_stack_value137	.byte	0                               # DW_LLE_end_of_list138.Ldebug_loc1:139	.byte	4                               # DW_LLE_offset_pair140	.uleb128 .Lfunc_begin0-.Lfunc_begin0    #   starting offset141	.uleb128 .Ltmp4-.Lfunc_begin0           #   ending offset142	.byte	1                               # Loc expr size143	.byte	84                              # DW_OP_reg4144	.byte	4                               # DW_LLE_offset_pair145	.uleb128 .Ltmp4-.Lfunc_begin0           #   starting offset146	.uleb128 .Ltmp9-.Lfunc_begin0           #   ending offset147	.byte	1                               # Loc expr size148	.byte	83                              # DW_OP_reg3149	.byte	4                               # DW_LLE_offset_pair150	.uleb128 .Ltmp9-.Lfunc_begin0           #   starting offset151	.uleb128 .Lfunc_end0-.Lfunc_begin0      #   ending offset152	.byte	4                               # Loc expr size153	.byte	163                             # DW_OP_entry_value154	.byte	1                               # 1155	.byte	84                              # DW_OP_reg4156	.byte	159                             # DW_OP_stack_value157	.byte	0                               # DW_LLE_end_of_list158.Ldebug_loc2:159	.byte	4                               # DW_LLE_offset_pair160	.uleb128 .Lfunc_begin0-.Lfunc_begin0    #   starting offset161	.uleb128 .Ltmp4-.Lfunc_begin0           #   ending offset162	.byte	3                               # Loc expr size163	.byte	17                              # DW_OP_consts164	.byte	1                               # 1165	.byte	159                             # DW_OP_stack_value166	.byte	4                               # DW_LLE_offset_pair167	.uleb128 .Ltmp4-.Lfunc_begin0           #   starting offset168	.uleb128 .Ltmp8-.Lfunc_begin0           #   ending offset169	.byte	1                               # Loc expr size170	.byte	95                              # DW_OP_reg15171	.byte	0                               # DW_LLE_end_of_list172.Ldebug_list_header_end0:173	.section	.debug_abbrev,"",@progbits174	.byte	1                               # Abbreviation Code175	.byte	17                              # DW_TAG_compile_unit176	.byte	1                               # DW_CHILDREN_yes177	.byte	37                              # DW_AT_producer178	.byte	37                              # DW_FORM_strx1179	.byte	19                              # DW_AT_language180	.byte	5                               # DW_FORM_data2181	.byte	3                               # DW_AT_name182	.byte	37                              # DW_FORM_strx1183	.byte	114                             # DW_AT_str_offsets_base184	.byte	23                              # DW_FORM_sec_offset185	.byte	16                              # DW_AT_stmt_list186	.byte	23                              # DW_FORM_sec_offset187	.byte	27                              # DW_AT_comp_dir188	.byte	37                              # DW_FORM_strx1189	.byte	17                              # DW_AT_low_pc190	.byte	27                              # DW_FORM_addrx191	.byte	18                              # DW_AT_high_pc192	.byte	6                               # DW_FORM_data4193	.byte	115                             # DW_AT_addr_base194	.byte	23                              # DW_FORM_sec_offset195	.ascii	"\214\001"                      # DW_AT_loclists_base196	.byte	23                              # DW_FORM_sec_offset197	.byte	0                               # EOM(1)198	.byte	0                               # EOM(2)199	.byte	2                               # Abbreviation Code200	.byte	46                              # DW_TAG_subprogram201	.byte	1                               # DW_CHILDREN_yes202	.byte	17                              # DW_AT_low_pc203	.byte	27                              # DW_FORM_addrx204	.byte	18                              # DW_AT_high_pc205	.byte	6                               # DW_FORM_data4206	.byte	64                              # DW_AT_frame_base207	.byte	24                              # DW_FORM_exprloc208	.byte	122                             # DW_AT_call_all_calls209	.byte	25                              # DW_FORM_flag_present210	.byte	3                               # DW_AT_name211	.byte	37                              # DW_FORM_strx1212	.byte	58                              # DW_AT_decl_file213	.byte	11                              # DW_FORM_data1214	.byte	59                              # DW_AT_decl_line215	.byte	11                              # DW_FORM_data1216	.byte	39                              # DW_AT_prototyped217	.byte	25                              # DW_FORM_flag_present218	.byte	73                              # DW_AT_type219	.byte	19                              # DW_FORM_ref4220	.byte	63                              # DW_AT_external221	.byte	25                              # DW_FORM_flag_present222	.byte	0                               # EOM(1)223	.byte	0                               # EOM(2)224	.byte	3                               # Abbreviation Code225	.byte	5                               # DW_TAG_formal_parameter226	.byte	0                               # DW_CHILDREN_no227	.byte	2                               # DW_AT_location228	.byte	34                              # DW_FORM_loclistx229	.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	73                              # DW_AT_type236	.byte	19                              # DW_FORM_ref4237	.byte	0                               # EOM(1)238	.byte	0                               # EOM(2)239	.byte	4                               # Abbreviation Code240	.byte	11                              # DW_TAG_lexical_block241	.byte	1                               # DW_CHILDREN_yes242	.byte	17                              # DW_AT_low_pc243	.byte	27                              # DW_FORM_addrx244	.byte	18                              # DW_AT_high_pc245	.byte	6                               # DW_FORM_data4246	.byte	0                               # EOM(1)247	.byte	0                               # EOM(2)248	.byte	5                               # Abbreviation Code249	.byte	52                              # DW_TAG_variable250	.byte	0                               # DW_CHILDREN_no251	.byte	2                               # DW_AT_location252	.byte	34                              # DW_FORM_loclistx253	.byte	3                               # DW_AT_name254	.byte	37                              # DW_FORM_strx1255	.byte	58                              # DW_AT_decl_file256	.byte	11                              # DW_FORM_data1257	.byte	59                              # DW_AT_decl_line258	.byte	11                              # DW_FORM_data1259	.byte	73                              # DW_AT_type260	.byte	19                              # DW_FORM_ref4261	.byte	0                               # EOM(1)262	.byte	0                               # EOM(2)263	.byte	6                               # Abbreviation Code264	.byte	72                              # DW_TAG_call_site265	.byte	0                               # DW_CHILDREN_no266	.byte	127                             # DW_AT_call_origin267	.byte	19                              # DW_FORM_ref4268	.byte	125                             # DW_AT_call_return_pc269	.byte	27                              # DW_FORM_addrx270	.byte	0                               # EOM(1)271	.byte	0                               # EOM(2)272	.byte	7                               # Abbreviation Code273	.byte	46                              # DW_TAG_subprogram274	.byte	1                               # DW_CHILDREN_yes275	.byte	3                               # DW_AT_name276	.byte	37                              # DW_FORM_strx1277	.byte	58                              # DW_AT_decl_file278	.byte	11                              # DW_FORM_data1279	.byte	59                              # DW_AT_decl_line280	.byte	5                               # DW_FORM_data2281	.byte	39                              # DW_AT_prototyped282	.byte	25                              # DW_FORM_flag_present283	.byte	73                              # DW_AT_type284	.byte	19                              # DW_FORM_ref4285	.byte	60                              # DW_AT_declaration286	.byte	25                              # DW_FORM_flag_present287	.byte	63                              # DW_AT_external288	.byte	25                              # DW_FORM_flag_present289	.byte	0                               # EOM(1)290	.byte	0                               # EOM(2)291	.byte	8                               # Abbreviation Code292	.byte	5                               # DW_TAG_formal_parameter293	.byte	0                               # DW_CHILDREN_no294	.byte	73                              # DW_AT_type295	.byte	19                              # DW_FORM_ref4296	.byte	0                               # EOM(1)297	.byte	0                               # EOM(2)298	.byte	9                               # Abbreviation Code299	.byte	36                              # DW_TAG_base_type300	.byte	0                               # DW_CHILDREN_no301	.byte	3                               # DW_AT_name302	.byte	37                              # DW_FORM_strx1303	.byte	62                              # DW_AT_encoding304	.byte	11                              # DW_FORM_data1305	.byte	11                              # DW_AT_byte_size306	.byte	11                              # DW_FORM_data1307	.byte	0                               # EOM(1)308	.byte	0                               # EOM(2)309	.byte	10                              # Abbreviation Code310	.byte	15                              # DW_TAG_pointer_type311	.byte	0                               # DW_CHILDREN_no312	.byte	73                              # DW_AT_type313	.byte	19                              # DW_FORM_ref4314	.byte	0                               # EOM(1)315	.byte	0                               # EOM(2)316	.byte	11                              # Abbreviation Code317	.byte	38                              # DW_TAG_const_type318	.byte	0                               # DW_CHILDREN_no319	.byte	73                              # DW_AT_type320	.byte	19                              # DW_FORM_ref4321	.byte	0                               # EOM(1)322	.byte	0                               # EOM(2)323	.byte	0                               # EOM(3)324	.section	.debug_info,"",@progbits325.Lcu_begin0:326	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit327.Ldebug_info_start0:328	.short	5                               # DWARF version number329	.byte	1                               # DWARF Unit Type330	.byte	8                               # Address Size (in bytes)331	.long	.debug_abbrev                   # Offset Into Abbrev. Section332	.byte	1                               # Abbrev [1] 0xc:0x7f DW_TAG_compile_unit333	.byte	0                               # DW_AT_producer334	.short	29                              # DW_AT_language335	.byte	1                               # DW_AT_name336	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base337	.long	.Lline_table_start0             # DW_AT_stmt_list338	.byte	2                               # DW_AT_comp_dir339	.byte	0                               # DW_AT_low_pc340	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc341	.long	.Laddr_table_base0              # DW_AT_addr_base342	.long	.Lloclists_table_base0          # DW_AT_loclists_base343	.byte	2                               # Abbrev [2] 0x27:0x38 DW_TAG_subprogram344	.byte	0                               # DW_AT_low_pc345	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc346	.byte	1                               # DW_AT_frame_base347	.byte	86348                                        # DW_AT_call_all_calls349	.byte	6                               # DW_AT_name350	.byte	0                               # DW_AT_decl_file351	.byte	3                               # DW_AT_decl_line352                                        # DW_AT_prototyped353	.long	110                             # DW_AT_type354                                        # DW_AT_external355	.byte	3                               # Abbrev [3] 0x36:0x9 DW_TAG_formal_parameter356	.byte	0                               # DW_AT_location357	.byte	7                               # DW_AT_name358	.byte	0                               # DW_AT_decl_file359	.byte	3                               # DW_AT_decl_line360	.long	110                             # DW_AT_type361	.byte	3                               # Abbrev [3] 0x3f:0x9 DW_TAG_formal_parameter362	.byte	1                               # DW_AT_location363	.byte	8                               # DW_AT_name364	.byte	0                               # DW_AT_decl_file365	.byte	3                               # DW_AT_decl_line366	.long	128                             # DW_AT_type367	.byte	4                               # Abbrev [4] 0x48:0x10 DW_TAG_lexical_block368	.byte	0                               # DW_AT_low_pc369	.long	.Ltmp8-.Lfunc_begin0            # DW_AT_high_pc370	.byte	5                               # Abbrev [5] 0x4e:0x9 DW_TAG_variable371	.byte	2                               # DW_AT_location372	.byte	9                               # DW_AT_name373	.byte	0                               # DW_AT_decl_file374	.byte	4                               # DW_AT_decl_line375	.long	110                             # DW_AT_type376	.byte	0                               # End Of Children Mark377	.byte	6                               # Abbrev [6] 0x58:0x6 DW_TAG_call_site378	.long	95                              # DW_AT_call_origin379	.byte	1                               # DW_AT_call_return_pc380	.byte	0                               # End Of Children Mark381	.byte	7                               # Abbrev [7] 0x5f:0xf DW_TAG_subprogram382	.byte	3                               # DW_AT_name383	.byte	1                               # DW_AT_decl_file384	.short	661                             # DW_AT_decl_line385                                        # DW_AT_prototyped386	.long	110                             # DW_AT_type387                                        # DW_AT_declaration388                                        # DW_AT_external389	.byte	8                               # Abbrev [8] 0x68:0x5 DW_TAG_formal_parameter390	.long	114                             # DW_AT_type391	.byte	0                               # End Of Children Mark392	.byte	9                               # Abbrev [9] 0x6e:0x4 DW_TAG_base_type393	.byte	4                               # DW_AT_name394	.byte	5                               # DW_AT_encoding395	.byte	4                               # DW_AT_byte_size396	.byte	10                              # Abbrev [10] 0x72:0x5 DW_TAG_pointer_type397	.long	119                             # DW_AT_type398	.byte	11                              # Abbrev [11] 0x77:0x5 DW_TAG_const_type399	.long	124                             # DW_AT_type400	.byte	9                               # Abbrev [9] 0x7c:0x4 DW_TAG_base_type401	.byte	5                               # DW_AT_name402	.byte	6                               # DW_AT_encoding403	.byte	1                               # DW_AT_byte_size404	.byte	10                              # Abbrev [10] 0x80:0x5 DW_TAG_pointer_type405	.long	133                             # DW_AT_type406	.byte	10                              # Abbrev [10] 0x85:0x5 DW_TAG_pointer_type407	.long	124                             # DW_AT_type408	.byte	0                               # End Of Children Mark409.Ldebug_info_end0:410	.section	.debug_str_offsets,"",@progbits411	.long	44                              # Length of String Offsets Set412	.short	5413	.short	0414.Lstr_offsets_base0:415	.section	.debug_str,"MS",@progbits,1416.Linfo_string0:417	.asciz	"clang version 22.0.0git (https://github.com/UltimateForce21/llvm-project.git 79c0a9e1e7da0f727c41d27c9c6ff8a28bb7d06f)" # string offset=0418.Linfo_string1:419	.asciz	"d_original_example.c"          # string offset=119420.Linfo_string2:421	.asciz	"."                             # string offset=140422.Linfo_string3:423	.asciz	"puts"                          # string offset=142424.Linfo_string4:425	.asciz	"int"                           # string offset=147426.Linfo_string5:427	.asciz	"char"                          # string offset=151428.Linfo_string6:429	.asciz	"main"                          # string offset=156430.Linfo_string7:431	.asciz	"argc"                          # string offset=161432.Linfo_string8:433	.asciz	"argv"                          # string offset=166434.Linfo_string9:435	.asciz	"i"                             # string offset=171436	.section	.debug_str_offsets,"",@progbits437	.long	.Linfo_string0438	.long	.Linfo_string1439	.long	.Linfo_string2440	.long	.Linfo_string3441	.long	.Linfo_string4442	.long	.Linfo_string5443	.long	.Linfo_string6444	.long	.Linfo_string7445	.long	.Linfo_string8446	.long	.Linfo_string9447	.section	.debug_addr,"",@progbits448	.long	.Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution449.Ldebug_addr_start0:450	.short	5                               # DWARF version number451	.byte	8                               # Address size452	.byte	0                               # Segment selector size453.Laddr_table_base0:454	.quad	.Lfunc_begin0455	.quad	.Ltmp5456.Ldebug_addr_end0:457	.ident	"clang version 22.0.0git (https://github.com/UltimateForce21/llvm-project.git 79c0a9e1e7da0f727c41d27c9c6ff8a28bb7d06f)"458	.section	".note.GNU-stack","",@progbits459	.addrsig460	.section	.debug_line,"",@progbits461.Lline_table_start0:462