#!/usr/bin/env /friends/bin/amd64script .text .globl fizz .align 16, 0x90 .type fizz,@function fizz: # @fizz .cfi_startproc # BB#0: pushq %rbp .Ltmp0: .cfi_def_cfa_offset 16 .Ltmp1: .cfi_offset %rbp, -16 movq %rsp, %rbp .Ltmp2: .cfi_def_cfa_register %rbp movslq %edi, %rax imulq $1431655766, %rax, %rcx # imm = 0x55555556 movq %rcx, %rdx shrq $63, %rdx shrq $32, %rcx addl %edx, %ecx leal (%rcx,%rcx,2), %ecx cmpl %ecx, %eax movl $.L.str, %ecx movl $.L.str.1, %eax cmovneq %rcx, %rax popq %rbp retq .Lfunc_end0: .size fizz, .Lfunc_end0-fizz .cfi_endproc .globl buzz .align 16, 0x90 .type buzz,@function buzz: # @buzz .cfi_startproc # BB#0: pushq %rbp .Ltmp3: .cfi_def_cfa_offset 16 .Ltmp4: .cfi_offset %rbp, -16 movq %rsp, %rbp .Ltmp5: .cfi_def_cfa_register %rbp movslq %edi, %rax imulq $1717986919, %rax, %rcx # imm = 0x66666667 movq %rcx, %rdx shrq $63, %rdx sarq $33, %rcx addl %edx, %ecx leal (%rcx,%rcx,4), %ecx cmpl %ecx, %eax movl $.L.str, %ecx movl $.L.str.2, %eax cmovneq %rcx, %rax popq %rbp retq .Lfunc_end1: .size buzz, .Lfunc_end1-buzz .cfi_endproc .globl fizzbuzz .align 16, 0x90 .type fizzbuzz,@function fizzbuzz: # @fizzbuzz .cfi_startproc # BB#0: pushq %rbp .Ltmp6: .cfi_def_cfa_offset 16 .Ltmp7: .cfi_offset %rbp, -16 movq %rsp, %rbp .Ltmp8: .cfi_def_cfa_register %rbp pushq %r15 pushq %r14 pushq %r12 pushq %rbx .Ltmp9: .cfi_offset %rbx, -48 .Ltmp10: .cfi_offset %r12, -40 .Ltmp11: .cfi_offset %r14, -32 .Ltmp12: .cfi_offset %r15, -24 movl %esi, %r14d movq %rdi, %r15 movslq %r14d, %rbx imulq $1431655766, %rbx, %rax # imm = 0x55555556 movq %rax, %rcx shrq $63, %rcx shrq $32, %rax addl %ecx, %eax leal (%rax,%rax,2), %eax cmpl %eax, %ebx movl $.L.str, %r12d movl $.L.str.1, %esi cmovneq %r12, %rsi callq strcpy imulq $1717986919, %rbx, %rax # imm = 0x66666667 movq %rax, %rcx shrq $63, %rcx sarq $33, %rax addl %ecx, %eax leal (%rax,%rax,4), %eax cmpl %eax, %ebx movl $.L.str.2, %esi cmovneq %r12, %rsi movq %r15, %rdi callq strcat cmpb $0, (%r15) jne .LBB2_2 # BB#1: movl $.L.str.3, %esi xorl %eax, %eax movq %r15, %rdi movl %r14d, %edx callq sprintf .LBB2_2: movq %r15, %rax popq %rbx popq %r12 popq %r14 popq %r15 popq %rbp retq .Lfunc_end2: .size fizzbuzz, .Lfunc_end2-fizzbuzz .cfi_endproc .globl main .align 16, 0x90 .type main,@function main: # @main .cfi_startproc # BB#0: pushq %rbp .Ltmp13: .cfi_def_cfa_offset 16 .Ltmp14: .cfi_offset %rbp, -16 movq %rsp, %rbp .Ltmp15: .cfi_def_cfa_register %rbp pushq %r15 pushq %r14 pushq %r12 pushq %rbx subq $16, %rsp .Ltmp16: .cfi_offset %rbx, -48 .Ltmp17: .cfi_offset %r12, -40 .Ltmp18: .cfi_offset %r14, -32 .Ltmp19: .cfi_offset %r15, -24 movl $1, %r12d movl $.L.str, %r15d leaq -44(%rbp), %r14 .align 16, 0x90 .LBB3_1: # =>This Inner Loop Header: Depth=1 movslq %r12d, %rbx imulq $1431655766, %rbx, %rax # imm = 0x55555556 movq %rax, %rcx shrq $63, %rcx shrq $32, %rax addl %ecx, %eax leal (%rax,%rax,2), %eax cmpl %eax, %ebx movl $.L.str.1, %esi cmovneq %r15, %rsi movq %r14, %rdi callq strcpy imulq $1717986919, %rbx, %rax # imm = 0x66666667 movq %rax, %rcx shrq $63, %rcx sarq $33, %rax addl %ecx, %eax leal (%rax,%rax,4), %eax cmpl %eax, %ebx movl $.L.str.2, %esi cmovneq %r15, %rsi movq %r14, %rdi callq strcat cmpb $0, -44(%rbp) jne .LBB3_3 # BB#2: # in Loop: Header=BB3_1 Depth=1 movl $.L.str.3, %esi xorl %eax, %eax movq %r14, %rdi movl %r12d, %edx callq sprintf .LBB3_3: # %fizzbuzz.exit # in Loop: Header=BB3_1 Depth=1 movq %r14, %rdi callq puts incl %r12d cmpl $31, %r12d jne .LBB3_1 # BB#4: xorl %eax, %eax addq $16, %rsp popq %rbx popq %r12 popq %r14 popq %r15 popq %rbp retq .Lfunc_end3: .size main, .Lfunc_end3-main .cfi_endproc .type .L.str,@object # @.str .section .rodata.str1.1,"aMS",@progbits,1 .L.str: .zero 1 .size .L.str, 1 .type .L.str.1,@object # @.str.1 .L.str.1: .asciz "Fizz" .size .L.str.1, 5 .type .L.str.2,@object # @.str.2 .L.str.2: .asciz "Buzz" .size .L.str.2, 5 .type .L.str.3,@object # @.str.3 .L.str.3: .asciz "%d" .size .L.str.3, 3