.text
.file "fib.c"
.globl real_fib # -- Begin function real_fib
.p2align 4, 0x90
.type real_fib,@function
real_fib: # @real_fib
.Lfunc_begin0:
.file 1 "/usr/local/google/home/cmtice/c++-tests" "fib.c"
.loc 1 5 0 # fib.c:5:0
.cfi_startproc
# %bb.0: # %entry
#DEBUG_VALUE: real_fib:x <- $edi
#DEBUG_VALUE: real_fib:answers <- $rsi
#DEBUG_VALUE: real_fib:x <- $edi
pushq %rbp
.cfi_def_cfa_offset 16
pushq %r14
.cfi_def_cfa_offset 24
pushq %rbx
.cfi_def_cfa_offset 32
.cfi_offset %rbx, -32
.cfi_offset %r14, -24
.cfi_offset %rbp, -16
.loc 1 8 7 prologue_end # fib.c:8:7
movslq %edi, %rbp
, %eax
.loc 1 8 20 is_stmt 0 # fib.c:8:20
cmpl $-1, %eax
.Ltmp0:
.loc 1 8 7 # fib.c:8:7
je .LBB0_1
.Ltmp1:
# %bb.2: # %cleanup
#DEBUG_VALUE: real_fib:answers <- $rsi
#DEBUG_VALUE: real_fib:x <- $edi
.loc 1 15 1 is_stmt 1 # fib.c:15:1
popq %rbx
.cfi_def_cfa_offset 24
popq %r14
.cfi_def_cfa_offset 16
popq %rbp
.cfi_def_cfa_offset 8
retq
.Ltmp2:
.LBB0_1: # %if.end
.cfi_def_cfa_offset 32
#DEBUG_VALUE: real_fib:answers <- $rsi
#DEBUG_VALUE: real_fib:x <- $edi
.loc 1 0 1 is_stmt 0 # fib.c:0:1
movq %rsi, %rbx
.Ltmp3:
#DEBUG_VALUE: real_fib:answers <- $rbx
.loc 1 11 22 is_stmt 1 # fib.c:11:22
leal -1(%rbp), %edi
.Ltmp4:
.loc 1 11 12 is_stmt 0 # fib.c:11:12
callq real_fib
movl %eax, %r14d
.loc 1 11 47 # fib.c:11:47
leal -2(%rbp), %edi
.loc 1 11 37 # fib.c:11:37
movq %rbx, %rsi
callq real_fib
.loc 1 11 35 # fib.c:11:35
addl %r14d, %eax
.Ltmp5:
#DEBUG_VALUE: real_fib:result <- $eax
.loc 1 12 16 is_stmt 1 # fib.c:12:16
movl %eax, (%rbx,%rbp,4)
.loc 1 15 1 # fib.c:15:1
popq %rbx
.Ltmp6:
.cfi_def_cfa_offset 24
popq %r14
.cfi_def_cfa_offset 16
popq %rbp
.cfi_def_cfa_offset 8
retq
.Ltmp7:
.Lfunc_end0:
.size real_fib, .Lfunc_end0-real_fib
.cfi_endproc
# -- End function
.globl fib # -- Begin function fib
.p2align 4, 0x90
.type fib,@function
fib: # @fib
.Lfunc_begin1:
.loc 1 19 0 # fib.c:19:0
.cfi_startproc
# %bb.0: # %entry
#DEBUG_VALUE: fib:x <- $edi
movl $-1, %eax
#DEBUG_VALUE: fib:x <- $edi
.Ltmp8:
.loc 1 23 9 prologue_end # fib.c:23:9
cmpl $10, %edi
.Ltmp9:
.loc 1 23 7 is_stmt 0 # fib.c:23:7
jg .LBB1_2
.Ltmp10:
# %bb.1: # %for.body.preheader
#DEBUG_VALUE: fib:x <- $edi
subq $56, %rsp
.cfi_def_cfa_offset 64
.Ltmp11:
.loc 1 27 16 is_stmt 1 # fib.c:27:16
pcmpeqd %xmm0, %xmm0
movdqa %xmm0, (%rsp)
movdqu %xmm0, 28(%rsp)
movdqa %xmm0, 16(%rsp)
movabsq $4294967296, %rax # imm = 0x100000000
.Ltmp12:
#DEBUG_VALUE: fib:i <- undef
#DEBUG_VALUE: fib:i <- [DW_OP_plus_uconst 1, DW_OP_stack_value] undef
.loc 1 29 14 # fib.c:29:14
movq %rax, (%rsp)
.loc 1 31 14 # fib.c:31:14
movl $1, 8(%rsp)
movq %rsp, %rsi
.loc 1 33 10 # fib.c:33:10
callq real_fib
.Ltmp13:
.loc 1 0 10 is_stmt 0 # fib.c:0:10
addq $56, %rsp
.cfi_def_cfa_offset 8
.LBB1_2: # %cleanup
.loc 1 34 1 is_stmt 1 # fib.c:34:1
retq
.Ltmp14:
.Lfunc_end1:
.size fib, .Lfunc_end1-fib
.cfi_endproc
# -- End function
.globl main # -- Begin function main
.p2align 4, 0x90
.type main,@function
main: # @main
.Lfunc_begin2:
.loc 1 37 0 # fib.c:37:0
.cfi_startproc
# %bb.0: # %entry
#DEBUG_VALUE: main:argc <- $edi
#DEBUG_VALUE: main:argv <- $rsi
#DEBUG_VALUE: fib:x <- 3
pushq %r14
.cfi_def_cfa_offset 16
pushq %rbx
.cfi_def_cfa_offset 24
subq $56, %rsp
.cfi_def_cfa_offset 80
.cfi_offset %rbx, -24
.cfi_offset %r14, -16
.loc 1 27 16 prologue_end # fib.c:27:16
pcmpeqd %xmm0, %xmm0
movdqa %xmm0, (%rsp)
movdqu %xmm0, 28(%rsp)
movdqa %xmm0, 16(%rsp)
movabsq $4294967296, %r14 # imm = 0x100000000
.Ltmp15:
#DEBUG_VALUE: fib:i <- undef
#DEBUG_VALUE: fib:i <- [DW_OP_plus_uconst 1, DW_OP_stack_value] undef
.loc 1 29 14 # fib.c:29:14
movq %r14, (%rsp)
.loc 1 31 14 # fib.c:31:14
movl $1, 8(%rsp)
movq %rsp, %rbx
.loc 1 33 10 # fib.c:33:10
movl $3, %edi
.Ltmp16:
movq %rbx, %rsi
.Ltmp17:
callq real_fib
.Ltmp18:
#DEBUG_VALUE: main:result <- $eax
.loc 1 41 3 # fib.c:41:3
movl $.L.str, %edi
movl %eax, %esi
xorl %eax, %eax
.Ltmp19:
callq printf
.Ltmp20:
.loc 1 27 16 # fib.c:27:16
pcmpeqd %xmm0, %xmm0
.Ltmp21:
#DEBUG_VALUE: fib:x <- 4
.loc 1 27 16 is_stmt 0 # fib.c:27:16
movdqa %xmm0, (%rsp)
movdqu %xmm0, 28(%rsp)
movdqa %xmm0, 16(%rsp)
.Ltmp22:
#DEBUG_VALUE: fib:i <- undef
#DEBUG_VALUE: fib:i <- [DW_OP_plus_uconst 1, DW_OP_stack_value] undef
.loc 1 29 14 is_stmt 1 # fib.c:29:14
movq %r14, (%rsp)
.loc 1 31 14 # fib.c:31:14
movl $1, 8(%rsp)
.loc 1 33 10 # fib.c:33:10
movl $4, %edi
movq %rbx, %rsi
callq real_fib
.Ltmp23:
#DEBUG_VALUE: main:result <- $eax
.loc 1 43 3 # fib.c:43:3
movl $.L.str.1, %edi
movl %eax, %esi
xorl %eax, %eax
.Ltmp24:
callq printf
.Ltmp25:
.loc 1 27 16 # fib.c:27:16
pcmpeqd %xmm0, %xmm0
.Ltmp26:
#DEBUG_VALUE: fib:x <- 5
.loc 1 27 16 is_stmt 0 # fib.c:27:16
movdqa %xmm0, (%rsp)
movdqu %xmm0, 28(%rsp)
movdqa %xmm0, 16(%rsp)
.Ltmp27:
#DEBUG_VALUE: fib:i <- undef
#DEBUG_VALUE: fib:i <- [DW_OP_plus_uconst 1, DW_OP_stack_value] undef
.loc 1 29 14 is_stmt 1 # fib.c:29:14
movq %r14, (%rsp)
.loc 1 31 14 # fib.c:31:14
movl $1, 8(%rsp)
.loc 1 33 10 # fib.c:33:10
movl $5, %edi
movq %rbx, %rsi
callq real_fib
.Ltmp28:
#DEBUG_VALUE: main:result <- $eax
.loc 1 45 3 # fib.c:45:3
movl $.L.str.2, %edi
movl %eax, %esi
xorl %eax, %eax
.Ltmp29:
callq printf
.Ltmp30:
.loc 1 27 16 # fib.c:27:16
pcmpeqd %xmm0, %xmm0
.Ltmp31:
#DEBUG_VALUE: fib:x <- 6
.loc 1 27 16 is_stmt 0 # fib.c:27:16
movdqa %xmm0, (%rsp)
movdqu %xmm0, 28(%rsp)
movdqa %xmm0, 16(%rsp)
.Ltmp32:
#DEBUG_VALUE: fib:i <- undef
#DEBUG_VALUE: fib:i <- [DW_OP_plus_uconst 1, DW_OP_stack_value] undef
.loc 1 29 14 is_stmt 1 # fib.c:29:14
movq %r14, (%rsp)
.loc 1 31 14 # fib.c:31:14
movl $1, 8(%rsp)
.loc 1 33 10 # fib.c:33:10
movl $6, %edi
movq %rbx, %rsi
callq real_fib
.Ltmp33:
#DEBUG_VALUE: main:result <- $eax
.loc 1 47 3 # fib.c:47:3
movl $.L.str.3, %edi
movl %eax, %esi
xorl %eax, %eax
.Ltmp34:
callq printf
.Ltmp35:
.loc 1 27 16 # fib.c:27:16
pcmpeqd %xmm0, %xmm0
.Ltmp36:
#DEBUG_VALUE: fib:x <- 7
.loc 1 27 16 is_stmt 0 # fib.c:27:16
movdqa %xmm0, (%rsp)
movdqu %xmm0, 28(%rsp)
movdqa %xmm0, 16(%rsp)
.Ltmp37:
#DEBUG_VALUE: fib:i <- undef
#DEBUG_VALUE: fib:i <- [DW_OP_plus_uconst 1, DW_OP_stack_value] undef
.loc 1 29 14 is_stmt 1 # fib.c:29:14
movq %r14, (%rsp)
.loc 1 31 14 # fib.c:31:14
movl $1, 8(%rsp)
.loc 1 33 10 # fib.c:33:10
movl $7, %edi
movq %rbx, %rsi
callq real_fib
.Ltmp38:
#DEBUG_VALUE: main:result <- $eax
.loc 1 49 3 # fib.c:49:3
movl $.L.str.4, %edi
movl %eax, %esi
xorl %eax, %eax
.Ltmp39:
callq printf
.Ltmp40:
.loc 1 27 16 # fib.c:27:16
pcmpeqd %xmm0, %xmm0
.Ltmp41:
#DEBUG_VALUE: fib:x <- 8
.loc 1 27 16 is_stmt 0 # fib.c:27:16
movdqa %xmm0, (%rsp)
movdqu %xmm0, 28(%rsp)
movdqa %xmm0, 16(%rsp)
.Ltmp42:
#DEBUG_VALUE: fib:i <- undef
#DEBUG_VALUE: fib:i <- [DW_OP_plus_uconst 1, DW_OP_stack_value] undef
.loc 1 29 14 is_stmt 1 # fib.c:29:14
movq %r14, (%rsp)
.loc 1 31 14 # fib.c:31:14
movl $1, 8(%rsp)
.loc 1 33 10 # fib.c:33:10
movl $8, %edi
movq %rbx, %rsi
callq real_fib
.Ltmp43:
#DEBUG_VALUE: main:result <- $eax
.loc 1 51 3 # fib.c:51:3
movl $.L.str.5, %edi
movl %eax, %esi
xorl %eax, %eax
.Ltmp44:
callq printf
.Ltmp45:
.loc 1 27 16 # fib.c:27:16
pcmpeqd %xmm0, %xmm0
.Ltmp46:
#DEBUG_VALUE: fib:x <- 9
.loc 1 27 16 is_stmt 0 # fib.c:27:16
movdqa %xmm0, (%rsp)
movdqu %xmm0, 28(%rsp)
movdqa %xmm0, 16(%rsp)
.Ltmp47:
#DEBUG_VALUE: fib:i <- undef
#DEBUG_VALUE: fib:i <- [DW_OP_plus_uconst 1, DW_OP_stack_value] undef
.loc 1 29 14 is_stmt 1 # fib.c:29:14
movq %r14, (%rsp)
.loc 1 31 14 # fib.c:31:14
movl $1, 8(%rsp)
.loc 1 33 10 # fib.c:33:10
movl $9, %edi
movq %rbx, %rsi
callq real_fib
.Ltmp48:
#DEBUG_VALUE: main:result <- $eax
.loc 1 53 3 # fib.c:53:3
movl $.L.str.6, %edi
movl %eax, %esi
xorl %eax, %eax
.Ltmp49:
callq printf
.Ltmp50:
.loc 1 27 16 # fib.c:27:16
pcmpeqd %xmm0, %xmm0
.Ltmp51:
#DEBUG_VALUE: fib:x <- 10
.loc 1 27 16 is_stmt 0 # fib.c:27:16
movdqa %xmm0, (%rsp)
movdqu %xmm0, 28(%rsp)
movdqa %xmm0, 16(%rsp)
.Ltmp52:
#DEBUG_VALUE: fib:i <- undef
#DEBUG_VALUE: fib:i <- [DW_OP_plus_uconst 1, DW_OP_stack_value] undef
.loc 1 29 14 is_stmt 1 # fib.c:29:14
movq %r14, (%rsp)
.loc 1 31 14 # fib.c:31:14
movl $1, 8(%rsp)
.loc 1 33 10 # fib.c:33:10
movl $10, %edi
movq %rbx, %rsi
callq real_fib
.Ltmp53:
#DEBUG_VALUE: main:result <- $eax
.loc 1 55 3 # fib.c:55:3
movl $.L.str.7, %edi
movl %eax, %esi
xorl %eax, %eax
.Ltmp54:
callq printf
.loc 1 57 3 # fib.c:57:3
xorl %eax, %eax
addq $56, %rsp
.cfi_def_cfa_offset 24
popq %rbx
.cfi_def_cfa_offset 16
popq %r14
.cfi_def_cfa_offset 8
retq
.Ltmp55:
.Lfunc_end2:
.size main, .Lfunc_end2-main
.cfi_endproc
# -- End function
.type .L.str,@object # @.str
.section .rodata.str1.1,"aMS",@progbits,1
.L.str:
.asciz "fibonacci(3) = %d\n"
.size .L.str, 19
.type .L.str.1,@object # @.str.1
.L.str.1:
.asciz "fibonacci(4) = %d\n"
.size .L.str.1, 19
.type .L.str.2,@object # @.str.2
.L.str.2:
.asciz "fibonacci(5) = %d\n"
.size .L.str.2, 19
.type .L.str.3,@object # @.str.3
.L.str.3:
.asciz "fibonacci(6) = %d\n"
.size .L.str.3, 19
.type .L.str.4,@object # @.str.4
.L.str.4:
.asciz "fibonacci(7) = %d\n"
.size .L.str.4, 19
.type .L.str.5,@object # @.str.5
.L.str.5:
.asciz "fibonacci(8) = %d\n"
.size .L.str.5, 19
.type .L.str.6,@object # @.str.6
.L.str.6:
.asciz "fibonacci(9) = %d\n"
.size .L.str.6, 19
.type .L.str.7,@object # @.str.7
.L.str.7:
.asciz "fibonacci(10) = %d\n"
.size .L.str.7, 20
.section .debug_str,"MS",@progbits,1
.Linfo_string0:
.asciz "clang version 9.0.0 (trunk 355041)" # string offset=0
.Linfo_string1:
.asciz "fib.c" # string offset=35
.Linfo_string2:
.asciz "/usr/local/google/home/cmtice/c++-tests" # string offset=41
.Linfo_string3:
.asciz "fib" # string offset=81
.Linfo_string4:
.asciz "int" # string offset=85
.Linfo_string5:
.asciz "x" # string offset=89
.Linfo_string6:
.asciz "answers" # string offset=91
.Linfo_string7:
.asciz "__ARRAY_SIZE_TYPE__" # string offset=99
.Linfo_string8:
.asciz "i" # string offset=119
.Linfo_string9:
.asciz "real_fib" # string offset=121
.Linfo_string10:
.asciz "main" # string offset=130
.Linfo_string11:
.asciz "result" # string offset=135
.Linfo_string12:
.asciz "argc" # string offset=142
.Linfo_string13:
.asciz "argv" # string offset=147
.Linfo_string14:
.asciz "char" # string offset=152
.section .debug_loc,"",@progbits
.Ldebug_loc0:
.quad .Lfunc_begin0-.Lfunc_begin0
.quad .Ltmp4-.Lfunc_begin0
.short 1 # Loc expr size
.byte 85 # super-register DW_OP_reg5
.quad 0
.quad 0
.Ldebug_loc1:
.quad .Lfunc_begin0-.Lfunc_begin0
.quad .Ltmp3-.Lfunc_begin0
.short 1 # Loc expr size
.byte 84 # DW_OP_reg4
.quad .Ltmp3-.Lfunc_begin0
.quad .Ltmp6-.Lfunc_begin0
.short 1 # Loc expr size
.byte 83 # DW_OP_reg3
.quad 0
.quad 0
.Ldebug_loc2:
.quad .Ltmp5-.Lfunc_begin0
.quad .Lfunc_end0-.Lfunc_begin0
.short 1 # Loc expr size
.byte 80 # super-register DW_OP_reg0
.quad 0
.quad 0
.Ldebug_loc3:
.quad .Lfunc_begin1-.Lfunc_begin0
.quad .Ltmp13-.Lfunc_begin0
.short 1 # Loc expr size
.byte 85 # super-register DW_OP_reg5
.quad 0
.quad 0
.Ldebug_loc4:
.quad .Lfunc_begin2-.Lfunc_begin0
.quad .Ltmp16-.Lfunc_begin0
.short 1 # Loc expr size
.byte 85 # super-register DW_OP_reg5
.quad 0
.quad 0
.Ldebug_loc5:
.quad .Lfunc_begin2-.Lfunc_begin0
.quad .Ltmp17-.Lfunc_begin0
.short 1 # Loc expr size
.byte 84 # DW_OP_reg4
.quad 0
.quad 0
.Ldebug_loc6:
.quad .Ltmp18-.Lfunc_begin0
.quad .Ltmp19-.Lfunc_begin0
.short 1 # Loc expr size
.byte 80 # super-register DW_OP_reg0
.quad .Ltmp23-.Lfunc_begin0
.quad .Ltmp24-.Lfunc_begin0
.short 1 # Loc expr size
.byte 80 # super-register DW_OP_reg0
.quad .Ltmp28-.Lfunc_begin0
.quad .Ltmp29-.Lfunc_begin0
.short 1 # Loc expr size
.byte 80 # super-register DW_OP_reg0
.quad .Ltmp33-.Lfunc_begin0
.quad .Ltmp34-.Lfunc_begin0
.short 1 # Loc expr size
.byte 80 # super-register DW_OP_reg0
.quad .Ltmp38-.Lfunc_begin0
.quad .Ltmp39-.Lfunc_begin0
.short 1 # Loc expr size
.byte 80 # super-register DW_OP_reg0
.quad .Ltmp43-.Lfunc_begin0
.quad .Ltmp44-.Lfunc_begin0
.short 1 # Loc expr size
.byte 80 # super-register DW_OP_reg0
.quad .Ltmp48-.Lfunc_begin0
.quad .Ltmp49-.Lfunc_begin0
.short 1 # Loc expr size
.byte 80 # super-register DW_OP_reg0
.quad .Ltmp53-.Lfunc_begin0
.quad .Ltmp54-.Lfunc_begin0
.short 1 # Loc expr size
.byte 80 # super-register DW_OP_reg0
.quad 0
.quad 0
.Ldebug_loc7:
.quad .Ltmp21-.Lfunc_begin0
.quad .Lfunc_end2-.Lfunc_begin0
.short 3 # Loc expr size
.byte 17 # DW_OP_consts
.byte 4 # 4
.byte 159 # DW_OP_stack_value
.quad 0
.quad 0
.Ldebug_loc8:
.quad .Ltmp26-.Lfunc_begin0
.quad .Lfunc_end2-.Lfunc_begin0
.short 3 # Loc expr size
.byte 17 # DW_OP_consts
.byte 5 # 5
.byte 159 # DW_OP_stack_value
.quad 0
.quad 0
.Ldebug_loc9:
.quad .Ltmp31-.Lfunc_begin0
.quad .Lfunc_end2-.Lfunc_begin0
.short 3 # Loc expr size
.byte 17 # DW_OP_consts
.byte 6 # 6
.byte 159 # DW_OP_stack_value
.quad 0
.quad 0
.Ldebug_loc10:
.quad .Ltmp36-.Lfunc_begin0
.quad .Lfunc_end2-.Lfunc_begin0
.short 3 # Loc expr size
.byte 17 # DW_OP_consts
.byte 7 # 7
.byte 159 # DW_OP_stack_value
.quad 0
.quad 0
.Ldebug_loc11:
.quad .Ltmp41-.Lfunc_begin0
.quad .Lfunc_end2-.Lfunc_begin0
.short 3 # Loc expr size
.byte 17 # DW_OP_consts
.byte 8 # 8
.byte 159 # DW_OP_stack_value
.quad 0
.quad 0
.Ldebug_loc12:
.quad .Ltmp46-.Lfunc_begin0
.quad .Lfunc_end2-.Lfunc_begin0
.short 3 # Loc expr size
.byte 17 # DW_OP_consts
.byte 9 # 9
.byte 159 # DW_OP_stack_value
.quad 0
.quad 0
.Ldebug_loc13:
.quad .Ltmp51-.Lfunc_begin0
.quad .Lfunc_end2-.Lfunc_begin0
.short 3 # Loc expr size
.byte 17 # DW_OP_consts
.byte 10 # 10
.byte 159 # DW_OP_stack_value
.quad 0
.quad 0
.section .debug_abbrev,"",@progbits
.byte 1 # Abbreviation Code
.byte 17 # DW_TAG_compile_unit
.byte 1 # DW_CHILDREN_yes
.byte 37 # DW_AT_producer
.byte 14 # DW_FORM_strp
.byte 19 # DW_AT_language
.byte 5 # DW_FORM_data2
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 16 # DW_AT_stmt_list
.byte 23 # DW_FORM_sec_offset
.byte 27 # DW_AT_comp_dir
.byte 14 # DW_FORM_strp
.byte 17 # DW_AT_low_pc
.byte 1 # DW_FORM_addr
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 2 # Abbreviation Code
.byte 46 # DW_TAG_subprogram
.byte 1 # DW_CHILDREN_yes
.byte 17 # DW_AT_low_pc
.byte 1 # DW_FORM_addr
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 64 # DW_AT_frame_base
.byte 24 # DW_FORM_exprloc
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 39 # DW_AT_prototyped
.byte 25 # DW_FORM_flag_present
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 63 # DW_AT_external
.byte 25 # DW_FORM_flag_present
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 3 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 23 # DW_FORM_sec_offset
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 4 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 23 # DW_FORM_sec_offset
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 5 # Abbreviation Code
.byte 46 # DW_TAG_subprogram
.byte 1 # DW_CHILDREN_yes
.byte 17 # DW_AT_low_pc
.byte 1 # DW_FORM_addr
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 64 # DW_AT_frame_base
.byte 24 # DW_FORM_exprloc
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 6 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 23 # DW_FORM_sec_offset
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 7 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 24 # DW_FORM_exprloc
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 8 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 9 # Abbreviation Code
.byte 46 # DW_TAG_subprogram
.byte 1 # DW_CHILDREN_yes
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 39 # DW_AT_prototyped
.byte 25 # DW_FORM_flag_present
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 63 # DW_AT_external
.byte 25 # DW_FORM_flag_present
.byte 32 # DW_AT_inline
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 10 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 11 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 12 # Abbreviation Code
.byte 36 # DW_TAG_base_type
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 62 # DW_AT_encoding
.byte 11 # DW_FORM_data1
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 13 # Abbreviation Code
.byte 1 # DW_TAG_array_type
.byte 1 # DW_CHILDREN_yes
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 14 # Abbreviation Code
.byte 33 # DW_TAG_subrange_type
.byte 0 # DW_CHILDREN_no
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 55 # DW_AT_count
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 15 # Abbreviation Code
.byte 36 # DW_TAG_base_type
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.byte 62 # DW_AT_encoding
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 16 # Abbreviation Code
.byte 29 # DW_TAG_inlined_subroutine
.byte 1 # DW_CHILDREN_yes
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 85 # DW_AT_ranges
.byte 23 # DW_FORM_sec_offset
.byte 88 # DW_AT_call_file
.byte 11 # DW_FORM_data1
.byte 89 # DW_AT_call_line
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 17 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 28 # DW_AT_const_value
.byte 13 # DW_FORM_sdata
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 18 # Abbreviation Code
.byte 29 # DW_TAG_inlined_subroutine
.byte 1 # DW_CHILDREN_yes
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 17 # DW_AT_low_pc
.byte 1 # DW_FORM_addr
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 88 # DW_AT_call_file
.byte 11 # DW_FORM_data1
.byte 89 # DW_AT_call_line
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 19 # Abbreviation Code
.byte 15 # DW_TAG_pointer_type
.byte 0 # DW_CHILDREN_no
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 0 # EOM(3)
.section .debug_info,"",@progbits
.Lcu_begin0:
.long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
.Ldebug_info_start0:
.short 4 # DWARF version number
.long .debug_abbrev # Offset Into Abbrev. Section
.byte 8 # Address Size (in bytes)
.byte 1 # Abbrev [1] 0xb:0x27b DW_TAG_compile_unit
.long .Linfo_string0 # DW_AT_producer
.short 12 # DW_AT_language
.long .Linfo_string1 # DW_AT_name
.long .Lline_table_start0 # DW_AT_stmt_list
.long .Linfo_string2 # DW_AT_comp_dir
.quad .Lfunc_begin0 # DW_AT_low_pc
.long .Lfunc_end2-.Lfunc_begin0 # DW_AT_high_pc
.byte 2 # Abbrev [2] 0x2a:0x47 DW_TAG_subprogram
.quad .Lfunc_begin0 # DW_AT_low_pc
.long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
.byte 1 # DW_AT_frame_base
.byte 87
.long .Linfo_string9 # DW_AT_name
.byte 1 # DW_AT_decl_file
.byte 4 # DW_AT_decl_line
# DW_AT_prototyped
.long 201 # DW_AT_type
# DW_AT_external
.byte 3 # Abbrev [3] 0x43:0xf DW_TAG_formal_parameter
.long .Ldebug_loc0 # DW_AT_location
.long .Linfo_string5 # DW_AT_name
.byte 1 # DW_AT_decl_file
.byte 4 # DW_AT_decl_line
.long 201 # DW_AT_type
.byte 3 # Abbrev [3] 0x52:0xf DW_TAG_formal_parameter
.long .Ldebug_loc1 # DW_AT_location
.long .Linfo_string6 # DW_AT_name
.byte 1 # DW_AT_decl_file
.byte 4 # DW_AT_decl_line
.long 623 # DW_AT_type
.byte 4 # Abbrev [4] 0x61:0xf DW_TAG_variable
.long .Ldebug_loc2 # DW_AT_location
.long .Linfo_string11 # DW_AT_name
.byte 1 # DW_AT_decl_file
.byte 6 # DW_AT_decl_line
.long 201 # DW_AT_type
.byte 0 # End Of Children Mark
.byte 5 # Abbrev [5] 0x71:0x2a DW_TAG_subprogram
.quad .Lfunc_begin1 # DW_AT_low_pc
.long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc
.byte 1 # DW_AT_frame_base
.byte 87
.long 155 # DW_AT_abstract_origin
.byte 6 # Abbrev [6] 0x84:0x9 DW_TAG_formal_parameter
.long .Ldebug_loc3 # DW_AT_location
.long 167 # DW_AT_abstract_origin
.byte 7 # Abbrev [7] 0x8d:0x8 DW_TAG_variable
.byte 2 # DW_AT_location
.byte 145
.byte 0
.long 178 # DW_AT_abstract_origin
.byte 8 # Abbrev [8] 0x95:0x5 DW_TAG_variable
.long 189 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 9 # Abbrev [9] 0x9b:0x2e DW_TAG_subprogram
.long .Linfo_string3 # DW_AT_name
.byte 1 # DW_AT_decl_file
.byte 18 # DW_AT_decl_line
# DW_AT_prototyped
.long 201 # DW_AT_type
# DW_AT_external
.byte 1 # DW_AT_inline
.byte 10 # Abbrev [10] 0xa7:0xb DW_TAG_formal_parameter
.long .Linfo_string5 # DW_AT_name
.byte 1 # DW_AT_decl_file
.byte 18 # DW_AT_decl_line
.long 201 # DW_AT_type
.byte 11 # Abbrev [11] 0xb2:0xb DW_TAG_variable
.long .Linfo_string6 # DW_AT_name
.byte 1 # DW_AT_decl_file
.byte 20 # DW_AT_decl_line
.long 208 # DW_AT_type
.byte 11 # Abbrev [11] 0xbd:0xb DW_TAG_variable
.long .Linfo_string8 # DW_AT_name
.byte 1 # DW_AT_decl_file
.byte 21 # DW_AT_decl_line
.long 201 # DW_AT_type
.byte 0 # End Of Children Mark
.byte 12 # Abbrev [12] 0xc9:0x7 DW_TAG_base_type
.long .Linfo_string4 # DW_AT_name
.byte 5 # DW_AT_encoding
.byte 4 # DW_AT_byte_size
.byte 13 # Abbrev [13] 0xd0:0xc DW_TAG_array_type
.long 201 # DW_AT_type
.byte 14 # Abbrev [14] 0xd5:0x6 DW_TAG_subrange_type
.long 220 # DW_AT_type
.byte 11 # DW_AT_count
.byte 0 # End Of Children Mark
.byte 15 # Abbrev [15] 0xdc:0x7 DW_TAG_base_type
.long .Linfo_string7 # DW_AT_name
.byte 8 # DW_AT_byte_size
.byte 7 # DW_AT_encoding
.byte 2 # Abbrev [2] 0xe3:0x18c DW_TAG_subprogram
.quad .Lfunc_begin2 # DW_AT_low_pc
.long .Lfunc_end2-.Lfunc_begin2 # DW_AT_high_pc
.byte 1 # DW_AT_frame_base
.byte 87
.long .Linfo_string10 # DW_AT_name
.byte 1 # DW_AT_decl_file
.byte 36 # DW_AT_decl_line
# DW_AT_prototyped
.long 201 # DW_AT_type
# DW_AT_external
.byte 3 # Abbrev [3] 0xfc:0xf DW_TAG_formal_parameter
.long .Ldebug_loc4 # DW_AT_location
.long .Linfo_string12 # DW_AT_name
.byte 1 # DW_AT_decl_file
.byte 36 # DW_AT_decl_line
.long 201 # DW_AT_type
.byte 3 # Abbrev [3] 0x10b:0xf DW_TAG_formal_parameter
.long .Ldebug_loc5 # DW_AT_location
.long .Linfo_string13 # DW_AT_name
.byte 1 # DW_AT_decl_file
.byte 36 # DW_AT_decl_line
.long 628 # DW_AT_type
.byte 4 # Abbrev [4] 0x11a:0xf DW_TAG_variable
.long .Ldebug_loc6 # DW_AT_location
.long .Linfo_string11 # DW_AT_name
.byte 1 # DW_AT_decl_file
.byte 38 # DW_AT_decl_line
.long 201 # DW_AT_type
.byte 16 # Abbrev [16] 0x129:0x1f DW_TAG_inlined_subroutine
.long 155 # DW_AT_abstract_origin
.long .Ldebug_ranges0 # DW_AT_ranges
.byte 1 # DW_AT_call_file
.byte 40 # DW_AT_call_line
.byte 17 # Abbrev [17] 0x134:0x6 DW_TAG_formal_parameter
.byte 3 # DW_AT_const_value
.long 167 # DW_AT_abstract_origin
.byte 7 # Abbrev [7] 0x13a:0x8 DW_TAG_variable
.byte 2 # DW_AT_location
.byte 145
.byte 0
.long 178 # DW_AT_abstract_origin
.byte 8 # Abbrev [8] 0x142:0x5 DW_TAG_variable
.long 189 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 18 # Abbrev [18] 0x148:0x2a DW_TAG_inlined_subroutine
.long 155 # DW_AT_abstract_origin
.quad .Ltmp21 # DW_AT_low_pc
.long .Ltmp23-.Ltmp21 # DW_AT_high_pc
.byte 1 # DW_AT_call_file
.byte 42 # DW_AT_call_line
.byte 6 # Abbrev [6] 0x15b:0x9 DW_TAG_formal_parameter
.long .Ldebug_loc7 # DW_AT_location
.long 167 # DW_AT_abstract_origin
.byte 7 # Abbrev [7] 0x164:0x8 DW_TAG_variable
.byte 2 # DW_AT_location
.byte 145
.byte 0
.long 178 # DW_AT_abstract_origin
.byte 8 # Abbrev [8] 0x16c:0x5 DW_TAG_variable
.long 189 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 18 # Abbrev [18] 0x172:0x2a DW_TAG_inlined_subroutine
.long 155 # DW_AT_abstract_origin
.quad .Ltmp26 # DW_AT_low_pc
.long .Ltmp28-.Ltmp26 # DW_AT_high_pc
.byte 1 # DW_AT_call_file
.byte 44 # DW_AT_call_line
.byte 6 # Abbrev [6] 0x185:0x9 DW_TAG_formal_parameter
.long .Ldebug_loc8 # DW_AT_location
.long 167 # DW_AT_abstract_origin
.byte 7 # Abbrev [7] 0x18e:0x8 DW_TAG_variable
.byte 2 # DW_AT_location
.byte 145
.byte 0
.long 178 # DW_AT_abstract_origin
.byte 8 # Abbrev [8] 0x196:0x5 DW_TAG_variable
.long 189 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 18 # Abbrev [18] 0x19c:0x2a DW_TAG_inlined_subroutine
.long 155 # DW_AT_abstract_origin
.quad .Ltmp31 # DW_AT_low_pc
.long .Ltmp33-.Ltmp31 # DW_AT_high_pc
.byte 1 # DW_AT_call_file
.byte 46 # DW_AT_call_line
.byte 6 # Abbrev [6] 0x1af:0x9 DW_TAG_formal_parameter
.long .Ldebug_loc9 # DW_AT_location
.long 167 # DW_AT_abstract_origin
.byte 7 # Abbrev [7] 0x1b8:0x8 DW_TAG_variable
.byte 2 # DW_AT_location
.byte 145
.byte 0
.long 178 # DW_AT_abstract_origin
.byte 8 # Abbrev [8] 0x1c0:0x5 DW_TAG_variable
.long 189 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 18 # Abbrev [18] 0x1c6:0x2a DW_TAG_inlined_subroutine
.long 155 # DW_AT_abstract_origin
.quad .Ltmp36 # DW_AT_low_pc
.long .Ltmp38-.Ltmp36 # DW_AT_high_pc
.byte 1 # DW_AT_call_file
.byte 48 # DW_AT_call_line
.byte 6 # Abbrev [6] 0x1d9:0x9 DW_TAG_formal_parameter
.long .Ldebug_loc10 # DW_AT_location
.long 167 # DW_AT_abstract_origin
.byte 7 # Abbrev [7] 0x1e2:0x8 DW_TAG_variable
.byte 2 # DW_AT_location
.byte 145
.byte 0
.long 178 # DW_AT_abstract_origin
.byte 8 # Abbrev [8] 0x1ea:0x5 DW_TAG_variable
.long 189 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 18 # Abbrev [18] 0x1f0:0x2a DW_TAG_inlined_subroutine
.long 155 # DW_AT_abstract_origin
.quad .Ltmp41 # DW_AT_low_pc
.long .Ltmp43-.Ltmp41 # DW_AT_high_pc
.byte 1 # DW_AT_call_file
.byte 50 # DW_AT_call_line
.byte 6 # Abbrev [6] 0x203:0x9 DW_TAG_formal_parameter
.long .Ldebug_loc11 # DW_AT_location
.long 167 # DW_AT_abstract_origin
.byte 7 # Abbrev [7] 0x20c:0x8 DW_TAG_variable
.byte 2 # DW_AT_location
.byte 145
.byte 0
.long 178 # DW_AT_abstract_origin
.byte 8 # Abbrev [8] 0x214:0x5 DW_TAG_variable
.long 189 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 18 # Abbrev [18] 0x21a:0x2a DW_TAG_inlined_subroutine
.long 155 # DW_AT_abstract_origin
.quad .Ltmp46 # DW_AT_low_pc
.long .Ltmp48-.Ltmp46 # DW_AT_high_pc
.byte 1 # DW_AT_call_file
.byte 52 # DW_AT_call_line
.byte 6 # Abbrev [6] 0x22d:0x9 DW_TAG_formal_parameter
.long .Ldebug_loc12 # DW_AT_location
.long 167 # DW_AT_abstract_origin
.byte 7 # Abbrev [7] 0x236:0x8 DW_TAG_variable
.byte 2 # DW_AT_location
.byte 145
.byte 0
.long 178 # DW_AT_abstract_origin
.byte 8 # Abbrev [8] 0x23e:0x5 DW_TAG_variable
.long 189 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 18 # Abbrev [18] 0x244:0x2a DW_TAG_inlined_subroutine
.long 155 # DW_AT_abstract_origin
.quad .Ltmp51 # DW_AT_low_pc
.long .Ltmp53-.Ltmp51 # DW_AT_high_pc
.byte 1 # DW_AT_call_file
.byte 54 # DW_AT_call_line
.byte 6 # Abbrev [6] 0x257:0x9 DW_TAG_formal_parameter
.long .Ldebug_loc13 # DW_AT_location
.long 167 # DW_AT_abstract_origin
.byte 7 # Abbrev [7] 0x260:0x8 DW_TAG_variable
.byte 2 # DW_AT_location
.byte 145
.byte 0
.long 178 # DW_AT_abstract_origin
.byte 8 # Abbrev [8] 0x268:0x5 DW_TAG_variable
.long 189 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 0 # End Of Children Mark
.byte 19 # Abbrev [19] 0x26f:0x5 DW_TAG_pointer_type
.long 201 # DW_AT_type
.byte 19 # Abbrev [19] 0x274:0x5 DW_TAG_pointer_type
.long 633 # DW_AT_type
.byte 19 # Abbrev [19] 0x279:0x5 DW_TAG_pointer_type
.long 638 # DW_AT_type
.byte 12 # Abbrev [12] 0x27e:0x7 DW_TAG_base_type
.long .Linfo_string14 # DW_AT_name
.byte 6 # DW_AT_encoding
.byte 1 # DW_AT_byte_size
.byte 0 # End Of Children Mark
.Ldebug_info_end0:
.section .debug_ranges,"",@progbits
.Ldebug_ranges0:
.quad .Lfunc_begin2-.Lfunc_begin0
.quad .Ltmp18-.Lfunc_begin0
.quad .Ltmp20-.Lfunc_begin0
.quad .Ltmp21-.Lfunc_begin0
.quad .Ltmp25-.Lfunc_begin0
.quad .Ltmp26-.Lfunc_begin0
.quad .Ltmp30-.Lfunc_begin0
.quad .Ltmp31-.Lfunc_begin0
.quad .Ltmp35-.Lfunc_begin0
.quad .Ltmp36-.Lfunc_begin0
.quad .Ltmp40-.Lfunc_begin0
.quad .Ltmp41-.Lfunc_begin0
.quad .Ltmp45-.Lfunc_begin0
.quad .Ltmp46-.Lfunc_begin0
.quad .Ltmp50-.Lfunc_begin0
.quad .Ltmp51-.Lfunc_begin0
.quad 0
.quad 0
.section .debug_macinfo,"",@progbits
.byte 0 # End Of Macro List Mark
.ident "clang version 9.0.0 (trunk 355041)"
.section ".note.GNU-stack","",@progbits
.addrsig
.section .debug_line,"",@progbits
.Lline_table_start0: