.file "opt-ind.c" .text .p2align 4,,15 .globl set_row .type set_row, @function set_row: .LFB38: xorl %r8d, %r8d cmpq %rcx, %r8 jge .L7 movq %rcx, %rax imulq %rdx, %rax leaq (%rdi,%rax,8), %rdx .p2align 4,,7 .L5: movq (%rsi,%r8,8), %rax incq %r8 movq %rax, (%rdx) addq $8, %rdx cmpq %rcx, %r8 jl .L5 .L7: rep ; ret .LFE38: .size set_row, .-set_row .p2align 4,,15 .globl set_rowp .type set_rowp, @function set_rowp: .LFB39: imulq %rcx, %rdx leaq (%rdi,%rdx,8), %rdx xorl %edi, %edi jmp .L16 .p2align 4,,7 .L17: movq (%rsi,%rdi,8), %rax incq %rdi movq %rax, (%rdx) addq $8, %rdx .L16: cmpq %rcx, %rdi jl .L17 rep ; ret .LFE39: .size set_rowp, .-set_rowp .p2align 4,,15 .globl set_rows .type set_rows, @function set_rows: .LFB40: xorl %r9d, %r9d cmpq %rdx, %r9 jge .L28 xorl %r10d, %r10d .p2align 4,,7 .L26: xorl %r8d, %r8d cmpq %rdx, %r8 jge .L30 leaq (%rdi,%r10,8), %rcx .p2align 4,,7 .L25: movq (%rsi,%r8,8), %rax incq %r8 movq %rax, (%rcx) addq $8, %rcx cmpq %rdx, %r8 jl .L25 .L30: incq %r9 addq %rdx, %r10 cmpq %rdx, %r9 jl .L26 .L28: rep ; ret .LFE40: .size set_rows, .-set_rows .p2align 4,,15 .globl set_rowsp .type set_rowsp, @function set_rowsp: .LFB41: xorl %r10d, %r10d testq %rdx, %rdx jle .L41 movq %rdx, %r9 .p2align 4,,7 .L39: leaq (%rdi,%r10,8), %rcx xorl %r8d, %r8d jmp .L44 .p2align 4,,7 .L45: movq (%rsi,%r8,8), %rax incq %r8 movq %rax, (%rcx) addq $8, %rcx .L44: cmpq %rdx, %r8 jl .L45 addq %rdx, %r10 decq %r9 jne .L39 .L41: rep ; ret .LFE41: .size set_rowsp, .-set_rowsp .p2align 4,,15 .globl sum_rows1 .type sum_rows1, @function sum_rows1: .LFB42: xorl %r8d, %r8d cmpq %rdx, %r8 jge .L56 xorl %r10d, %r10d xorl %r9d, %r9d .p2align 4,,7 .L54: movq %r10, -8(%rsp) testq %rdx, %rdx movlpd -8(%rsp), %xmm0 movsd %xmm0, (%rsi,%r8,8) jle .L58 leaq (%rdi,%r9,8), %rcx movq %rdx, %rax .p2align 4,,7 .L53: addsd (%rcx), %xmm0 addq $8, %rcx decq %rax movsd %xmm0, (%rsi,%r8,8) jne .L53 .L58: incq %r8 addq %rdx, %r9 cmpq %rdx, %r8 jl .L54 .L56: rep ; ret .LFE42: .size sum_rows1, .-sum_rows1 .p2align 4,,15 .globl sum_rows1p .type sum_rows1p, @function sum_rows1p: .LFB43: xorl %r8d, %r8d cmpq %rdx, %r8 jge .L69 xorl %r10d, %r10d xorl %r9d, %r9d .p2align 4,,7 .L67: movq %r10, -8(%rsp) testq %rdx, %rdx movlpd -8(%rsp), %xmm0 movsd %xmm0, (%rsi,%r8,8) jle .L71 leaq (%rdi,%r9,8), %rcx movq %rdx, %rax .p2align 4,,7 .L66: addsd (%rcx), %xmm0 addq $8, %rcx decq %rax movsd %xmm0, (%rsi,%r8,8) jne .L66 .L71: incq %r8 addq %rdx, %r9 cmpq %rdx, %r8 jl .L67 .L69: rep ; ret .LFE43: .size sum_rows1p, .-sum_rows1p .p2align 4,,15 .globl sum_rows2 .type sum_rows2, @function sum_rows2: .LFB44: xorl %r8d, %r8d cmpq %rdx, %r8 jge .L82 xorl %r10d, %r10d xorl %r9d, %r9d .p2align 4,,7 .L80: movq %r10, -8(%rsp) testq %rdx, %rdx movlpd -8(%rsp), %xmm0 jle .L84 leaq (%rdi,%r9,8), %rcx movq %rdx, %rax .p2align 4,,7 .L79: addsd (%rcx), %xmm0 addq $8, %rcx decq %rax jne .L79 .L84: movsd %xmm0, (%rsi,%r8,8) incq %r8 addq %rdx, %r9 cmpq %rdx, %r8 jl .L80 .L82: rep ; ret .LFE44: .size sum_rows2, .-sum_rows2 .p2align 4,,15 .globl sum_NSEW .type sum_NSEW, @function sum_NSEW: .LFB45: leaq 1(%rsi), %rax leaq -1(%rsi), %r8 imulq %rcx, %rsi imulq %rcx, %rax imulq %rcx, %r8 addq %rdx, %rsi addq %rdx, %rax movlpd (%rdi,%rax,8), %xmm0 addq %rdx, %r8 addsd (%rdi,%r8,8), %xmm0 addsd -8(%rdi,%rsi,8), %xmm0 addsd 8(%rdi,%rsi,8), %xmm0 ret .LFE45: .size sum_NSEW, .-sum_NSEW .p2align 4,,15 .globl sum_NSEW_opt .type sum_NSEW_opt, @function sum_NSEW_opt: .LFB46: imulq %rcx, %rsi addq %rdx, %rsi movq %rsi, %rax subq %rcx, %rax leaq (%rsi,%rcx), %rcx movlpd (%rdi,%rcx,8), %xmm0 addsd (%rdi,%rax,8), %xmm0 addsd -8(%rdi,%rsi,8), %xmm0 addsd 8(%rdi,%rsi,8), %xmm0 ret .LFE46: .size sum_NSEW_opt, .-sum_NSEW_opt .p2align 4,,15 .globl lower1 .type lower1, @function lower1: .LFB47: pushq %r12 .LCFI0: xorl %r12d, %r12d pushq %rbp .LCFI1: movq %rdi, %rbp pushq %rbx .LCFI2: movslq %r12d,%rbx movq %rbp, %rdi call strlen cmpq %rax, %rbx jae .L93 .p2align 4,,7 .L92: movzbl (%rbx,%rbp), %edx leal -65(%rdx), %eax cmpb $25, %al ja .L90 leal 32(%rdx), %eax movb %al, (%rbx,%rbp) .L90: incl %r12d movq %rbp, %rdi movslq %r12d,%rbx call strlen cmpq %rax, %rbx jb .L92 .L93: popq %rbx popq %rbp popq %r12 ret .LFE47: .size lower1, .-lower1 .p2align 4,,15 .globl lower1_goto .type lower1_goto, @function lower1_goto: .LFB48: pushq %r12 .LCFI3: xorl %r12d, %r12d pushq %rbp .LCFI4: pushq %rbx .LCFI5: movq %rdi, %rbx call strlen testq %rax, %rax je .L94 xorl %ebp, %ebp .p2align 4,,7 .L96: movzbl (%rbp,%rbx), %edx leal -65(%rdx), %eax cmpb $25, %al ja .L97 leal 32(%rdx), %eax movb %al, (%rbp,%rbx) .L97: incl %r12d movq %rbx, %rdi movslq %r12d,%rbp call strlen cmpq %rax, %rbp jb .L96 .L94: popq %rbx popq %rbp popq %r12 ret .LFE48: .size lower1_goto, .-lower1_goto .p2align 4,,15 .globl lower2 .type lower2, @function lower2: .LFB49: pushq %rbp .LCFI6: movq %rdi, %rbp pushq %rbx .LCFI7: xorl %ebx, %ebx subq $8, %rsp .LCFI8: call strlen movl %eax, %esi cmpl %esi, %ebx jge .L106 .p2align 4,,7 .L108: movslq %ebx,%rcx movzbl (%rcx,%rbp), %edx leal -65(%rdx), %eax cmpb $25, %al ja .L102 leal 32(%rdx), %eax movb %al, (%rcx,%rbp) .L102: incl %ebx cmpl %esi, %ebx jl .L108 .L106: addq $8, %rsp popq %rbx popq %rbp ret .LFE49: .size lower2, .-lower2 .p2align 4,,15 .globl lower2_goto .type lower2_goto, @function lower2_goto: .LFB50: pushq %rbp .LCFI9: xorl %ebp, %ebp pushq %rbx .LCFI10: movq %rdi, %rbx subq $8, %rsp .LCFI11: call strlen testq %rax, %rax movq %rax, %rsi je .L109 xorl %ecx, %ecx .p2align 4,,7 .L111: movzbl (%rcx,%rbx), %edx leal -65(%rdx), %eax cmpb $25, %al ja .L112 leal 32(%rdx), %eax movb %al, (%rcx,%rbx) .L112: incl %ebp movslq %ebp,%rcx cmpq %rsi, %rcx jb .L111 .L109: addq $8, %rsp popq %rbx popq %rbp ret .LFE50: .size lower2_goto, .-lower2_goto .p2align 4,,15 .globl my_strlen .type my_strlen, @function my_strlen: .LFB51: xorl %eax, %eax jmp .L120 .p2align 4,,7 .L121: incq %rdi incl %eax .L120: cmpb $0, (%rdi) jne .L121 cltq ret .LFE51: .size my_strlen, .-my_strlen .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 .LFB38 .quad .LFE38-.LFB38 .align 8 .LEFDE1: .LSFDE3: .long .LEFDE3-.LASFDE3 .LASFDE3: .long .LASFDE3-.Lframe1 .quad .LFB39 .quad .LFE39-.LFB39 .align 8 .LEFDE3: .LSFDE5: .long .LEFDE5-.LASFDE5 .LASFDE5: .long .LASFDE5-.Lframe1 .quad .LFB40 .quad .LFE40-.LFB40 .align 8 .LEFDE5: .LSFDE7: .long .LEFDE7-.LASFDE7 .LASFDE7: .long .LASFDE7-.Lframe1 .quad .LFB41 .quad .LFE41-.LFB41 .align 8 .LEFDE7: .LSFDE9: .long .LEFDE9-.LASFDE9 .LASFDE9: .long .LASFDE9-.Lframe1 .quad .LFB42 .quad .LFE42-.LFB42 .align 8 .LEFDE9: .LSFDE11: .long .LEFDE11-.LASFDE11 .LASFDE11: .long .LASFDE11-.Lframe1 .quad .LFB43 .quad .LFE43-.LFB43 .align 8 .LEFDE11: .LSFDE13: .long .LEFDE13-.LASFDE13 .LASFDE13: .long .LASFDE13-.Lframe1 .quad .LFB44 .quad .LFE44-.LFB44 .align 8 .LEFDE13: .LSFDE15: .long .LEFDE15-.LASFDE15 .LASFDE15: .long .LASFDE15-.Lframe1 .quad .LFB45 .quad .LFE45-.LFB45 .align 8 .LEFDE15: .LSFDE17: .long .LEFDE17-.LASFDE17 .LASFDE17: .long .LASFDE17-.Lframe1 .quad .LFB46 .quad .LFE46-.LFB46 .align 8 .LEFDE17: .LSFDE19: .long .LEFDE19-.LASFDE19 .LASFDE19: .long .LASFDE19-.Lframe1 .quad .LFB47 .quad .LFE47-.LFB47 .byte 0x4 .long .LCFI0-.LFB47 .byte 0xe .uleb128 0x10 .byte 0x8c .uleb128 0x2 .byte 0x4 .long .LCFI1-.LCFI0 .byte 0xe .uleb128 0x18 .byte 0x86 .uleb128 0x3 .byte 0x4 .long .LCFI2-.LCFI1 .byte 0xe .uleb128 0x20 .byte 0x83 .uleb128 0x4 .align 8 .LEFDE19: .LSFDE21: .long .LEFDE21-.LASFDE21 .LASFDE21: .long .LASFDE21-.Lframe1 .quad .LFB48 .quad .LFE48-.LFB48 .byte 0x4 .long .LCFI3-.LFB48 .byte 0xe .uleb128 0x10 .byte 0x8c .uleb128 0x2 .byte 0x4 .long .LCFI4-.LCFI3 .byte 0xe .uleb128 0x18 .byte 0x4 .long .LCFI5-.LCFI4 .byte 0xe .uleb128 0x20 .byte 0x83 .uleb128 0x4 .byte 0x86 .uleb128 0x3 .align 8 .LEFDE21: .LSFDE23: .long .LEFDE23-.LASFDE23 .LASFDE23: .long .LASFDE23-.Lframe1 .quad .LFB49 .quad .LFE49-.LFB49 .byte 0x4 .long .LCFI6-.LFB49 .byte 0xe .uleb128 0x10 .byte 0x86 .uleb128 0x2 .byte 0x4 .long .LCFI7-.LCFI6 .byte 0xe .uleb128 0x18 .byte 0x83 .uleb128 0x3 .byte 0x4 .long .LCFI8-.LCFI7 .byte 0xe .uleb128 0x20 .align 8 .LEFDE23: .LSFDE25: .long .LEFDE25-.LASFDE25 .LASFDE25: .long .LASFDE25-.Lframe1 .quad .LFB50 .quad .LFE50-.LFB50 .byte 0x4 .long .LCFI9-.LFB50 .byte 0xe .uleb128 0x10 .byte 0x86 .uleb128 0x2 .byte 0x4 .long .LCFI10-.LCFI9 .byte 0xe .uleb128 0x18 .byte 0x83 .uleb128 0x3 .byte 0x4 .long .LCFI11-.LCFI10 .byte 0xe .uleb128 0x20 .align 8 .LEFDE25: .LSFDE27: .long .LEFDE27-.LASFDE27 .LASFDE27: .long .LASFDE27-.Lframe1 .quad .LFB51 .quad .LFE51-.LFB51 .align 8 .LEFDE27: .section .note.GNU-stack,"",@progbits .ident "GCC: (GNU) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)"