#ifdef __linux__ #ifdef __i386__ .file "board_validate.cc" .section .text._ZNK12OthelloBoard4rowsEv,"axG",@progbits,_ZNK12OthelloBoard4rowsEv,comdat .align 2 .weak _ZNK12OthelloBoard4rowsEv .type _ZNK12OthelloBoard4rowsEv, @function _ZNK12OthelloBoard4rowsEv: .LFB7: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 movl 8(%ebp), %eax movl 4(%eax), %eax popl %ebp .cfi_restore 5 .cfi_def_cfa 4, 4 ret .cfi_endproc .LFE7: .size _ZNK12OthelloBoard4rowsEv, .-_ZNK12OthelloBoard4rowsEv .section .text._ZNK12OthelloBoard7columnsEv,"axG",@progbits,_ZNK12OthelloBoard7columnsEv,comdat .align 2 .weak _ZNK12OthelloBoard7columnsEv .type _ZNK12OthelloBoard7columnsEv, @function _ZNK12OthelloBoard7columnsEv: .LFB8: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 movl 8(%ebp), %eax movl 8(%eax), %eax popl %ebp .cfi_restore 5 .cfi_def_cfa 4, 4 ret .cfi_endproc .LFE8: .size _ZNK12OthelloBoard7columnsEv, .-_ZNK12OthelloBoard7columnsEv .section .text._ZNK12OthelloBoard3getEjj,"axG",@progbits,_ZNK12OthelloBoard3getEjj,comdat .align 2 .weak _ZNK12OthelloBoard3getEjj .type _ZNK12OthelloBoard3getEjj, @function _ZNK12OthelloBoard3getEjj: .LFB20: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 pushl %esi pushl %ebx .cfi_offset 6, -12 .cfi_offset 3, -16 cmpl $0, 12(%ebp) je .L6 cmpl $0, 16(%ebp) je .L6 subl $12, %esp pushl 8(%ebp) call _ZNK12OthelloBoard4rowsEv addl $16, %esp cmpl 12(%ebp), %eax jb .L6 subl $12, %esp pushl 8(%ebp) call _ZNK12OthelloBoard7columnsEv addl $16, %esp cmpl 16(%ebp), %eax jae .L7 .L6: movl $1, %eax jmp .L8 .L7: movl $0, %eax .L8: testb %al, %al je .L9 movl $3, %eax jmp .L10 .L9: movl 8(%ebp), %eax movl 16(%eax), %ebx movl 12(%ebp), %eax leal -1(%eax), %esi subl $12, %esp pushl 8(%ebp) call _ZNK12OthelloBoard7columnsEv addl $16, %esp movl %esi, %edx imull %eax, %edx movl 16(%ebp), %eax addl %edx, %eax addl $1073741823, %eax sall $2, %eax addl %ebx, %eax movl (%eax), %eax .L10: leal -8(%ebp), %esp popl %ebx .cfi_restore 3 popl %esi .cfi_restore 6 popl %ebp .cfi_restore 5 .cfi_def_cfa 4, 4 ret .cfi_endproc .LFE20: .size _ZNK12OthelloBoard3getEjj, .-_ZNK12OthelloBoard3getEjj .section .text._ZNK12OthelloBoard11type_to_strE9FieldType,"axG",@progbits,_ZNK12OthelloBoard11type_to_strE9FieldType,comdat .align 2 .weak _ZNK12OthelloBoard11type_to_strE9FieldType .type _ZNK12OthelloBoard11type_to_strE9FieldType, @function _ZNK12OthelloBoard11type_to_strE9FieldType: .LFB26: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 movl 12(%ebp), %eax cmpl $1, %eax je .L13 cmpl $1, %eax jg .L14 testl %eax, %eax je .L15 jmp .L12 .L14: cmpl $2, %eax je .L16 cmpl $3, %eax je .L17 jmp .L12 .L15: movl $46, %eax jmp .L18 .L13: movl $79, %eax jmp .L18 .L16: movl $88, %eax jmp .L18 .L17: movl $47, %eax jmp .L18 .L12: .L18: popl %ebp .cfi_restore 5 .cfi_def_cfa 4, 4 ret .cfi_endproc .LFE26: .size _ZNK12OthelloBoard11type_to_strE9FieldType, .-_ZNK12OthelloBoard11type_to_strE9FieldType .section .rodata .LC0: .string "board_validate.cc" .LC1: .string "row_idx > 0" .LC2: .string "row_idx <= rows()" .LC3: .string "col_idx > 0" .LC4: .string "col_idx <= columns()" .LC5: .string "inc_row == 0" .LC6: .string "inc_col == 0" .text .align 2 .globl _ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction .type _ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction, @function _ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction: .LFB32: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 pushl %ebx subl $4, %esp .cfi_offset 3, -12 movl 12(%ebp), %eax movl (%eax), %eax testl %eax, %eax jne .L20 pushl $_ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__ pushl $7 pushl $.LC0 pushl $.LC1 call __assert_fail .L20: movl 12(%ebp), %eax movl (%eax), %ebx subl $12, %esp pushl 8(%ebp) call _ZNK12OthelloBoard4rowsEv addl $16, %esp cmpl %eax, %ebx jbe .L21 pushl $_ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__ pushl $8 pushl $.LC0 pushl $.LC2 call __assert_fail .L21: movl 16(%ebp), %eax movl (%eax), %eax testl %eax, %eax jne .L22 pushl $_ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__ pushl $9 pushl $.LC0 pushl $.LC3 call __assert_fail .L22: movl 16(%ebp), %eax movl (%eax), %ebx subl $12, %esp pushl 8(%ebp) call _ZNK12OthelloBoard7columnsEv addl $16, %esp cmpl %eax, %ebx jbe .L23 pushl $_ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__ pushl $10 pushl $.LC0 pushl $.LC4 call __assert_fail .L23: movl 20(%ebp), %eax movl (%eax), %eax testl %eax, %eax je .L24 pushl $_ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__ pushl $11 pushl $.LC0 pushl $.LC5 call __assert_fail .L24: movl 24(%ebp), %eax movl (%eax), %eax testl %eax, %eax je .L25 pushl $_ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__ pushl $12 pushl $.LC0 pushl $.LC6 call __assert_fail .L25: movl 28(%ebp), %eax cmpl $7, %eax ja .L19 movl .L28(,%eax,4), %eax jmp *%eax .section .rodata .align 4 .align 4 .L28: .long .L27 .long .L29 .long .L30 .long .L31 .long .L32 .long .L33 .long .L34 .long .L35 .text .L30: movl 12(%ebp), %eax movl (%eax), %eax leal -1(%eax), %edx movl 12(%ebp), %eax movl %edx, (%eax) movl 20(%ebp), %eax movl $-1, (%eax) jmp .L19 .L31: movl 12(%ebp), %eax movl (%eax), %eax leal 1(%eax), %edx movl 12(%ebp), %eax movl %edx, (%eax) movl 20(%ebp), %eax movl $1, (%eax) jmp .L19 .L27: movl 16(%ebp), %eax movl (%eax), %eax leal -1(%eax), %edx movl 16(%ebp), %eax movl %edx, (%eax) movl 24(%ebp), %eax movl $-1, (%eax) jmp .L19 .L29: movl 16(%ebp), %eax movl (%eax), %eax leal 1(%eax), %edx movl 16(%ebp), %eax movl %edx, (%eax) movl 24(%ebp), %eax movl $1, (%eax) jmp .L19 .L32: movl 12(%ebp), %eax movl (%eax), %eax leal -1(%eax), %edx movl 12(%ebp), %eax movl %edx, (%eax) movl 16(%ebp), %eax movl (%eax), %eax leal -1(%eax), %edx movl 16(%ebp), %eax movl %edx, (%eax) movl 20(%ebp), %eax movl $-1, (%eax) movl 24(%ebp), %eax movl $-1, (%eax) jmp .L19 .L33: movl 12(%ebp), %eax movl (%eax), %eax leal -1(%eax), %edx movl 12(%ebp), %eax movl %edx, (%eax) movl 16(%ebp), %eax movl (%eax), %eax leal 1(%eax), %edx movl 16(%ebp), %eax movl %edx, (%eax) movl 20(%ebp), %eax movl $-1, (%eax) movl 24(%ebp), %eax movl $1, (%eax) jmp .L19 .L34: movl 12(%ebp), %eax movl (%eax), %eax leal 1(%eax), %edx movl 12(%ebp), %eax movl %edx, (%eax) movl 16(%ebp), %eax movl (%eax), %eax leal -1(%eax), %edx movl 16(%ebp), %eax movl %edx, (%eax) movl 20(%ebp), %eax movl $1, (%eax) movl 24(%ebp), %eax movl $-1, (%eax) jmp .L19 .L35: movl 12(%ebp), %eax movl (%eax), %eax leal 1(%eax), %edx movl 12(%ebp), %eax movl %edx, (%eax) movl 16(%ebp), %eax movl (%eax), %eax leal 1(%eax), %edx movl 16(%ebp), %eax movl %edx, (%eax) movl 20(%ebp), %eax movl $1, (%eax) movl 24(%ebp), %eax movl $1, (%eax) nop .L19: movl -4(%ebp), %ebx leave .cfi_restore 5 .cfi_restore 3 .cfi_def_cfa 4, 4 ret .cfi_endproc .LFE32: .size _ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction, .-_ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction .align 2 .globl _ZNK12OthelloBoard18position_reachableEjj9direction .type _ZNK12OthelloBoard18position_reachableEjj9direction, @function _ZNK12OthelloBoard18position_reachableEjj9direction: .LFB33: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 subl $40, %esp movl 12(%ebp), %eax movl %eax, -20(%ebp) movl 16(%ebp), %eax movl %eax, -24(%ebp) movl $0, -28(%ebp) movl $0, -32(%ebp) movl $1, -12(%ebp) subl $8, %esp pushl 20(%ebp) leal -32(%ebp), %eax pushl %eax leal -28(%ebp), %eax pushl %eax leal -24(%ebp), %eax pushl %eax leal -20(%ebp), %eax pushl %eax pushl 8(%ebp) call _ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction addl $32, %esp movl -24(%ebp), %edx movl -20(%ebp), %eax subl $4, %esp pushl %edx pushl %eax pushl 8(%ebp) call _ZNK12OthelloBoard3getEjj addl $16, %esp movl %eax, -16(%ebp) jmp .L37 .L39: movl -24(%ebp), %eax movl -32(%ebp), %edx addl %edx, %eax movl %eax, -24(%ebp) movl -20(%ebp), %eax movl -28(%ebp), %edx addl %edx, %eax movl %eax, -20(%ebp) movl -24(%ebp), %edx movl -20(%ebp), %eax subl $4, %esp pushl %edx pushl %eax pushl 8(%ebp) call _ZNK12OthelloBoard3getEjj addl $16, %esp movl %eax, -16(%ebp) addl $1, -12(%ebp) .L37: cmpl $0, -16(%ebp) je .L38 movl -16(%ebp), %edx movl 8(%ebp), %eax movl 20(%eax), %eax cmpl %eax, %edx je .L38 cmpl $3, -16(%ebp) jne .L39 .L38: cmpl $1, -12(%ebp) jbe .L40 movl -16(%ebp), %edx movl 8(%ebp), %eax movl 20(%eax), %eax cmpl %eax, %edx jne .L40 movl $1, %eax jmp .L42 .L40: movl $0, %eax .L42: leave .cfi_restore 5 .cfi_def_cfa 4, 4 ret .cfi_endproc .LFE33: .size _ZNK12OthelloBoard18position_reachableEjj9direction, .-_ZNK12OthelloBoard18position_reachableEjj9direction .section .rodata .align 4 .LC7: .string "Coordinates (r=%d, c=%d) out of bounds.\n" .align 4 .LC8: .string "Field @ (r=%d, c=%d) is occupied by %c\n" .align 4 .LC9: .string "Position (r=%d, c=%d) not reachable by a stone " .LC10: .string "of type %c.\n" .text .align 2 .globl _ZNK12OthelloBoard8validateEjjb .type _ZNK12OthelloBoard8validateEjjb, @function _ZNK12OthelloBoard8validateEjjb: .LFB34: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 subl $24, %esp movl 20(%ebp), %eax movb %al, -12(%ebp) cmpl $0, 12(%ebp) je .L44 subl $12, %esp pushl 8(%ebp) call _ZNK12OthelloBoard4rowsEv addl $16, %esp cmpl 12(%ebp), %eax jb .L44 cmpl $0, 16(%ebp) je .L44 subl $12, %esp pushl 8(%ebp) call _ZNK12OthelloBoard7columnsEv addl $16, %esp cmpl 16(%ebp), %eax jae .L45 .L44: movl $1, %eax jmp .L46 .L45: movl $0, %eax .L46: testb %al, %al je .L47 movzbl -12(%ebp), %eax xorl $1, %eax testb %al, %al je .L48 subl $4, %esp pushl 16(%ebp) pushl 12(%ebp) pushl $.LC7 call printf addl $16, %esp .L48: movl $0, %eax jmp .L49 .L47: subl $4, %esp pushl 16(%ebp) pushl 12(%ebp) pushl 8(%ebp) call _ZNK12OthelloBoard3getEjj addl $16, %esp testl %eax, %eax setne %al testb %al, %al je .L50 movzbl -12(%ebp), %eax xorl $1, %eax testb %al, %al je .L51 subl $4, %esp pushl 16(%ebp) pushl 12(%ebp) pushl 8(%ebp) call _ZNK12OthelloBoard3getEjj addl $16, %esp subl $8, %esp pushl %eax pushl 8(%ebp) call _ZNK12OthelloBoard11type_to_strE9FieldType addl $16, %esp movsbl %al, %eax pushl %eax pushl 16(%ebp) pushl 12(%ebp) pushl $.LC8 call printf addl $16, %esp .L51: movl $0, %eax jmp .L49 .L50: pushl $0 pushl 16(%ebp) pushl 12(%ebp) pushl 8(%ebp) call _ZNK12OthelloBoard18position_reachableEjj9direction addl $16, %esp testb %al, %al jne .L52 pushl $1 pushl 16(%ebp) pushl 12(%ebp) pushl 8(%ebp) call _ZNK12OthelloBoard18position_reachableEjj9direction addl $16, %esp testb %al, %al jne .L52 pushl $2 pushl 16(%ebp) pushl 12(%ebp) pushl 8(%ebp) call _ZNK12OthelloBoard18position_reachableEjj9direction addl $16, %esp testb %al, %al jne .L52 pushl $3 pushl 16(%ebp) pushl 12(%ebp) pushl 8(%ebp) call _ZNK12OthelloBoard18position_reachableEjj9direction addl $16, %esp testb %al, %al jne .L52 pushl $4 pushl 16(%ebp) pushl 12(%ebp) pushl 8(%ebp) call _ZNK12OthelloBoard18position_reachableEjj9direction addl $16, %esp testb %al, %al jne .L52 pushl $5 pushl 16(%ebp) pushl 12(%ebp) pushl 8(%ebp) call _ZNK12OthelloBoard18position_reachableEjj9direction addl $16, %esp testb %al, %al jne .L52 pushl $6 pushl 16(%ebp) pushl 12(%ebp) pushl 8(%ebp) call _ZNK12OthelloBoard18position_reachableEjj9direction addl $16, %esp testb %al, %al jne .L52 pushl $7 pushl 16(%ebp) pushl 12(%ebp) pushl 8(%ebp) call _ZNK12OthelloBoard18position_reachableEjj9direction addl $16, %esp testb %al, %al je .L53 .L52: movl $1, %eax jmp .L54 .L53: movl $0, %eax .L54: testb %al, %al je .L55 movl $1, %eax jmp .L49 .L55: movzbl -12(%ebp), %eax xorl $1, %eax testb %al, %al je .L56 subl $4, %esp pushl 16(%ebp) pushl 12(%ebp) pushl $.LC9 call printf addl $16, %esp movl 8(%ebp), %eax movl 20(%eax), %eax subl $8, %esp pushl %eax pushl 8(%ebp) call _ZNK12OthelloBoard11type_to_strE9FieldType addl $16, %esp movsbl %al, %eax subl $8, %esp pushl %eax pushl $.LC10 call printf addl $16, %esp .L56: movl $0, %eax .L49: leave .cfi_restore 5 .cfi_def_cfa 4, 4 ret .cfi_endproc .LFE34: .size _ZNK12OthelloBoard8validateEjjb, .-_ZNK12OthelloBoard8validateEjjb .section .rodata .align 64 .type _ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__, @object .size _ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__, 95 _ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__: .string "void OthelloBoard::setup_directions(unsigned int&, unsigned int&, int&, int&, direction) const" .ident "GCC: (Debian 4.9.1-11) 4.9.1" .section .note.GNU-stack,"",@progbits #endif // x86/32 #ifdef __x86_64__ .file "board_validate.cc" .section .text._ZNK12OthelloBoard4rowsEv,"axG",@progbits,_ZNK12OthelloBoard4rowsEv,comdat .align 2 .weak _ZNK12OthelloBoard4rowsEv .type _ZNK12OthelloBoard4rowsEv, @function _ZNK12OthelloBoard4rowsEv: .LFB8: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 movq %rdi, -8(%rbp) movq -8(%rbp), %rax movl 8(%rax), %eax popq %rbp .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE8: .size _ZNK12OthelloBoard4rowsEv, .-_ZNK12OthelloBoard4rowsEv .section .text._ZNK12OthelloBoard7columnsEv,"axG",@progbits,_ZNK12OthelloBoard7columnsEv,comdat .align 2 .weak _ZNK12OthelloBoard7columnsEv .type _ZNK12OthelloBoard7columnsEv, @function _ZNK12OthelloBoard7columnsEv: .LFB9: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 movq %rdi, -8(%rbp) movq -8(%rbp), %rax movl 12(%rax), %eax popq %rbp .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE9: .size _ZNK12OthelloBoard7columnsEv, .-_ZNK12OthelloBoard7columnsEv .section .text._ZNK12OthelloBoard3getEjj,"axG",@progbits,_ZNK12OthelloBoard3getEjj,comdat .align 2 .weak _ZNK12OthelloBoard3getEjj .type _ZNK12OthelloBoard3getEjj, @function _ZNK12OthelloBoard3getEjj: .LFB21: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 pushq %r12 pushq %rbx subq $16, %rsp .cfi_offset 12, -24 .cfi_offset 3, -32 movq %rdi, -24(%rbp) movl %esi, -28(%rbp) movl %edx, -32(%rbp) cmpl $0, -28(%rbp) je .L6 cmpl $0, -32(%rbp) je .L6 movq -24(%rbp), %rax movq %rax, %rdi call _ZNK12OthelloBoard4rowsEv cmpl -28(%rbp), %eax jb .L6 movq -24(%rbp), %rax movq %rax, %rdi call _ZNK12OthelloBoard7columnsEv cmpl -32(%rbp), %eax jae .L7 .L6: movl $1, %eax jmp .L8 .L7: movl $0, %eax .L8: testb %al, %al je .L9 movl $3, %eax jmp .L10 .L9: movq -24(%rbp), %rax movq 24(%rax), %rbx movl -28(%rbp), %eax leal -1(%rax), %r12d movq -24(%rbp), %rax movq %rax, %rdi call _ZNK12OthelloBoard7columnsEv movl %r12d, %edx imull %eax, %edx movl -32(%rbp), %eax addl %edx, %eax subl $1, %eax movl %eax, %eax salq $2, %rax addq %rbx, %rax movl (%rax), %eax .L10: addq $16, %rsp popq %rbx popq %r12 popq %rbp .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE21: .size _ZNK12OthelloBoard3getEjj, .-_ZNK12OthelloBoard3getEjj .section .text._ZNK12OthelloBoard11type_to_strE9FieldType,"axG",@progbits,_ZNK12OthelloBoard11type_to_strE9FieldType,comdat .align 2 .weak _ZNK12OthelloBoard11type_to_strE9FieldType .type _ZNK12OthelloBoard11type_to_strE9FieldType, @function _ZNK12OthelloBoard11type_to_strE9FieldType: .LFB27: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 movq %rdi, -8(%rbp) movl %esi, -12(%rbp) movl -12(%rbp), %eax cmpl $1, %eax je .L13 cmpl $1, %eax jg .L14 testl %eax, %eax je .L15 jmp .L12 .L14: cmpl $2, %eax je .L16 cmpl $3, %eax je .L17 jmp .L12 .L15: movl $46, %eax jmp .L18 .L13: movl $79, %eax jmp .L18 .L16: movl $88, %eax jmp .L18 .L17: movl $47, %eax jmp .L18 .L12: .L18: popq %rbp .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE27: .size _ZNK12OthelloBoard11type_to_strE9FieldType, .-_ZNK12OthelloBoard11type_to_strE9FieldType .section .rodata .LC0: .string "board_validate.cc" .LC1: .string "row_idx > 0" .LC2: .string "row_idx <= rows()" .LC3: .string "col_idx > 0" .LC4: .string "col_idx <= columns()" .LC5: .string "inc_row == 0" .LC6: .string "inc_col == 0" .text .align 2 .globl _ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction .type _ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction, @function _ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction: .LFB33: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 pushq %rbx subq $56, %rsp .cfi_offset 3, -24 movq %rdi, -24(%rbp) movq %rsi, -32(%rbp) movq %rdx, -40(%rbp) movq %rcx, -48(%rbp) movq %r8, -56(%rbp) movl %r9d, -60(%rbp) movq -32(%rbp), %rax movl (%rax), %eax testl %eax, %eax jne .L20 movl $_ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__, %ecx movl $7, %edx movl $.LC0, %esi movl $.LC1, %edi call __assert_fail .L20: movq -32(%rbp), %rax movl (%rax), %ebx movq -24(%rbp), %rax movq %rax, %rdi call _ZNK12OthelloBoard4rowsEv cmpl %eax, %ebx jbe .L21 movl $_ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__, %ecx movl $8, %edx movl $.LC0, %esi movl $.LC2, %edi call __assert_fail .L21: movq -40(%rbp), %rax movl (%rax), %eax testl %eax, %eax jne .L22 movl $_ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__, %ecx movl $9, %edx movl $.LC0, %esi movl $.LC3, %edi call __assert_fail .L22: movq -40(%rbp), %rax movl (%rax), %ebx movq -24(%rbp), %rax movq %rax, %rdi call _ZNK12OthelloBoard7columnsEv cmpl %eax, %ebx jbe .L23 movl $_ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__, %ecx movl $10, %edx movl $.LC0, %esi movl $.LC4, %edi call __assert_fail .L23: movq -48(%rbp), %rax movl (%rax), %eax testl %eax, %eax je .L24 movl $_ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__, %ecx movl $11, %edx movl $.LC0, %esi movl $.LC5, %edi call __assert_fail .L24: movq -56(%rbp), %rax movl (%rax), %eax testl %eax, %eax je .L25 movl $_ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__, %ecx movl $12, %edx movl $.LC0, %esi movl $.LC6, %edi call __assert_fail .L25: movl -60(%rbp), %eax cmpl $7, %eax ja .L19 movl %eax, %eax movq .L28(,%rax,8), %rax jmp *%rax .section .rodata .align 8 .align 4 .L28: .quad .L27 .quad .L29 .quad .L30 .quad .L31 .quad .L32 .quad .L33 .quad .L34 .quad .L35 .text .L30: movq -32(%rbp), %rax movl (%rax), %eax leal -1(%rax), %edx movq -32(%rbp), %rax movl %edx, (%rax) movq -48(%rbp), %rax movl $-1, (%rax) jmp .L19 .L31: movq -32(%rbp), %rax movl (%rax), %eax leal 1(%rax), %edx movq -32(%rbp), %rax movl %edx, (%rax) movq -48(%rbp), %rax movl $1, (%rax) jmp .L19 .L27: movq -40(%rbp), %rax movl (%rax), %eax leal -1(%rax), %edx movq -40(%rbp), %rax movl %edx, (%rax) movq -56(%rbp), %rax movl $-1, (%rax) jmp .L19 .L29: movq -40(%rbp), %rax movl (%rax), %eax leal 1(%rax), %edx movq -40(%rbp), %rax movl %edx, (%rax) movq -56(%rbp), %rax movl $1, (%rax) jmp .L19 .L32: movq -32(%rbp), %rax movl (%rax), %eax leal -1(%rax), %edx movq -32(%rbp), %rax movl %edx, (%rax) movq -40(%rbp), %rax movl (%rax), %eax leal -1(%rax), %edx movq -40(%rbp), %rax movl %edx, (%rax) movq -48(%rbp), %rax movl $-1, (%rax) movq -56(%rbp), %rax movl $-1, (%rax) jmp .L19 .L33: movq -32(%rbp), %rax movl (%rax), %eax leal -1(%rax), %edx movq -32(%rbp), %rax movl %edx, (%rax) movq -40(%rbp), %rax movl (%rax), %eax leal 1(%rax), %edx movq -40(%rbp), %rax movl %edx, (%rax) movq -48(%rbp), %rax movl $-1, (%rax) movq -56(%rbp), %rax movl $1, (%rax) jmp .L19 .L34: movq -32(%rbp), %rax movl (%rax), %eax leal 1(%rax), %edx movq -32(%rbp), %rax movl %edx, (%rax) movq -40(%rbp), %rax movl (%rax), %eax leal -1(%rax), %edx movq -40(%rbp), %rax movl %edx, (%rax) movq -48(%rbp), %rax movl $1, (%rax) movq -56(%rbp), %rax movl $-1, (%rax) jmp .L19 .L35: movq -32(%rbp), %rax movl (%rax), %eax leal 1(%rax), %edx movq -32(%rbp), %rax movl %edx, (%rax) movq -40(%rbp), %rax movl (%rax), %eax leal 1(%rax), %edx movq -40(%rbp), %rax movl %edx, (%rax) movq -48(%rbp), %rax movl $1, (%rax) movq -56(%rbp), %rax movl $1, (%rax) nop .L19: addq $56, %rsp popq %rbx popq %rbp .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE33: .size _ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction, .-_ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction .align 2 .globl _ZNK12OthelloBoard18position_reachableEjj9direction .type _ZNK12OthelloBoard18position_reachableEjj9direction, @function _ZNK12OthelloBoard18position_reachableEjj9direction: .LFB34: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 subq $64, %rsp movq %rdi, -40(%rbp) movl %esi, -44(%rbp) movl %edx, -48(%rbp) movl %ecx, -52(%rbp) movl -44(%rbp), %eax movl %eax, -12(%rbp) movl -48(%rbp), %eax movl %eax, -16(%rbp) movl $0, -20(%rbp) movl $0, -24(%rbp) movl $1, -4(%rbp) movl -52(%rbp), %r8d leaq -24(%rbp), %rdi leaq -20(%rbp), %rcx leaq -16(%rbp), %rdx leaq -12(%rbp), %rsi movq -40(%rbp), %rax movl %r8d, %r9d movq %rdi, %r8 movq %rax, %rdi call _ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction movl -16(%rbp), %edx movl -12(%rbp), %ecx movq -40(%rbp), %rax movl %ecx, %esi movq %rax, %rdi call _ZNK12OthelloBoard3getEjj movl %eax, -8(%rbp) jmp .L37 .L39: movl -16(%rbp), %eax movl -24(%rbp), %edx addl %edx, %eax movl %eax, -16(%rbp) movl -12(%rbp), %eax movl -20(%rbp), %edx addl %edx, %eax movl %eax, -12(%rbp) movl -16(%rbp), %edx movl -12(%rbp), %ecx movq -40(%rbp), %rax movl %ecx, %esi movq %rax, %rdi call _ZNK12OthelloBoard3getEjj movl %eax, -8(%rbp) addl $1, -4(%rbp) .L37: cmpl $0, -8(%rbp) je .L38 movl -8(%rbp), %edx movq -40(%rbp), %rax movl 32(%rax), %eax cmpl %eax, %edx je .L38 cmpl $3, -8(%rbp) jne .L39 .L38: cmpl $1, -4(%rbp) jbe .L40 movl -8(%rbp), %edx movq -40(%rbp), %rax movl 32(%rax), %eax cmpl %eax, %edx jne .L40 movl $1, %eax jmp .L42 .L40: movl $0, %eax .L42: leave .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE34: .size _ZNK12OthelloBoard18position_reachableEjj9direction, .-_ZNK12OthelloBoard18position_reachableEjj9direction .section .rodata .align 8 .LC7: .string "Coordinates (r=%d, c=%d) out of bounds.\n" .align 8 .LC8: .string "Field @ (r=%d, c=%d) is occupied by %c\n" .align 8 .LC9: .string "Position (r=%d, c=%d) not reachable by a stone " .LC10: .string "of type %c.\n" .text .align 2 .globl _ZNK12OthelloBoard8validateEjjb .type _ZNK12OthelloBoard8validateEjjb, @function _ZNK12OthelloBoard8validateEjjb: .LFB35: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 subq $32, %rsp movq %rdi, -8(%rbp) movl %esi, -12(%rbp) movl %edx, -16(%rbp) movl %ecx, %eax movb %al, -20(%rbp) cmpl $0, -12(%rbp) je .L44 movq -8(%rbp), %rax movq %rax, %rdi call _ZNK12OthelloBoard4rowsEv cmpl -12(%rbp), %eax jb .L44 cmpl $0, -16(%rbp) je .L44 movq -8(%rbp), %rax movq %rax, %rdi call _ZNK12OthelloBoard7columnsEv cmpl -16(%rbp), %eax jae .L45 .L44: movl $1, %eax jmp .L46 .L45: movl $0, %eax .L46: testb %al, %al je .L47 movzbl -20(%rbp), %eax xorl $1, %eax testb %al, %al je .L48 movl -16(%rbp), %edx movl -12(%rbp), %eax movl %eax, %esi movl $.LC7, %edi movl $0, %eax call printf .L48: movl $0, %eax jmp .L49 .L47: movl -16(%rbp), %edx movl -12(%rbp), %ecx movq -8(%rbp), %rax movl %ecx, %esi movq %rax, %rdi call _ZNK12OthelloBoard3getEjj testl %eax, %eax setne %al testb %al, %al je .L50 movzbl -20(%rbp), %eax xorl $1, %eax testb %al, %al je .L51 movl -16(%rbp), %edx movl -12(%rbp), %ecx movq -8(%rbp), %rax movl %ecx, %esi movq %rax, %rdi call _ZNK12OthelloBoard3getEjj movl %eax, %edx movq -8(%rbp), %rax movl %edx, %esi movq %rax, %rdi call _ZNK12OthelloBoard11type_to_strE9FieldType movsbl %al, %ecx movl -16(%rbp), %edx movl -12(%rbp), %eax movl %eax, %esi movl $.LC8, %edi movl $0, %eax call printf .L51: movl $0, %eax jmp .L49 .L50: movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rax movl $0, %ecx movq %rax, %rdi call _ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne .L52 movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rax movl $1, %ecx movq %rax, %rdi call _ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne .L52 movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rax movl $2, %ecx movq %rax, %rdi call _ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne .L52 movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rax movl $3, %ecx movq %rax, %rdi call _ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne .L52 movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rax movl $4, %ecx movq %rax, %rdi call _ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne .L52 movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rax movl $5, %ecx movq %rax, %rdi call _ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne .L52 movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rax movl $6, %ecx movq %rax, %rdi call _ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne .L52 movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rax movl $7, %ecx movq %rax, %rdi call _ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al je .L53 .L52: movl $1, %eax jmp .L54 .L53: movl $0, %eax .L54: testb %al, %al je .L55 movl $1, %eax jmp .L49 .L55: movzbl -20(%rbp), %eax xorl $1, %eax testb %al, %al je .L56 movl -16(%rbp), %edx movl -12(%rbp), %eax movl %eax, %esi movl $.LC9, %edi movl $0, %eax call printf movq -8(%rbp), %rax movl 32(%rax), %edx movq -8(%rbp), %rax movl %edx, %esi movq %rax, %rdi call _ZNK12OthelloBoard11type_to_strE9FieldType movsbl %al, %eax movl %eax, %esi movl $.LC10, %edi movl $0, %eax call printf .L56: movl $0, %eax .L49: leave .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE35: .size _ZNK12OthelloBoard8validateEjjb, .-_ZNK12OthelloBoard8validateEjjb .section .rodata .align 64 .type _ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__, @object .size _ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__, 95 _ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE19__PRETTY_FUNCTION__: .string "void OthelloBoard::setup_directions(unsigned int&, unsigned int&, int&, int&, direction) const" .ident "GCC: (Debian 4.9.1-11) 4.9.1" .section .note.GNU-stack,"",@progbits #endif // x86/64 #endif // linux #ifdef __APPLE__ #ifdef __i386__ .section __TEXT,__textcoal_nt,coalesced,pure_instructions .align 1 .globl __ZNK12OthelloBoard4rowsEv .weak_definition __ZNK12OthelloBoard4rowsEv __ZNK12OthelloBoard4rowsEv: LFB15: pushl %ebp LCFI0: movl %esp, %ebp LCFI1: subl $8, %esp LCFI2: movl 8(%ebp), %eax movl (%eax), %eax leave ret LFE15: .align 1 .globl __ZNK12OthelloBoard7columnsEv .weak_definition __ZNK12OthelloBoard7columnsEv __ZNK12OthelloBoard7columnsEv: LFB16: pushl %ebp LCFI3: movl %esp, %ebp LCFI4: subl $8, %esp LCFI5: movl 8(%ebp), %eax movl 4(%eax), %eax leave ret LFE16: .align 1 .globl __ZNK12OthelloBoard3getEjj .weak_definition __ZNK12OthelloBoard3getEjj __ZNK12OthelloBoard3getEjj: LFB26: pushl %ebp LCFI6: movl %esp, %ebp LCFI7: pushl %edi LCFI8: pushl %esi LCFI9: subl $32, %esp LCFI10: cmpl $0, 12(%ebp) je L6 cmpl $0, 16(%ebp) je L6 movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard4rowsEv cmpl 12(%ebp), %eax jb L6 movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard7columnsEv cmpl 16(%ebp), %eax jae L10 L6: movb $1, -13(%ebp) jmp L11 L10: movb $0, -13(%ebp) L11: movzbl -13(%ebp), %eax testb %al, %al je L12 movl $3, -12(%ebp) jmp L14 L12: movl 8(%ebp), %eax movl 12(%eax), %eax leal -4(%eax), %edi movl 12(%ebp), %esi decl %esi movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard7columnsEv imull %esi, %eax addl 16(%ebp), %eax sall $2, %eax leal (%edi,%eax), %eax movl (%eax), %eax movl %eax, -12(%ebp) L14: movl -12(%ebp), %eax addl $32, %esp popl %esi popl %edi leave ret LFE26: .cstring LC0: .ascii "type %d\12\0" LC1: .ascii "false\0" LC2: .ascii "./board.h\0" .section __TEXT,__textcoal_nt,coalesced,pure_instructions .align 1 .globl __ZNK12OthelloBoard11type_to_strE9FieldType .weak_definition __ZNK12OthelloBoard11type_to_strE9FieldType __ZNK12OthelloBoard11type_to_strE9FieldType: LFB32: pushl %ebp LCFI11: movl %esp, %ebp LCFI12: pushl %ebx LCFI13: subl $36, %esp LCFI14: call L25 "L00000000001$pb": L25: popl %ebx movl 12(%ebp), %eax movl %eax, -16(%ebp) cmpl $1, -16(%ebp) je L19 cmpl $1, -16(%ebp) jg L22 cmpl $0, -16(%ebp) je L18 jmp L17 L22: cmpl $2, -16(%ebp) je L20 cmpl $3, -16(%ebp) je L21 jmp L17 L18: movl $46, -12(%ebp) jmp L23 L19: movl $79, -12(%ebp) jmp L23 L20: movl $88, -12(%ebp) jmp L23 L21: movl $47, -12(%ebp) jmp L23 L17: movl 12(%ebp), %eax movl %eax, 4(%esp) leal LC0-"L00000000001$pb"(%ebx), %eax movl %eax, (%esp) call _printf leal LC1-"L00000000001$pb"(%ebx), %eax movl %eax, 12(%esp) movl $282, 8(%esp) leal LC2-"L00000000001$pb"(%ebx), %eax movl %eax, 4(%esp) leal __ZZNK12OthelloBoard11type_to_strE9FieldTypeE8__func__-"L00000000001$pb"(%ebx), %eax movl %eax, (%esp) call ___assert_rtn L23: movl -12(%ebp), %eax addl $36, %esp popl %ebx leave ret LFE32: .cstring LC3: .ascii "row_idx > 0\0" LC4: .ascii "board_validate.cc\0" LC5: .ascii "row_idx <= rows()\0" LC6: .ascii "col_idx > 0\0" LC7: .ascii "col_idx <= columns()\0" LC8: .ascii "inc_row == 0\0" LC9: .ascii "inc_col == 0\0" .text .align 1,0x90 .globl __ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction __ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction: LFB35: pushl %ebp LCFI15: movl %esp, %ebp LCFI16: pushl %esi LCFI17: pushl %ebx LCFI18: subl $32, %esp LCFI19: call L50 "L00000000002$pb": L50: popl %ebx movl 12(%ebp), %eax movl (%eax), %eax testl %eax, %eax sete %al movzbl %al, %eax testl %eax, %eax je L27 leal LC3-"L00000000002$pb"(%ebx), %eax movl %eax, 12(%esp) movl $7, 8(%esp) leal LC4-"L00000000002$pb"(%ebx), %eax movl %eax, 4(%esp) leal __ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE8__func__-"L00000000002$pb"(%ebx), %eax movl %eax, (%esp) call ___assert_rtn L27: movl 12(%ebp), %eax movl (%eax), %esi movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard4rowsEv cmpl %eax, %esi seta %al movzbl %al, %eax testl %eax, %eax je L29 leal LC5-"L00000000002$pb"(%ebx), %eax movl %eax, 12(%esp) movl $8, 8(%esp) leal LC4-"L00000000002$pb"(%ebx), %eax movl %eax, 4(%esp) leal __ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE8__func__-"L00000000002$pb"(%ebx), %eax movl %eax, (%esp) call ___assert_rtn L29: movl 16(%ebp), %eax movl (%eax), %eax testl %eax, %eax sete %al movzbl %al, %eax testl %eax, %eax je L31 leal LC6-"L00000000002$pb"(%ebx), %eax movl %eax, 12(%esp) movl $9, 8(%esp) leal LC4-"L00000000002$pb"(%ebx), %eax movl %eax, 4(%esp) leal __ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE8__func__-"L00000000002$pb"(%ebx), %eax movl %eax, (%esp) call ___assert_rtn L31: movl 16(%ebp), %eax movl (%eax), %esi movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard7columnsEv cmpl %eax, %esi seta %al movzbl %al, %eax testl %eax, %eax je L33 leal LC7-"L00000000002$pb"(%ebx), %eax movl %eax, 12(%esp) movl $10, 8(%esp) leal LC4-"L00000000002$pb"(%ebx), %eax movl %eax, 4(%esp) leal __ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE8__func__-"L00000000002$pb"(%ebx), %eax movl %eax, (%esp) call ___assert_rtn L33: movl 20(%ebp), %eax movl (%eax), %eax testl %eax, %eax setne %al movzbl %al, %eax testl %eax, %eax je L35 leal LC8-"L00000000002$pb"(%ebx), %eax movl %eax, 12(%esp) movl $11, 8(%esp) leal LC4-"L00000000002$pb"(%ebx), %eax movl %eax, 4(%esp) leal __ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE8__func__-"L00000000002$pb"(%ebx), %eax movl %eax, (%esp) call ___assert_rtn L35: movl 24(%ebp), %eax movl (%eax), %eax testl %eax, %eax setne %al movzbl %al, %eax testl %eax, %eax je L37 leal LC9-"L00000000002$pb"(%ebx), %eax movl %eax, 12(%esp) movl $12, 8(%esp) leal LC4-"L00000000002$pb"(%ebx), %eax movl %eax, 4(%esp) leal __ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE8__func__-"L00000000002$pb"(%ebx), %eax movl %eax, (%esp) call ___assert_rtn L37: movl 28(%ebp), %eax movl %eax, -12(%ebp) cmpl $7, -12(%ebp) ja L49 movl -12(%ebp), %edx sall $2, %edx leal L48-"L00000000002$pb"(%ebx), %eax movl (%edx,%eax), %eax addl %ebx, %eax jmp *%eax .align 2,0x90 L48: .long L40-"L00000000002$pb" .long L41-"L00000000002$pb" .long L42-"L00000000002$pb" .long L43-"L00000000002$pb" .long L44-"L00000000002$pb" .long L45-"L00000000002$pb" .long L46-"L00000000002$pb" .long L47-"L00000000002$pb" L42: movl 12(%ebp), %eax movl (%eax), %eax leal -1(%eax), %edx movl 12(%ebp), %eax movl %edx, (%eax) movl 20(%ebp), %eax movl $-1, (%eax) jmp L49 L43: movl 12(%ebp), %eax movl (%eax), %eax leal 1(%eax), %edx movl 12(%ebp), %eax movl %edx, (%eax) movl 20(%ebp), %eax movl $1, (%eax) jmp L49 L40: movl 16(%ebp), %eax movl (%eax), %eax leal -1(%eax), %edx movl 16(%ebp), %eax movl %edx, (%eax) movl 24(%ebp), %eax movl $-1, (%eax) jmp L49 L41: movl 16(%ebp), %eax movl (%eax), %eax leal 1(%eax), %edx movl 16(%ebp), %eax movl %edx, (%eax) movl 24(%ebp), %eax movl $1, (%eax) jmp L49 L44: movl 12(%ebp), %eax movl (%eax), %eax leal -1(%eax), %edx movl 12(%ebp), %eax movl %edx, (%eax) movl 16(%ebp), %eax movl (%eax), %eax leal -1(%eax), %edx movl 16(%ebp), %eax movl %edx, (%eax) movl 20(%ebp), %eax movl $-1, (%eax) movl 24(%ebp), %eax movl $-1, (%eax) jmp L49 L45: movl 12(%ebp), %eax movl (%eax), %eax leal -1(%eax), %edx movl 12(%ebp), %eax movl %edx, (%eax) movl 16(%ebp), %eax movl (%eax), %eax leal 1(%eax), %edx movl 16(%ebp), %eax movl %edx, (%eax) movl 20(%ebp), %eax movl $-1, (%eax) movl 24(%ebp), %eax movl $1, (%eax) jmp L49 L46: movl 12(%ebp), %eax movl (%eax), %eax leal 1(%eax), %edx movl 12(%ebp), %eax movl %edx, (%eax) movl 16(%ebp), %eax movl (%eax), %eax leal -1(%eax), %edx movl 16(%ebp), %eax movl %edx, (%eax) movl 20(%ebp), %eax movl $1, (%eax) movl 24(%ebp), %eax movl $-1, (%eax) jmp L49 L47: movl 12(%ebp), %eax movl (%eax), %eax leal 1(%eax), %edx movl 12(%ebp), %eax movl %edx, (%eax) movl 16(%ebp), %eax movl (%eax), %eax leal 1(%eax), %edx movl 16(%ebp), %eax movl %edx, (%eax) movl 20(%ebp), %eax movl $1, (%eax) movl 24(%ebp), %eax movl $1, (%eax) L49: addl $32, %esp popl %ebx popl %esi leave ret LFE35: .align 1,0x90 .globl __ZNK12OthelloBoard18position_reachableEjj9direction __ZNK12OthelloBoard18position_reachableEjj9direction: LFB36: pushl %ebp LCFI20: movl %esp, %ebp LCFI21: subl $88, %esp LCFI22: movl 12(%ebp), %eax movl %eax, -12(%ebp) movl 16(%ebp), %eax movl %eax, -16(%ebp) movl $0, -20(%ebp) movl $0, -24(%ebp) movl $1, -28(%ebp) movl 20(%ebp), %eax movl %eax, 20(%esp) leal -24(%ebp), %eax movl %eax, 16(%esp) leal -20(%ebp), %eax movl %eax, 12(%esp) leal -16(%ebp), %eax movl %eax, 8(%esp) leal -12(%ebp), %eax movl %eax, 4(%esp) movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction movl -16(%ebp), %eax movl -12(%ebp), %edx movl %eax, 8(%esp) movl %edx, 4(%esp) movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard3getEjj movl %eax, -32(%ebp) jmp L52 L53: movl -16(%ebp), %edx movl -24(%ebp), %eax leal (%edx,%eax), %eax movl %eax, -16(%ebp) movl -12(%ebp), %edx movl -20(%ebp), %eax leal (%edx,%eax), %eax movl %eax, -12(%ebp) movl -16(%ebp), %eax movl -12(%ebp), %edx movl %eax, 8(%esp) movl %edx, 4(%esp) movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard3getEjj movl %eax, -32(%ebp) incl -28(%ebp) L52: cmpl $0, -32(%ebp) je L54 movl -32(%ebp), %edx movl 8(%ebp), %eax movl 16(%eax), %eax cmpl %eax, %edx je L54 cmpl $3, -32(%ebp) jne L53 L54: cmpl $1, -28(%ebp) jbe L57 movl -32(%ebp), %edx movl 8(%ebp), %eax movl 16(%eax), %eax cmpl %eax, %edx jne L57 movb $1, -41(%ebp) jmp L60 L57: movb $0, -41(%ebp) L60: movzbl -41(%ebp), %eax leave ret LFE36: .cstring .align 2 LC10: .ascii "Coordinates (r=%d, c=%d) out of bounds.\12\0" .align 2 LC11: .ascii "Field @ (r=%d, c=%d) is occupied by %c\12\0" .align 2 LC12: .ascii "Position (r=%d, c=%d) not reachable by a stone \0" LC13: .ascii "of type %c.\12\0" .text .align 1,0x90 .globl __ZNK12OthelloBoard8validateEjjb __ZNK12OthelloBoard8validateEjjb: LFB37: pushl %ebp LCFI23: movl %esp, %ebp LCFI24: pushl %ebx LCFI25: subl $36, %esp LCFI26: call L93 "L00000000003$pb": L93: popl %ebx movl 20(%ebp), %eax movb %al, -12(%ebp) cmpl $0, 12(%ebp) je L63 movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard4rowsEv cmpl 12(%ebp), %eax jb L63 cmpl $0, 16(%ebp) je L63 movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard7columnsEv cmpl 16(%ebp), %eax jae L67 L63: movb $1, -21(%ebp) jmp L68 L67: movb $0, -21(%ebp) L68: movzbl -21(%ebp), %eax testb %al, %al je L69 movzbl -12(%ebp), %eax xorl $1, %eax testb %al, %al je L71 movl 16(%ebp), %eax movl %eax, 8(%esp) movl 12(%ebp), %eax movl %eax, 4(%esp) leal LC10-"L00000000003$pb"(%ebx), %eax movl %eax, (%esp) call _printf L71: movl $0, -20(%ebp) jmp L73 L69: movl 16(%ebp), %eax movl %eax, 8(%esp) movl 12(%ebp), %eax movl %eax, 4(%esp) movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard3getEjj testl %eax, %eax setne %al testb %al, %al je L74 movzbl -12(%ebp), %eax xorl $1, %eax testb %al, %al je L76 movl 16(%ebp), %eax movl %eax, 8(%esp) movl 12(%ebp), %eax movl %eax, 4(%esp) movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard3getEjj movl %eax, 4(%esp) movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard11type_to_strE9FieldType movsbl %al,%eax movl %eax, 12(%esp) movl 16(%ebp), %eax movl %eax, 8(%esp) movl 12(%ebp), %eax movl %eax, 4(%esp) leal LC11-"L00000000003$pb"(%ebx), %eax movl %eax, (%esp) call _printf L76: movl $0, -20(%ebp) jmp L73 L74: movl $0, 12(%esp) movl 16(%ebp), %eax movl %eax, 8(%esp) movl 12(%ebp), %eax movl %eax, 4(%esp) movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne L78 movl $1, 12(%esp) movl 16(%ebp), %eax movl %eax, 8(%esp) movl 12(%ebp), %eax movl %eax, 4(%esp) movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne L78 movl $2, 12(%esp) movl 16(%ebp), %eax movl %eax, 8(%esp) movl 12(%ebp), %eax movl %eax, 4(%esp) movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne L78 movl $3, 12(%esp) movl 16(%ebp), %eax movl %eax, 8(%esp) movl 12(%ebp), %eax movl %eax, 4(%esp) movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne L78 movl $4, 12(%esp) movl 16(%ebp), %eax movl %eax, 8(%esp) movl 12(%ebp), %eax movl %eax, 4(%esp) movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne L78 movl $5, 12(%esp) movl 16(%ebp), %eax movl %eax, 8(%esp) movl 12(%ebp), %eax movl %eax, 4(%esp) movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne L78 movl $6, 12(%esp) movl 16(%ebp), %eax movl %eax, 8(%esp) movl 12(%ebp), %eax movl %eax, 4(%esp) movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne L78 movl $7, 12(%esp) movl 16(%ebp), %eax movl %eax, 8(%esp) movl 12(%ebp), %eax movl %eax, 4(%esp) movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al je L86 L78: movb $1, -13(%ebp) jmp L87 L86: movb $0, -13(%ebp) L87: movzbl -13(%ebp), %eax testb %al, %al je L88 movl $1, -20(%ebp) jmp L73 L88: movzbl -12(%ebp), %eax xorl $1, %eax testb %al, %al je L90 movl 16(%ebp), %eax movl %eax, 8(%esp) movl 12(%ebp), %eax movl %eax, 4(%esp) leal LC12-"L00000000003$pb"(%ebx), %eax movl %eax, (%esp) call _printf movl 8(%ebp), %eax movl 16(%eax), %eax movl %eax, 4(%esp) movl 8(%ebp), %eax movl %eax, (%esp) call __ZNK12OthelloBoard11type_to_strE9FieldType movsbl %al,%eax movl %eax, 4(%esp) leal LC13-"L00000000003$pb"(%ebx), %eax movl %eax, (%esp) call _printf L90: movl $0, -20(%ebp) L73: movl -20(%ebp), %eax addl $36, %esp popl %ebx leave ret LFE37: .cstring __ZZNK12OthelloBoard11type_to_strE9FieldTypeE8__func__: .ascii "type_to_str\0" __ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE8__func__: .ascii "setup_directions\0" .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support EH_frame1: .set L$set$0,LECIE1-LSCIE1 .long L$set$0 LSCIE1: .long 0x0 .byte 0x1 .ascii "zPR\0" .byte 0x1 .byte 0x7c .byte 0x8 .byte 0x6 .byte 0x9b .long L___gxx_personality_v0$non_lazy_ptr-. .byte 0x10 .byte 0xc .byte 0x5 .byte 0x4 .byte 0x88 .byte 0x1 .align 2 LECIE1: .globl __ZNK12OthelloBoard4rowsEv.eh .weak_definition __ZNK12OthelloBoard4rowsEv.eh __ZNK12OthelloBoard4rowsEv.eh: LSFDE1: .set L$set$1,LEFDE1-LASFDE1 .long L$set$1 LASFDE1: .long LASFDE1-EH_frame1 .long LFB15-. .set L$set$2,LFE15-LFB15 .long L$set$2 .byte 0x0 .byte 0x4 .set L$set$3,LCFI0-LFB15 .long L$set$3 .byte 0xe .byte 0x8 .byte 0x84 .byte 0x2 .byte 0x4 .set L$set$4,LCFI1-LCFI0 .long L$set$4 .byte 0xd .byte 0x4 .align 2 LEFDE1: .globl __ZNK12OthelloBoard7columnsEv.eh .weak_definition __ZNK12OthelloBoard7columnsEv.eh __ZNK12OthelloBoard7columnsEv.eh: LSFDE3: .set L$set$5,LEFDE3-LASFDE3 .long L$set$5 LASFDE3: .long LASFDE3-EH_frame1 .long LFB16-. .set L$set$6,LFE16-LFB16 .long L$set$6 .byte 0x0 .byte 0x4 .set L$set$7,LCFI3-LFB16 .long L$set$7 .byte 0xe .byte 0x8 .byte 0x84 .byte 0x2 .byte 0x4 .set L$set$8,LCFI4-LCFI3 .long L$set$8 .byte 0xd .byte 0x4 .align 2 LEFDE3: .globl __ZNK12OthelloBoard3getEjj.eh .weak_definition __ZNK12OthelloBoard3getEjj.eh __ZNK12OthelloBoard3getEjj.eh: LSFDE5: .set L$set$9,LEFDE5-LASFDE5 .long L$set$9 LASFDE5: .long LASFDE5-EH_frame1 .long LFB26-. .set L$set$10,LFE26-LFB26 .long L$set$10 .byte 0x0 .byte 0x4 .set L$set$11,LCFI6-LFB26 .long L$set$11 .byte 0xe .byte 0x8 .byte 0x84 .byte 0x2 .byte 0x4 .set L$set$12,LCFI7-LCFI6 .long L$set$12 .byte 0xd .byte 0x4 .byte 0x4 .set L$set$13,LCFI10-LCFI7 .long L$set$13 .byte 0x86 .byte 0x4 .byte 0x87 .byte 0x3 .align 2 LEFDE5: .globl __ZNK12OthelloBoard11type_to_strE9FieldType.eh .weak_definition __ZNK12OthelloBoard11type_to_strE9FieldType.eh __ZNK12OthelloBoard11type_to_strE9FieldType.eh: LSFDE7: .set L$set$14,LEFDE7-LASFDE7 .long L$set$14 LASFDE7: .long LASFDE7-EH_frame1 .long LFB32-. .set L$set$15,LFE32-LFB32 .long L$set$15 .byte 0x0 .byte 0x4 .set L$set$16,LCFI11-LFB32 .long L$set$16 .byte 0xe .byte 0x8 .byte 0x84 .byte 0x2 .byte 0x4 .set L$set$17,LCFI12-LCFI11 .long L$set$17 .byte 0xd .byte 0x4 .byte 0x4 .set L$set$18,LCFI14-LCFI12 .long L$set$18 .byte 0x83 .byte 0x3 .align 2 LEFDE7: .globl __ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction.eh __ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction.eh: LSFDE9: .set L$set$19,LEFDE9-LASFDE9 .long L$set$19 LASFDE9: .long LASFDE9-EH_frame1 .long LFB35-. .set L$set$20,LFE35-LFB35 .long L$set$20 .byte 0x0 .byte 0x4 .set L$set$21,LCFI15-LFB35 .long L$set$21 .byte 0xe .byte 0x8 .byte 0x84 .byte 0x2 .byte 0x4 .set L$set$22,LCFI16-LCFI15 .long L$set$22 .byte 0xd .byte 0x4 .byte 0x4 .set L$set$23,LCFI19-LCFI16 .long L$set$23 .byte 0x83 .byte 0x4 .byte 0x86 .byte 0x3 .align 2 LEFDE9: .globl __ZNK12OthelloBoard18position_reachableEjj9direction.eh __ZNK12OthelloBoard18position_reachableEjj9direction.eh: LSFDE11: .set L$set$24,LEFDE11-LASFDE11 .long L$set$24 LASFDE11: .long LASFDE11-EH_frame1 .long LFB36-. .set L$set$25,LFE36-LFB36 .long L$set$25 .byte 0x0 .byte 0x4 .set L$set$26,LCFI20-LFB36 .long L$set$26 .byte 0xe .byte 0x8 .byte 0x84 .byte 0x2 .byte 0x4 .set L$set$27,LCFI21-LCFI20 .long L$set$27 .byte 0xd .byte 0x4 .align 2 LEFDE11: .globl __ZNK12OthelloBoard8validateEjjb.eh __ZNK12OthelloBoard8validateEjjb.eh: LSFDE13: .set L$set$28,LEFDE13-LASFDE13 .long L$set$28 LASFDE13: .long LASFDE13-EH_frame1 .long LFB37-. .set L$set$29,LFE37-LFB37 .long L$set$29 .byte 0x0 .byte 0x4 .set L$set$30,LCFI23-LFB37 .long L$set$30 .byte 0xe .byte 0x8 .byte 0x84 .byte 0x2 .byte 0x4 .set L$set$31,LCFI24-LCFI23 .long L$set$31 .byte 0xd .byte 0x4 .byte 0x4 .set L$set$32,LCFI26-LCFI24 .long L$set$32 .byte 0x83 .byte 0x3 .align 2 LEFDE13: .section __IMPORT,__pointers,non_lazy_symbol_pointers L___gxx_personality_v0$non_lazy_ptr: .indirect_symbol ___gxx_personality_v0 .long 0 .constructor .destructor .align 1 .subsections_via_symbols #endif // x86/32 #ifdef __x86_64__ .section __TEXT,__textcoal_nt,coalesced,pure_instructions .align 1 .globl __ZNK12OthelloBoard4rowsEv .weak_definition __ZNK12OthelloBoard4rowsEv __ZNK12OthelloBoard4rowsEv: LFB15: pushq %rbp LCFI0: movq %rsp, %rbp LCFI1: movq %rdi, -8(%rbp) movq -8(%rbp), %rax movl (%rax), %eax leave ret LFE15: .align 1 .globl __ZNK12OthelloBoard7columnsEv .weak_definition __ZNK12OthelloBoard7columnsEv __ZNK12OthelloBoard7columnsEv: LFB16: pushq %rbp LCFI2: movq %rsp, %rbp LCFI3: movq %rdi, -8(%rbp) movq -8(%rbp), %rax movl 4(%rax), %eax leave ret LFE16: .align 1 .globl __ZNK12OthelloBoard3getEjj .weak_definition __ZNK12OthelloBoard3getEjj __ZNK12OthelloBoard3getEjj: LFB26: pushq %rbp LCFI4: movq %rsp, %rbp LCFI5: pushq %r12 LCFI6: pushq %rbx LCFI7: subq $32, %rsp LCFI8: movq %rdi, -24(%rbp) movl %esi, -28(%rbp) movl %edx, -32(%rbp) cmpl $0, -28(%rbp) je L6 cmpl $0, -32(%rbp) je L6 movq -24(%rbp), %rdi call __ZNK12OthelloBoard4rowsEv cmpl -28(%rbp), %eax jb L6 movq -24(%rbp), %rdi call __ZNK12OthelloBoard7columnsEv cmpl -32(%rbp), %eax jae L10 L6: movb $1, -37(%rbp) jmp L11 L10: movb $0, -37(%rbp) L11: movzbl -37(%rbp), %eax testb %al, %al je L12 movl $3, -36(%rbp) jmp L14 L12: movq -24(%rbp), %rax movq 16(%rax), %r12 movl -28(%rbp), %ebx decl %ebx movq -24(%rbp), %rdi call __ZNK12OthelloBoard7columnsEv imull %ebx, %eax addl -32(%rbp), %eax decl %eax mov %eax, %eax salq $2, %rax leaq (%r12,%rax), %rax movl (%rax), %eax movl %eax, -36(%rbp) L14: movl -36(%rbp), %eax addq $32, %rsp popq %rbx popq %r12 leave ret LFE26: .cstring LC0: .ascii "type %d\12\0" LC1: .ascii "false\0" LC2: .ascii "./board.h\0" .section __TEXT,__textcoal_nt,coalesced,pure_instructions .align 1 .globl __ZNK12OthelloBoard11type_to_strE9FieldType .weak_definition __ZNK12OthelloBoard11type_to_strE9FieldType __ZNK12OthelloBoard11type_to_strE9FieldType: LFB32: pushq %rbp LCFI9: movq %rsp, %rbp LCFI10: subq $32, %rsp LCFI11: movq %rdi, -8(%rbp) movl %esi, -12(%rbp) movl -12(%rbp), %eax movl %eax, -20(%rbp) cmpl $1, -20(%rbp) je L19 cmpl $1, -20(%rbp) jg L22 cmpl $0, -20(%rbp) je L18 jmp L17 L22: cmpl $2, -20(%rbp) je L20 cmpl $3, -20(%rbp) je L21 jmp L17 L18: movl $46, -16(%rbp) jmp L23 L19: movl $79, -16(%rbp) jmp L23 L20: movl $88, -16(%rbp) jmp L23 L21: movl $47, -16(%rbp) jmp L23 L17: movl -12(%rbp), %esi leaq LC0(%rip), %rdi movl $0, %eax call _printf leaq LC1(%rip), %rcx movl $282, %edx leaq LC2(%rip), %rsi leaq __ZZNK12OthelloBoard11type_to_strE9FieldTypeE8__func__(%rip), %rdi call ___assert_rtn L23: movl -16(%rbp), %eax leave ret LFE32: .cstring LC3: .ascii "row_idx > 0\0" LC4: .ascii "board_validate.cc\0" LC5: .ascii "row_idx <= rows()\0" LC6: .ascii "col_idx > 0\0" LC7: .ascii "col_idx <= columns()\0" LC8: .ascii "inc_row == 0\0" LC9: .ascii "inc_col == 0\0" .text .align 1,0x90 .globl __ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction __ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction: LFB35: pushq %rbp LCFI12: movq %rsp, %rbp LCFI13: pushq %rbx LCFI14: subq $56, %rsp LCFI15: movq %rdi, -24(%rbp) movq %rsi, -32(%rbp) movq %rdx, -40(%rbp) movq %rcx, -48(%rbp) movq %r8, -56(%rbp) movl %r9d, -60(%rbp) movq -32(%rbp), %rax movl (%rax), %eax testl %eax, %eax sete %al movzbl %al, %eax testq %rax, %rax je L26 leaq LC3(%rip), %rcx movl $7, %edx leaq LC4(%rip), %rsi leaq __ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE8__func__(%rip), %rdi call ___assert_rtn L26: movq -32(%rbp), %rax movl (%rax), %ebx movq -24(%rbp), %rdi call __ZNK12OthelloBoard4rowsEv cmpl %eax, %ebx seta %al movzbl %al, %eax testq %rax, %rax je L28 leaq LC5(%rip), %rcx movl $8, %edx leaq LC4(%rip), %rsi leaq __ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE8__func__(%rip), %rdi call ___assert_rtn L28: movq -40(%rbp), %rax movl (%rax), %eax testl %eax, %eax sete %al movzbl %al, %eax testq %rax, %rax je L30 leaq LC6(%rip), %rcx movl $9, %edx leaq LC4(%rip), %rsi leaq __ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE8__func__(%rip), %rdi call ___assert_rtn L30: movq -40(%rbp), %rax movl (%rax), %ebx movq -24(%rbp), %rdi call __ZNK12OthelloBoard7columnsEv cmpl %eax, %ebx seta %al movzbl %al, %eax testq %rax, %rax je L32 leaq LC7(%rip), %rcx movl $10, %edx leaq LC4(%rip), %rsi leaq __ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE8__func__(%rip), %rdi call ___assert_rtn L32: movq -48(%rbp), %rax movl (%rax), %eax testl %eax, %eax setne %al movzbl %al, %eax testq %rax, %rax je L34 leaq LC8(%rip), %rcx movl $11, %edx leaq LC4(%rip), %rsi leaq __ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE8__func__(%rip), %rdi call ___assert_rtn L34: movq -56(%rbp), %rax movl (%rax), %eax testl %eax, %eax setne %al movzbl %al, %eax testq %rax, %rax je L36 leaq LC9(%rip), %rcx movl $12, %edx leaq LC4(%rip), %rsi leaq __ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE8__func__(%rip), %rdi call ___assert_rtn L36: movl -60(%rbp), %eax movl %eax, -64(%rbp) cmpl $7, -64(%rbp) ja L48 mov -64(%rbp), %eax leaq 0(,%rax,4), %rdx leaq L47(%rip), %rax leaq (%rdx,%rax), %rax movl (%rax), %eax movslq %eax,%rdx leaq L47(%rip), %rax leaq (%rdx,%rax), %rax jmp *%rax .align 2,0x90 L47: .long L39-L47 .long L40-L47 .long L41-L47 .long L42-L47 .long L43-L47 .long L44-L47 .long L45-L47 .long L46-L47 L41: movq -32(%rbp), %rax movl (%rax), %eax leal -1(%rax), %edx movq -32(%rbp), %rax movl %edx, (%rax) movq -48(%rbp), %rax movl $-1, (%rax) jmp L48 L42: movq -32(%rbp), %rax movl (%rax), %eax leal 1(%rax), %edx movq -32(%rbp), %rax movl %edx, (%rax) movq -48(%rbp), %rax movl $1, (%rax) jmp L48 L39: movq -40(%rbp), %rax movl (%rax), %eax leal -1(%rax), %edx movq -40(%rbp), %rax movl %edx, (%rax) movq -56(%rbp), %rax movl $-1, (%rax) jmp L48 L40: movq -40(%rbp), %rax movl (%rax), %eax leal 1(%rax), %edx movq -40(%rbp), %rax movl %edx, (%rax) movq -56(%rbp), %rax movl $1, (%rax) jmp L48 L43: movq -32(%rbp), %rax movl (%rax), %eax leal -1(%rax), %edx movq -32(%rbp), %rax movl %edx, (%rax) movq -40(%rbp), %rax movl (%rax), %eax leal -1(%rax), %edx movq -40(%rbp), %rax movl %edx, (%rax) movq -48(%rbp), %rax movl $-1, (%rax) movq -56(%rbp), %rax movl $-1, (%rax) jmp L48 L44: movq -32(%rbp), %rax movl (%rax), %eax leal -1(%rax), %edx movq -32(%rbp), %rax movl %edx, (%rax) movq -40(%rbp), %rax movl (%rax), %eax leal 1(%rax), %edx movq -40(%rbp), %rax movl %edx, (%rax) movq -48(%rbp), %rax movl $-1, (%rax) movq -56(%rbp), %rax movl $1, (%rax) jmp L48 L45: movq -32(%rbp), %rax movl (%rax), %eax leal 1(%rax), %edx movq -32(%rbp), %rax movl %edx, (%rax) movq -40(%rbp), %rax movl (%rax), %eax leal -1(%rax), %edx movq -40(%rbp), %rax movl %edx, (%rax) movq -48(%rbp), %rax movl $1, (%rax) movq -56(%rbp), %rax movl $-1, (%rax) jmp L48 L46: movq -32(%rbp), %rax movl (%rax), %eax leal 1(%rax), %edx movq -32(%rbp), %rax movl %edx, (%rax) movq -40(%rbp), %rax movl (%rax), %eax leal 1(%rax), %edx movq -40(%rbp), %rax movl %edx, (%rax) movq -48(%rbp), %rax movl $1, (%rax) movq -56(%rbp), %rax movl $1, (%rax) L48: addq $56, %rsp popq %rbx leave ret LFE35: .align 1,0x90 .globl __ZNK12OthelloBoard18position_reachableEjj9direction __ZNK12OthelloBoard18position_reachableEjj9direction: LFB36: pushq %rbp LCFI16: movq %rsp, %rbp LCFI17: subq $64, %rsp LCFI18: movq %rdi, -40(%rbp) movl %esi, -44(%rbp) movl %edx, -48(%rbp) movl %ecx, -52(%rbp) movl -44(%rbp), %eax movl %eax, -4(%rbp) movl -48(%rbp), %eax movl %eax, -8(%rbp) movl $0, -12(%rbp) movl $0, -16(%rbp) movl $1, -20(%rbp) movl -52(%rbp), %eax leaq -16(%rbp), %rdx leaq -12(%rbp), %rcx leaq -8(%rbp), %rsi leaq -4(%rbp), %rdi movq -40(%rbp), %r10 movl %eax, %r9d movq %rdx, %r8 movq %rsi, %rdx movq %rdi, %rsi movq %r10, %rdi call __ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction movl -8(%rbp), %edx movl -4(%rbp), %esi movq -40(%rbp), %rdi call __ZNK12OthelloBoard3getEjj movl %eax, -24(%rbp) jmp L50 L51: movl -8(%rbp), %edx movl -16(%rbp), %eax leal (%rdx,%rax), %eax movl %eax, -8(%rbp) movl -4(%rbp), %edx movl -12(%rbp), %eax leal (%rdx,%rax), %eax movl %eax, -4(%rbp) movl -8(%rbp), %edx movl -4(%rbp), %esi movq -40(%rbp), %rdi call __ZNK12OthelloBoard3getEjj movl %eax, -24(%rbp) incl -20(%rbp) L50: cmpl $0, -24(%rbp) je L52 movl -24(%rbp), %edx movq -40(%rbp), %rax movl 24(%rax), %eax cmpl %eax, %edx je L52 cmpl $3, -24(%rbp) jne L51 L52: cmpl $1, -20(%rbp) jbe L55 movl -24(%rbp), %edx movq -40(%rbp), %rax movl 24(%rax), %eax cmpl %eax, %edx jne L55 movb $1, -53(%rbp) jmp L58 L55: movb $0, -53(%rbp) L58: movzbl -53(%rbp), %eax leave ret LFE36: .cstring .align 3 LC10: .ascii "Coordinates (r=%d, c=%d) out of bounds.\12\0" .align 3 LC11: .ascii "Field @ (r=%d, c=%d) is occupied by %c\12\0" .align 3 LC12: .ascii "Position (r=%d, c=%d) not reachable by a stone \0" LC13: .ascii "of type %c.\12\0" .text .align 1,0x90 .globl __ZNK12OthelloBoard8validateEjjb __ZNK12OthelloBoard8validateEjjb: LFB37: pushq %rbp LCFI19: movq %rsp, %rbp LCFI20: subq $32, %rsp LCFI21: movq %rdi, -8(%rbp) movl %esi, -12(%rbp) movl %edx, -16(%rbp) movb %cl, -20(%rbp) cmpl $0, -12(%rbp) je L61 movq -8(%rbp), %rdi call __ZNK12OthelloBoard4rowsEv cmpl -12(%rbp), %eax jb L61 cmpl $0, -16(%rbp) je L61 movq -8(%rbp), %rdi call __ZNK12OthelloBoard7columnsEv cmpl -16(%rbp), %eax jae L65 L61: movb $1, -29(%rbp) jmp L66 L65: movb $0, -29(%rbp) L66: movzbl -29(%rbp), %eax testb %al, %al je L67 movzbl -20(%rbp), %eax xorl $1, %eax testb %al, %al je L69 movl -16(%rbp), %edx movl -12(%rbp), %esi leaq LC10(%rip), %rdi movl $0, %eax call _printf L69: movl $0, -28(%rbp) jmp L71 L67: movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rdi call __ZNK12OthelloBoard3getEjj testl %eax, %eax setne %al testb %al, %al je L72 movzbl -20(%rbp), %eax xorl $1, %eax testb %al, %al je L74 movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rdi call __ZNK12OthelloBoard3getEjj movl %eax, %esi movq -8(%rbp), %rdi call __ZNK12OthelloBoard11type_to_strE9FieldType movsbl %al,%ecx movl -16(%rbp), %edx movl -12(%rbp), %esi leaq LC11(%rip), %rdi movl $0, %eax call _printf L74: movl $0, -28(%rbp) jmp L71 L72: movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rdi movl $0, %ecx call __ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne L76 movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rdi movl $1, %ecx call __ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne L76 movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rdi movl $2, %ecx call __ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne L76 movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rdi movl $3, %ecx call __ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne L76 movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rdi movl $4, %ecx call __ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne L76 movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rdi movl $5, %ecx call __ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne L76 movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rdi movl $6, %ecx call __ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al jne L76 movl -16(%rbp), %edx movl -12(%rbp), %esi movq -8(%rbp), %rdi movl $7, %ecx call __ZNK12OthelloBoard18position_reachableEjj9direction testb %al, %al je L84 L76: movb $1, -21(%rbp) jmp L85 L84: movb $0, -21(%rbp) L85: movzbl -21(%rbp), %eax testb %al, %al je L86 movl $1, -28(%rbp) jmp L71 L86: movzbl -20(%rbp), %eax xorl $1, %eax testb %al, %al je L88 movl -16(%rbp), %edx movl -12(%rbp), %esi leaq LC12(%rip), %rdi movl $0, %eax call _printf movq -8(%rbp), %rax movl 24(%rax), %esi movq -8(%rbp), %rdi call __ZNK12OthelloBoard11type_to_strE9FieldType movsbl %al,%esi leaq LC13(%rip), %rdi movl $0, %eax call _printf L88: movl $0, -28(%rbp) L71: movl -28(%rbp), %eax leave ret LFE37: .cstring __ZZNK12OthelloBoard11type_to_strE9FieldTypeE8__func__: .ascii "type_to_str\0" __ZZNK12OthelloBoard16setup_directionsERjS0_RiS1_9directionE8__func__: .ascii "setup_directions\0" .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support EH_frame1: .set L$set$0,LECIE1-LSCIE1 .long L$set$0 LSCIE1: .long 0x0 .byte 0x1 .ascii "zPR\0" .byte 0x1 .byte 0x78 .byte 0x10 .byte 0x6 .byte 0x9b .long ___gxx_personality_v0+4@GOTPCREL .byte 0x10 .byte 0xc .byte 0x7 .byte 0x8 .byte 0x90 .byte 0x1 .align 3 LECIE1: .globl __ZNK12OthelloBoard4rowsEv.eh .weak_definition __ZNK12OthelloBoard4rowsEv.eh __ZNK12OthelloBoard4rowsEv.eh: LSFDE1: .set L$set$1,LEFDE1-LASFDE1 .long L$set$1 LASFDE1: .long LASFDE1-EH_frame1 .quad LFB15-. .set L$set$2,LFE15-LFB15 .quad L$set$2 .byte 0x0 .byte 0x4 .set L$set$3,LCFI0-LFB15 .long L$set$3 .byte 0xe .byte 0x10 .byte 0x86 .byte 0x2 .byte 0x4 .set L$set$4,LCFI1-LCFI0 .long L$set$4 .byte 0xd .byte 0x6 .align 3 LEFDE1: .globl __ZNK12OthelloBoard7columnsEv.eh .weak_definition __ZNK12OthelloBoard7columnsEv.eh __ZNK12OthelloBoard7columnsEv.eh: LSFDE3: .set L$set$5,LEFDE3-LASFDE3 .long L$set$5 LASFDE3: .long LASFDE3-EH_frame1 .quad LFB16-. .set L$set$6,LFE16-LFB16 .quad L$set$6 .byte 0x0 .byte 0x4 .set L$set$7,LCFI2-LFB16 .long L$set$7 .byte 0xe .byte 0x10 .byte 0x86 .byte 0x2 .byte 0x4 .set L$set$8,LCFI3-LCFI2 .long L$set$8 .byte 0xd .byte 0x6 .align 3 LEFDE3: .globl __ZNK12OthelloBoard3getEjj.eh .weak_definition __ZNK12OthelloBoard3getEjj.eh __ZNK12OthelloBoard3getEjj.eh: LSFDE5: .set L$set$9,LEFDE5-LASFDE5 .long L$set$9 LASFDE5: .long LASFDE5-EH_frame1 .quad LFB26-. .set L$set$10,LFE26-LFB26 .quad L$set$10 .byte 0x0 .byte 0x4 .set L$set$11,LCFI4-LFB26 .long L$set$11 .byte 0xe .byte 0x10 .byte 0x86 .byte 0x2 .byte 0x4 .set L$set$12,LCFI5-LCFI4 .long L$set$12 .byte 0xd .byte 0x6 .byte 0x4 .set L$set$13,LCFI8-LCFI5 .long L$set$13 .byte 0x83 .byte 0x4 .byte 0x8c .byte 0x3 .align 3 LEFDE5: .globl __ZNK12OthelloBoard11type_to_strE9FieldType.eh .weak_definition __ZNK12OthelloBoard11type_to_strE9FieldType.eh __ZNK12OthelloBoard11type_to_strE9FieldType.eh: LSFDE7: .set L$set$14,LEFDE7-LASFDE7 .long L$set$14 LASFDE7: .long LASFDE7-EH_frame1 .quad LFB32-. .set L$set$15,LFE32-LFB32 .quad L$set$15 .byte 0x0 .byte 0x4 .set L$set$16,LCFI9-LFB32 .long L$set$16 .byte 0xe .byte 0x10 .byte 0x86 .byte 0x2 .byte 0x4 .set L$set$17,LCFI10-LCFI9 .long L$set$17 .byte 0xd .byte 0x6 .align 3 LEFDE7: .globl __ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction.eh __ZNK12OthelloBoard16setup_directionsERjS0_RiS1_9direction.eh: LSFDE9: .set L$set$18,LEFDE9-LASFDE9 .long L$set$18 LASFDE9: .long LASFDE9-EH_frame1 .quad LFB35-. .set L$set$19,LFE35-LFB35 .quad L$set$19 .byte 0x0 .byte 0x4 .set L$set$20,LCFI12-LFB35 .long L$set$20 .byte 0xe .byte 0x10 .byte 0x86 .byte 0x2 .byte 0x4 .set L$set$21,LCFI13-LCFI12 .long L$set$21 .byte 0xd .byte 0x6 .byte 0x4 .set L$set$22,LCFI15-LCFI13 .long L$set$22 .byte 0x83 .byte 0x3 .align 3 LEFDE9: .globl __ZNK12OthelloBoard18position_reachableEjj9direction.eh __ZNK12OthelloBoard18position_reachableEjj9direction.eh: LSFDE11: .set L$set$23,LEFDE11-LASFDE11 .long L$set$23 LASFDE11: .long LASFDE11-EH_frame1 .quad LFB36-. .set L$set$24,LFE36-LFB36 .quad L$set$24 .byte 0x0 .byte 0x4 .set L$set$25,LCFI16-LFB36 .long L$set$25 .byte 0xe .byte 0x10 .byte 0x86 .byte 0x2 .byte 0x4 .set L$set$26,LCFI17-LCFI16 .long L$set$26 .byte 0xd .byte 0x6 .align 3 LEFDE11: .globl __ZNK12OthelloBoard8validateEjjb.eh __ZNK12OthelloBoard8validateEjjb.eh: LSFDE13: .set L$set$27,LEFDE13-LASFDE13 .long L$set$27 LASFDE13: .long LASFDE13-EH_frame1 .quad LFB37-. .set L$set$28,LFE37-LFB37 .quad L$set$28 .byte 0x0 .byte 0x4 .set L$set$29,LCFI19-LFB37 .long L$set$29 .byte 0xe .byte 0x10 .byte 0x86 .byte 0x2 .byte 0x4 .set L$set$30,LCFI20-LCFI19 .long L$set$30 .byte 0xd .byte 0x6 .align 3 LEFDE13: .constructor .destructor .align 1 .subsections_via_symbols #endif // x86/64 #endif // Darwin