dw2-restrict.S revision 1.7
1/* Copyright (C) 2012-2017 Free Software Foundation, Inc. 2 3 This program is free software; you can redistribute it and/or modify 4 it under the terms of the GNU General Public License as published by 5 the Free Software Foundation; either version 3 of the License, or 6 (at your option) any later version. 7 8 This program is distributed in the hope that it will be useful, 9 but WITHOUT ANY WARRANTY; without even the implied warranty of 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 GNU General Public License for more details. 12 13 You should have received a copy of the GNU General Public License 14 along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16 This was created using clang -g -S dw2-restrict.c. 17 18 */ 19 20 .file "dw2-restrict.c" 21 .section .debug_frame,"",@progbits 22.Lsection_debug_frame: 23 .section .debug_info,"",@progbits 24.Lsection_info: 25 .section .debug_abbrev,"",@progbits 26.Lsection_abbrev: 27 .section .debug_aranges,"",@progbits 28 .section .debug_macinfo,"",@progbits 29 .section .debug_line,"",@progbits 30.Lsection_line: 31 .section .debug_loc,"",@progbits 32 .section .debug_pubnames,"",@progbits 33 .section .debug_pubtypes,"",@progbits 34 .section .debug_str,"",@progbits 35.Lsection_str: 36 .section .debug_ranges,"",@progbits 37.Ldebug_range: 38 .section .debug_loc,"",@progbits 39.Lsection_debug_loc: 40 .text 41.Ltext_begin: 42 .data 43 .file 1 "dw2-restrict.c" 44 .text 45 .globl f 46 .align 16, 0x90 47 .type f,@function 48f: # @f 49.Leh_func_begin0: 50.Lfunc_begin0: 51 .loc 1 19 0 52.Ltmp0: 53# BB#0: 54 movq %rdi, -8(%rsp) 55 .loc 1 20 3 56.Ltmp1: 57 movq -8(%rsp), %rdi # dw2-restrict.c:20:3 58 movsbl (%rdi), %eax # dw2-restrict.c:20:3 59 ret # dw2-restrict.c:20:3 60.Ltmp2: 61.Ltmp3: 62 .size f, .Ltmp3-f 63.Lfunc_end0: 64.Leh_func_end0: 65 66 .globl main 67 .align 16, 0x90 68 .type main,@function 69main: # @main 70.Leh_func_begin1: 71.Lfunc_begin1: 72 .loc 1 24 0 73.Ltmp7: 74# BB#0: 75 pushq %rbp 76.Ltmp4: 77 movq %rsp, %rbp 78.Ltmp5: 79 subq $16, %rsp 80.Ltmp6: 81 leaq .L.str, %rdi 82 movl $0, -4(%rbp) 83 .loc 1 25 3 84.Ltmp8: 85 callq f # dw2-restrict.c:25:3 86 addq $16, %rsp # dw2-restrict.c:25:3 87 popq %rbp # dw2-restrict.c:25:3 88 ret # dw2-restrict.c:25:3 89.Ltmp9: 90.Ltmp10: 91 .size main, .Ltmp10-main 92.Lfunc_end1: 93.Leh_func_end1: 94 95 .type .L.str,@object # @.str 96 .section .rodata.str1.1,"aMS",@progbits,1 97.L.str: 98 .asciz "hi bob" 99 .size .L.str, 7 100 101 .section .eh_frame,"a",@progbits 102.LEH_frame0: 103.Lsection_eh_frame0: 104.Leh_frame_common0: 105.Lset0 = .Leh_frame_common_end0-.Leh_frame_common_begin0 # Length of Common Information Entry 106 .long .Lset0 107.Leh_frame_common_begin0: 108 .long 0 # CIE Identifier Tag 109 .byte 1 # DW_CIE_VERSION 110 .asciz "zR" # CIE Augmentation 111 .byte 1 # CIE Code Alignment Factor 112 .byte 120 # CIE Data Alignment Factor 113 .byte 16 # CIE Return Address Column 114 .byte 1 # Augmentation Size 115 .byte 3 # FDE Encoding = udata4 116 .byte 12 # DW_CFA_def_cfa 117 .byte 7 # Register 118 .byte 8 # Offset 119 .byte 144 # DW_CFA_offset + Reg (16) 120 .byte 1 # Offset 121 .align 8 122.Leh_frame_common_end0: 123.Lf.eh: 124.Lset1 = .Leh_frame_end0-.Leh_frame_begin0 # Length of Frame Information Entry 125 .long .Lset1 126.Leh_frame_begin0: 127.Lset2 = .Leh_frame_begin0-.Leh_frame_common0 # FDE CIE offset 128 .long .Lset2 129 .long .Leh_func_begin0 # FDE initial location 130.Lset3 = .Leh_func_end0-.Leh_func_begin0 # FDE address range 131 .long .Lset3 132 .byte 0 # Augmentation size 133 .align 8 134.Leh_frame_end0: 135 136.Lmain.eh: 137.Lset4 = .Leh_frame_end1-.Leh_frame_begin1 # Length of Frame Information Entry 138 .long .Lset4 139.Leh_frame_begin1: 140.Lset5 = .Leh_frame_begin1-.Leh_frame_common0 # FDE CIE offset 141 .long .Lset5 142 .long .Leh_func_begin1 # FDE initial location 143.Lset6 = .Leh_func_end1-.Leh_func_begin1 # FDE address range 144 .long .Lset6 145 .byte 0 # Augmentation size 146 .byte 4 # DW_CFA_advance_loc4 147.Lset7 = .Ltmp4-.Leh_func_begin1 148 .long .Lset7 149 .byte 14 # DW_CFA_def_cfa_offset 150 .byte 16 # Offset 151 .byte 134 # DW_CFA_offset + Reg (6) 152 .byte 2 # Offset 153 .byte 4 # DW_CFA_advance_loc4 154.Lset8 = .Ltmp5-.Ltmp4 155 .long .Lset8 156 .byte 13 # DW_CFA_def_cfa_register 157 .byte 6 # Register 158 .align 8 159.Leh_frame_end1: 160 161 .text 162.Ltext_end: 163 .data 164.Ldata_end: 165 .text 166.Lsection_end1: 167 .section .debug_frame,"",@progbits 168.Ldebug_frame_common: 169.Lset9 = .Ldebug_frame_common_end-.Ldebug_frame_common_begin # Length of Common Information Entry 170 .long .Lset9 171.Ldebug_frame_common_begin: 172 .long -1 # CIE Identifier Tag 173 .byte 1 # CIE Version 174 .byte 0 # CIE Augmentation 175 .byte 1 # CIE Code Alignment Factor 176 .byte 120 # CIE Data Alignment Factor 177 .byte 16 # CIE RA Column 178 .byte 12 # DW_CFA_def_cfa 179 .byte 7 # Register 180 .byte 8 # Offset 181 .byte 144 # DW_CFA_offset + Reg (16) 182 .byte 1 # Offset 183 .align 4 184.Ldebug_frame_common_end: 185.Lset10 = .Ldebug_frame_end0-.Ldebug_frame_begin0 # Length of Frame Information Entry 186 .long .Lset10 187.Ldebug_frame_begin0: 188 .long .Ldebug_frame_common # FDE CIE offset 189 .quad .Lfunc_begin0 # FDE initial location 190.Lset11 = .Lfunc_end0-.Lfunc_begin0 # FDE address range 191 .quad .Lset11 192 .align 4 193.Ldebug_frame_end0: 194.Lset12 = .Ldebug_frame_end1-.Ldebug_frame_begin1 # Length of Frame Information Entry 195 .long .Lset12 196.Ldebug_frame_begin1: 197 .long .Ldebug_frame_common # FDE CIE offset 198 .quad .Lfunc_begin1 # FDE initial location 199.Lset13 = .Lfunc_end1-.Lfunc_begin1 # FDE address range 200 .quad .Lset13 201 .byte 4 # DW_CFA_advance_loc4 202.Lset14 = .Ltmp4-.Lfunc_begin1 203 .long .Lset14 204 .byte 14 # DW_CFA_def_cfa_offset 205 .byte 16 # Offset 206 .byte 134 # DW_CFA_offset + Reg (6) 207 .byte 2 # Offset 208 .byte 4 # DW_CFA_advance_loc4 209.Lset15 = .Ltmp5-.Ltmp4 210 .long .Lset15 211 .byte 13 # DW_CFA_def_cfa_register 212 .byte 6 # Register 213 .align 4 214.Ldebug_frame_end1: 215 .section .debug_info,"",@progbits 216.Linfo_begin1: 217 .long 197 # Length of Compilation Unit Info 218 .short 2 # DWARF version number 219 .long .Labbrev_begin # Offset Into Abbrev. Section 220 .byte 8 # Address Size (in bytes) 221 .byte 1 # Abbrev [1] 0xb:0xba DW_TAG_compile_unit 222 .ascii "clang version 2.9 (tags/RELEASE_29/final)" # DW_AT_producer 223 .byte 0 224 .short 12 # DW_AT_language 225 .ascii "dw2-restrict.c" # DW_AT_name 226 .byte 0 227 .quad 0 # DW_AT_entry_pc 228 .quad .Lsection_line # DW_AT_stmt_list 229 .ascii "/tmp" # DW_AT_comp_dir 230 .byte 0 231 .byte 2 # Abbrev [2] 0x5c:0x7 DW_TAG_base_type 232 .byte 5 # DW_AT_encoding 233 .ascii "int" # DW_AT_name 234 .byte 0 235 .byte 4 # DW_AT_byte_size 236 .byte 3 # Abbrev [3] 0x63:0x2f DW_TAG_subprogram 237 .long 146 # DW_AT_sibling 238 .byte 102 # DW_AT_name 239 .byte 0 240 .byte 1 # DW_AT_decl_file 241 .byte 19 # DW_AT_decl_line 242 .byte 1 # DW_AT_prototyped 243 .long 92 # DW_AT_type 244 .byte 1 # DW_AT_external 245 .quad .Lfunc_begin0 # DW_AT_low_pc 246 .quad .Lfunc_end0 # DW_AT_high_pc 247 .byte 1 # DW_AT_frame_base 248 .byte 87 249 .byte 1 # DW_AT_APPLE_omit_frame_ptr 250 .byte 4 # Abbrev [4] 0x85:0xc DW_TAG_formal_parameter 251 .byte 120 # DW_AT_name 252 .byte 0 253 .byte 1 # DW_AT_decl_file 254 .byte 18 # DW_AT_decl_line 255 .long 191 # DW_AT_type 256 .byte 2 # DW_AT_location 257 .byte 145 258 .byte 120 259 .byte 0 # End Of Children Mark 260 .byte 5 # Abbrev [5] 0x92:0x1f DW_TAG_subprogram 261 .ascii "main" # DW_AT_name 262 .byte 0 263 .byte 1 # DW_AT_decl_file 264 .byte 24 # DW_AT_decl_line 265 .long 92 # DW_AT_type 266 .byte 1 # DW_AT_external 267 .quad .Lfunc_begin1 # DW_AT_low_pc 268 .quad .Lfunc_end1 # DW_AT_high_pc 269 .byte 1 # DW_AT_frame_base 270 .byte 86 271 .byte 2 # Abbrev [2] 0xb1:0x8 DW_TAG_base_type 272 .byte 6 # DW_AT_encoding 273 .ascii "char" # DW_AT_name 274 .byte 0 275 .byte 1 # DW_AT_byte_size 276 .byte 6 # Abbrev [6] 0xb9:0x6 DW_TAG_pointer_type 277 .long 177 # DW_AT_type 278 .byte 8 # DW_AT_byte_size 279 .byte 7 # Abbrev [7] 0xbf:0x5 DW_TAG_restrict_type 280 .long 185 # DW_AT_type 281 .byte 0 # End Of Children Mark 282 .byte 0 # 4 extra padding bytes for GDB 283 .byte 0 284 .byte 0 285 .byte 0 286.Linfo_end1: 287 .section .debug_abbrev,"",@progbits 288.Labbrev_begin: 289 .byte 1 # Abbreviation Code 290 .byte 17 # DW_TAG_compile_unit 291 .byte 1 # DW_CHILDREN_yes 292 .byte 37 # DW_AT_producer 293 .byte 8 # DW_FORM_string 294 .byte 19 # DW_AT_language 295 .byte 5 # DW_FORM_data2 296 .byte 3 # DW_AT_name 297 .byte 8 # DW_FORM_string 298 .byte 82 # DW_AT_entry_pc 299 .byte 1 # DW_FORM_addr 300 .byte 16 # DW_AT_stmt_list 301 .byte 1 # DW_FORM_addr 302 .byte 27 # DW_AT_comp_dir 303 .byte 8 # DW_FORM_string 304 .byte 0 # EOM(1) 305 .byte 0 # EOM(2) 306 .byte 2 # Abbreviation Code 307 .byte 36 # DW_TAG_base_type 308 .byte 0 # DW_CHILDREN_no 309 .byte 62 # DW_AT_encoding 310 .byte 11 # DW_FORM_data1 311 .byte 3 # DW_AT_name 312 .byte 8 # DW_FORM_string 313 .byte 11 # DW_AT_byte_size 314 .byte 11 # DW_FORM_data1 315 .byte 0 # EOM(1) 316 .byte 0 # EOM(2) 317 .byte 3 # Abbreviation Code 318 .byte 46 # DW_TAG_subprogram 319 .byte 1 # DW_CHILDREN_yes 320 .byte 1 # DW_AT_sibling 321 .byte 19 # DW_FORM_ref4 322 .byte 3 # DW_AT_name 323 .byte 8 # DW_FORM_string 324 .byte 58 # DW_AT_decl_file 325 .byte 11 # DW_FORM_data1 326 .byte 59 # DW_AT_decl_line 327 .byte 11 # DW_FORM_data1 328 .byte 39 # DW_AT_prototyped 329 .byte 12 # DW_FORM_flag 330 .byte 73 # DW_AT_type 331 .byte 19 # DW_FORM_ref4 332 .byte 63 # DW_AT_external 333 .byte 12 # DW_FORM_flag 334 .byte 17 # DW_AT_low_pc 335 .byte 1 # DW_FORM_addr 336 .byte 18 # DW_AT_high_pc 337 .byte 1 # DW_FORM_addr 338 .byte 64 # DW_AT_frame_base 339 .byte 10 # DW_FORM_block1 340 .ascii "\347\177" # DW_AT_APPLE_omit_frame_ptr 341 .byte 12 # DW_FORM_flag 342 .byte 0 # EOM(1) 343 .byte 0 # EOM(2) 344 .byte 4 # Abbreviation Code 345 .byte 5 # DW_TAG_formal_parameter 346 .byte 0 # DW_CHILDREN_no 347 .byte 3 # DW_AT_name 348 .byte 8 # DW_FORM_string 349 .byte 58 # DW_AT_decl_file 350 .byte 11 # DW_FORM_data1 351 .byte 59 # DW_AT_decl_line 352 .byte 11 # DW_FORM_data1 353 .byte 73 # DW_AT_type 354 .byte 19 # DW_FORM_ref4 355 .byte 2 # DW_AT_location 356 .byte 10 # DW_FORM_block1 357 .byte 0 # EOM(1) 358 .byte 0 # EOM(2) 359 .byte 5 # Abbreviation Code 360 .byte 46 # DW_TAG_subprogram 361 .byte 0 # DW_CHILDREN_no 362 .byte 3 # DW_AT_name 363 .byte 8 # DW_FORM_string 364 .byte 58 # DW_AT_decl_file 365 .byte 11 # DW_FORM_data1 366 .byte 59 # DW_AT_decl_line 367 .byte 11 # DW_FORM_data1 368 .byte 73 # DW_AT_type 369 .byte 19 # DW_FORM_ref4 370 .byte 63 # DW_AT_external 371 .byte 12 # DW_FORM_flag 372 .byte 17 # DW_AT_low_pc 373 .byte 1 # DW_FORM_addr 374 .byte 18 # DW_AT_high_pc 375 .byte 1 # DW_FORM_addr 376 .byte 64 # DW_AT_frame_base 377 .byte 10 # DW_FORM_block1 378 .byte 0 # EOM(1) 379 .byte 0 # EOM(2) 380 .byte 6 # Abbreviation Code 381 .byte 15 # DW_TAG_pointer_type 382 .byte 0 # DW_CHILDREN_no 383 .byte 73 # DW_AT_type 384 .byte 19 # DW_FORM_ref4 385 .byte 11 # DW_AT_byte_size 386 .byte 11 # DW_FORM_data1 387 .byte 0 # EOM(1) 388 .byte 0 # EOM(2) 389 .byte 7 # Abbreviation Code 390 .byte 55 # DW_TAG_restrict_type 391 .byte 0 # DW_CHILDREN_no 392 .byte 73 # DW_AT_type 393 .byte 19 # DW_FORM_ref4 394 .byte 0 # EOM(1) 395 .byte 0 # EOM(2) 396 .byte 0 # EOM(3) 397.Labbrev_end: 398 .section .debug_pubnames,"",@progbits 399.Lset16 = .Lpubnames_end1-.Lpubnames_begin1 # Length of Public Names Info 400 .long .Lset16 401.Lpubnames_begin1: 402 .short 2 # DWARF Version 403 .long .Linfo_begin1 # Offset of Compilation Unit Info 404.Lset17 = .Linfo_end1-.Linfo_begin1 # Compilation Unit Length 405 .long .Lset17 406 .long 146 # DIE offset 407 .asciz "main" # External Name 408 .long 99 # DIE offset 409 .asciz "f" # External Name 410 .long 0 # End Mark 411.Lpubnames_end1: 412 .section .debug_pubtypes,"",@progbits 413.Lset18 = .Lpubtypes_end1-.Lpubtypes_begin1 # Length of Public Types Info 414 .long .Lset18 415.Lpubtypes_begin1: 416 .short 2 # DWARF Version 417 .long .Linfo_begin1 # Offset of Compilation Unit Info 418.Lset19 = .Linfo_end1-.Linfo_begin1 # Compilation Unit Length 419 .long .Lset19 420 .long 0 # End Mark 421.Lpubtypes_end1: 422 .section .debug_aranges,"",@progbits 423 .section .debug_ranges,"",@progbits 424 .section .debug_macinfo,"",@progbits 425 426 .section ".note.GNU-stack","",@progbits 427