.file "asm-intro.c" .text .p2align 4,,15 .globl fun .type fun, @function fun: .LFB26: imulq %rsi, %rdi subq %rdx, %rdi movq %rdi, %rax ret .LFE26: .size fun, .-fun .p2align 4,,15 .globl read_store_ll .type read_store_ll, @function read_store_ll: .LFB27: movq (%rsi), %rax movq %rdi, (%rsi) ret .LFE27: .size read_store_ll, .-read_store_ll .p2align 4,,15 .globl read_store_ii .type read_store_ii, @function read_store_ii: .LFB28: movl (%rsi), %eax movl %edi, (%rsi) ret .LFE28: .size read_store_ii, .-read_store_ii .p2align 4,,15 .globl read_store_il .type read_store_il, @function read_store_il: .LFB29: movq (%rsi), %rax movslq %edi,%rdi movq %rdi, (%rsi) ret .LFE29: .size read_store_il, .-read_store_il .p2align 4,,15 .globl read_store_li .type read_store_li, @function read_store_li: .LFB30: movl (%rsi), %eax movl %edi, (%rsi) ret .LFE30: .size read_store_li, .-read_store_li .p2align 4,,15 .globl set_tmin_i .type set_tmin_i, @function set_tmin_i: .LFB31: movl $-2147483648, (%rdi) ret .LFE31: .size set_tmin_i, .-set_tmin_i .p2align 4,,15 .globl set_minus72 .type set_minus72, @function set_minus72: .LFB32: movq $-72, (%rdi) ret .LFE32: .size set_minus72, .-set_minus72 .p2align 4,,15 .globl set_tmin_l .type set_tmin_l, @function set_tmin_l: .LFB33: movabsq $-9223372036854775808, %rax movq %rax, (%rdi) ret .LFE33: .size set_tmin_l, .-set_tmin_l .p2align 4,,15 .globl swap1 .type swap1, @function swap1: .LFB34: movq (%rdi), %rax movq (%rsi), %rdx movq %rax, (%rsi) movq %rdx, (%rdi) ret .LFE34: .size swap1, .-swap1 .p2align 4,,15 .globl choose .type choose, @function choose: .LFB35: andl $1, %edi movq $-3, -24(%rsp) movq $5, -16(%rsp) movslq %edi,%rdi movq -24(%rsp,%rdi,8), %rax ret .LFE35: .size choose, .-choose .p2align 4,,15 .globl arith .type arith, @function arith: .LFB36: movq %rdi, %rax subq %rsi, %rax leaq (%rsi,%rsi,2), %rsi leaq (%rdx,%rax), %rax salq $4, %rsi leaq 4(%rdi,%rsi), %rdi imulq %rdi, %rax ret .LFE36: .size arith, .-arith .p2align 4,,15 .globl logical1 .type logical1, @function logical1: .LFB37: xorq %rsi, %rdi sarq $17, %rdi andq $-131065, %rdi movq %rdi, %rax ret .LFE37: .size logical1, .-logical1 .p2align 4,,15 .globl logical2 .type logical2, @function logical2: .LFB38: xorq %rsi, %rdi sarq $17, %rdi andl $8185, %edi movq %rdi, %rax ret .LFE38: .size logical2, .-logical2 .p2align 4,,15 .globl mystery .type mystery, @function mystery: .LFB39: imulq %rdx, %rdi leaq (%rsi,%rsi,4), %rsi andq %rsi, %rdi notq %rdi movq %rdi, %rax ret .LFE39: .size mystery, .-mystery .section .rodata.str1.1,"aMS",@progbits,1 .LC0: .string "Usage: %s x y z\n" .LC1: .string "f(%ld, %ld, %ld) --> %ld\n" .LC2: .string "y = %ld; " .section .rodata.str1.8,"aMS",@progbits,1 .align 8 .LC3: .string "read_store_ll(%ld, &y) --> %ld; y = %ld\n" .text .p2align 4,,15 .globl main .type main, @function main: .LFB40: pushq %r13 .LCFI0: pushq %r12 .LCFI1: pushq %rbx .LCFI2: movq %rsi, %rbx subq $16, %rsp .LCFI3: cmpl $4, %edi je .L16 movq (%rsi), %rsi movl $.LC0, %edi xorl %eax, %eax call printf .L16: movq 8(%rbx), %rdi xorl %ecx, %ecx xorl %edx, %edx xorl %esi, %esi call __strtoul_internal movq 16(%rbx), %rdi xorl %ecx, %ecx xorl %edx, %edx xorl %esi, %esi movq %rax, %r13 call __strtoul_internal movq 24(%rbx), %rdi xorl %ecx, %ecx xorl %edx, %edx xorl %esi, %esi movq %rax, 8(%rsp) call __strtoul_internal movq 8(%rsp), %r12 movq %rax, %rbx movq %r13, %rdi movq %rax, %rdx movq %r12, %rsi call fun movq %rbx, %rcx movq %rax, %r8 movq %r12, %rdx movq %r13, %rsi movl $.LC1, %edi xorl %eax, %eax call printf movq 8(%rsp), %rsi movl $.LC2, %edi xorl %eax, %eax call printf leaq 8(%rsp), %rsi movq %r13, %rdi call read_store_ll movq 8(%rsp), %rcx movq %rax, %rdx movq %r13, %rsi movl $.LC3, %edi xorl %eax, %eax call printf addq $16, %rsp xorl %eax, %eax popq %rbx popq %r12 popq %r13 ret .LFE40: .size main, .-main .section .eh_frame,"a",@progbits .Lframe1: .long .LECIE1-.LSCIE1 .LSCIE1: .long 0x0 .byte 0x1 .string "" .uleb128 0x1 .sleb128 -8 .byte 0x10 .byte 0xc .uleb128 0x7 .uleb128 0x8 .byte 0x90 .uleb128 0x1 .align 8 .LECIE1: .LSFDE1: .long .LEFDE1-.LASFDE1 .LASFDE1: .long .LASFDE1-.Lframe1 .quad .LFB26 .quad .LFE26-.LFB26 .align 8 .LEFDE1: .LSFDE3: .long .LEFDE3-.LASFDE3 .LASFDE3: .long .LASFDE3-.Lframe1 .quad .LFB27 .quad .LFE27-.LFB27 .align 8 .LEFDE3: .LSFDE5: .long .LEFDE5-.LASFDE5 .LASFDE5: .long .LASFDE5-.Lframe1 .quad .LFB28 .quad .LFE28-.LFB28 .align 8 .LEFDE5: .LSFDE7: .long .LEFDE7-.LASFDE7 .LASFDE7: .long .LASFDE7-.Lframe1 .quad .LFB29 .quad .LFE29-.LFB29 .align 8 .LEFDE7: .LSFDE9: .long .LEFDE9-.LASFDE9 .LASFDE9: .long .LASFDE9-.Lframe1 .quad .LFB30 .quad .LFE30-.LFB30 .align 8 .LEFDE9: .LSFDE11: .long .LEFDE11-.LASFDE11 .LASFDE11: .long .LASFDE11-.Lframe1 .quad .LFB31 .quad .LFE31-.LFB31 .align 8 .LEFDE11: .LSFDE13: .long .LEFDE13-.LASFDE13 .LASFDE13: .long .LASFDE13-.Lframe1 .quad .LFB32 .quad .LFE32-.LFB32 .align 8 .LEFDE13: .LSFDE15: .long .LEFDE15-.LASFDE15 .LASFDE15: .long .LASFDE15-.Lframe1 .quad .LFB33 .quad .LFE33-.LFB33 .align 8 .LEFDE15: .LSFDE17: .long .LEFDE17-.LASFDE17 .LASFDE17: .long .LASFDE17-.Lframe1 .quad .LFB34 .quad .LFE34-.LFB34 .align 8 .LEFDE17: .LSFDE19: .long .LEFDE19-.LASFDE19 .LASFDE19: .long .LASFDE19-.Lframe1 .quad .LFB35 .quad .LFE35-.LFB35 .align 8 .LEFDE19: .LSFDE21: .long .LEFDE21-.LASFDE21 .LASFDE21: .long .LASFDE21-.Lframe1 .quad .LFB36 .quad .LFE36-.LFB36 .align 8 .LEFDE21: .LSFDE23: .long .LEFDE23-.LASFDE23 .LASFDE23: .long .LASFDE23-.Lframe1 .quad .LFB37 .quad .LFE37-.LFB37 .align 8 .LEFDE23: .LSFDE25: .long .LEFDE25-.LASFDE25 .LASFDE25: .long .LASFDE25-.Lframe1 .quad .LFB38 .quad .LFE38-.LFB38 .align 8 .LEFDE25: .LSFDE27: .long .LEFDE27-.LASFDE27 .LASFDE27: .long .LASFDE27-.Lframe1 .quad .LFB39 .quad .LFE39-.LFB39 .align 8 .LEFDE27: .LSFDE29: .long .LEFDE29-.LASFDE29 .LASFDE29: .long .LASFDE29-.Lframe1 .quad .LFB40 .quad .LFE40-.LFB40 .byte 0x4 .long .LCFI0-.LFB40 .byte 0xe .uleb128 0x10 .byte 0x4 .long .LCFI1-.LCFI0 .byte 0xe .uleb128 0x18 .byte 0x4 .long .LCFI2-.LCFI1 .byte 0xe .uleb128 0x20 .byte 0x83 .uleb128 0x4 .byte 0x8c .uleb128 0x3 .byte 0x8d .uleb128 0x2 .byte 0x4 .long .LCFI3-.LCFI2 .byte 0xe .uleb128 0x30 .align 8 .LEFDE29: .section .note.GNU-stack,"",@progbits .ident "GCC: (GNU) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)"