PraktikumOthello/asm.S

3274 lines
62 KiB
ArmAsm
Raw Normal View History

2015-03-07 17:18:50 +01:00
#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