.file "fibs1.c" .text .p2align 4,,15 .globl fib1 .type fib1, @function fib1: .LFB20: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 pushq %rbx .cfi_def_cfa_offset 24 .cfi_offset 3, -24 movl %edi, %ebx subq $8, %rsp .cfi_def_cfa_offset 32 cmpl $2, %edi jle .L5 xorl %ebp, %ebp .p2align 4,,10 .p2align 3 .L4: leal -1(%rbx), %edi subl $2, %ebx call fib1 addl %eax, %ebp cmpl $2, %ebx jg .L4 leal 1(%rbp), %eax .L2: addq $8, %rsp .cfi_remember_state .cfi_def_cfa_offset 24 popq %rbx .cfi_def_cfa_offset 16 popq %rbp .cfi_def_cfa_offset 8 ret .L5: .cfi_restore_state movl $1, %eax jmp .L2 .cfi_endproc .LFE20: .size fib1, .-fib1 .p2align 4,,15 .globl fib2 .type fib2, @function fib2: .LFB21: .cfi_startproc cmpl $2, %edi jle .L11 movl $1, %edx movl $1, %ecx jmp .L10 .p2align 4,,10 .p2align 3 .L15: movl %edx, %ecx movl %eax, %edx .L10: subl $1, %edi leal (%rcx,%rdx), %eax cmpl $2, %edi jne .L15 rep ret .L11: movl $1, %eax ret .cfi_endproc .LFE21: .size fib2, .-fib2 .p2align 4,,15 .globl fib3 .type fib3, @function fib3: .LFB22: .cfi_startproc cmpl $2, %edi jg .L18 jmp .L24 .p2align 4,,10 .p2align 3 .L23: movl %edx, %esi movl %eax, %edx .L18: subl $1, %edi leal (%rsi,%rdx), %eax cmpl $2, %edi jne .L23 rep ret .L24: movl %edx, %eax ret .cfi_endproc .LFE22: .size fib3, .-fib3 .section .rodata.str1.1,"aMS",@progbits,1 .LC0: .string " %d %d %d\n" .section .text.startup,"ax",@progbits .p2align 4,,15 .globl main .type main, @function main: .LFB23: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movl $8, %eax movl $1, %edx movl $1, %ecx pushq %rbx .cfi_def_cfa_offset 24 .cfi_offset 3, -24 subq $8, %rsp .cfi_def_cfa_offset 32 jmp .L27 .p2align 4,,10 .p2align 3 .L31: movl %edx, %ecx movl %ebp, %edx .L27: subl $1, %eax leal (%rcx,%rdx), %ebp jne .L31 movl $8, %eax movl $1, %esi movl $1, %edx jmp .L29 .p2align 4,,10 .p2align 3 .L32: movl %esi, %edx movl %ebx, %esi .L29: subl $1, %eax leal (%rdx,%rsi), %ebx jne .L32 movl $10, %edi call fib1 movl %ebp, %ecx movl %ebx, %edx movl %eax, %esi movl $.LC0, %edi xorl %eax, %eax call printf addq $8, %rsp .cfi_def_cfa_offset 24 xorl %eax, %eax popq %rbx .cfi_def_cfa_offset 16 popq %rbp .cfi_def_cfa_offset 8 ret .cfi_endproc .LFE23: .size main, .-main .ident "GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-16)" .section .note.GNU-stack,"",@progbits