Files
amigaos-cross-toolchain6/test/test13/golden/sillychess.s
T
2017-09-05 20:29:17 +01:00

569 lines
8.0 KiB
ArmAsm

#NO_APP
.text
.align 2
.globl _init
_init:
jsr _initHash
jsr _InitMvvLva
jsr _initBoard
lea _board+142,a0
clr.w (a0)
clr.l 32194(a0)
clr.l 32198(a0)
clr.l 32202(a0)
pea 4.w
jsr _TT_set_size
addq.l #4,sp
rts
.LC0:
.ascii "r\0"
.LC1:
.ascii "/home/alex/git/local/amichess/src/perfsuite.epd\0"
.LC2:
.ascii "Correct: %d -- Error: %d\12\0"
.LC3:
.ascii "\0"
.LC4:
.ascii "#%3d Depth: %d, value=%d - Perft: %d %s\12\0"
.align 2
.globl _testPerft
_testPerft:
lea (-380,sp),sp
movem.l #16190,-(sp)
move.l 428(sp),a4
pea .LC0
pea .LC1
jsr _fopen
move.l d0,d6
addq.l #8,sp
moveq #1,d5
moveq #0,d7
clr.l 44(sp)
move.l sp,d4
add.l #168,d4
lea _fgets,a5
lea _strchr,a3
lea _atol,a6
move.l d6,-(sp)
pea 256.w
move.l d4,-(sp)
jsr (a5)
lea (12,sp),sp
tst.l d0
jeq .L19
.L11:
pea 59.w
move.l d4,-(sp)
jsr (a3)
move.l d0,a2
clr.b (a2)
lea (56,sp),a1
addq.l #8,sp
move.l d4,a0
.L4:
move.b (a0)+,(a1)+
jne .L4
cmp.w #0,a4
jeq .L5
move.l a4,d2
move.l a2,d3
addq.l #1,d3
pea 59.w
move.l d3,-(sp)
jsr (a3)
addq.l #8,sp
tst.l d0
jeq .L20
.L6:
move.l d0,a0
clr.b (a0)
subq.l #1,d2
jeq .L21
.L12:
move.l d0,a2
move.l a2,d3
addq.l #1,d3
pea 59.w
move.l d3,-(sp)
jsr (a3)
addq.l #8,sp
tst.l d0
jne .L6
.L20:
pea 10.w
move.l d3,-(sp)
jsr (a3)
addq.l #8,sp
move.l d0,a0
clr.b (a0)
subq.l #1,d2
jne .L12
.L21:
cmp.b #68,1(a2)
jeq .L22
addq.l #1,d5
.L24:
move.l d6,-(sp)
pea 256.w
move.l d4,-(sp)
jsr (a5)
lea (12,sp),sp
tst.l d0
jne .L11
.L19:
move.l d7,-(sp)
move.l 48(sp),-(sp)
pea .LC2
jsr _printf
move.l d6,-(sp)
jsr _fclose
lea (16,sp),sp
movem.l (sp)+,#31996
lea (380,sp),sp
rts
.L22:
move.b 2(a2),d0
ext.w d0
move.w d0,a0
moveq #-48,d2
add.l a0,d2
pea 4(a2)
jsr (a6)
move.l d0,d3
pea 52(sp)
jsr _fen2board
moveq #0,d0
not.b d0
and.l d2,d0
move.l d0,-(sp)
jsr _Perft
lea (12,sp),sp
cmp.l d3,d1
jeq .L23
pea 48(sp)
move.l d1,-(sp)
move.l d3,-(sp)
move.l d2,-(sp)
move.l d5,-(sp)
pea .LC4
jsr _printf
addq.l #1,d7
lea (24,sp),sp
addq.l #1,d5
jra .L24
.L5:
move.b (a4),d0
trap #7
.L23:
pea .LC3
move.l d3,-(sp)
move.l d3,-(sp)
move.l d2,-(sp)
move.l d5,-(sp)
pea .LC4
jsr _printf
addq.l #1,68(sp)
lea (24,sp),sp
addq.l #1,d5
jra .L24
.LC5:
.ascii "No id!!!\12\0"
.LC6:
.ascii "NOT SOLVED\0"
.LC7:
.ascii "SOLVED\0"
.LC8:
.ascii "Can't open \"%s\" for reading.\12\0"
.LC9:
.ascii "bm \0"
.LC10:
.ascii "Can't find bm (best move start marker) at line %d\12\0"
.LC11:
.ascii "%d/%d (%s) Engine: %s (D:%d) EPD: %s -- %s\12\0"
.LC12:
.ascii "cmd: testepd %d %s\0"
.LC13:
.ascii "Time: %dms Nodes: %lld %d/%d Avg.Depth: %g (%s)\12%s\12\0"
.align 2
.globl _testEPD
_testEPD:
lea (-3588,sp),sp
movem.l #16190,-(sp)
moveq #2,d0
move.l d0,176(sp)
pea .LC0
move.l 3640(sp),-(sp)
jsr _fopen
move.l d0,68(sp)
addq.l #8,sp
jeq .L44
lea _get_ms,a2
jsr (a2)
move.l d0,64(sp)
moveq #1,d3
clr.l 44(sp)
clr.l 48(sp)
clr.l 52(sp)
moveq #0,d5
move.l sp,d2
add.l #304,d2
move.l sp,d6
add.l #560,d6
lea _strstr,a3
lea (80,sp),a4
moveq #68,d7
add.l sp,d7
move.l d3,d4
subq.l #1,d4
move.l 60(sp),-(sp)
pea 256.w
move.l d2,-(sp)
jsr _fgets
lea (12,sp),sp
tst.l d0
jeq .L31
.L36:
pea .LC9
move.l d2,-(sp)
jsr (a3)
move.l d0,a6
pea 59.w
move.l d2,-(sp)
jsr _strchr
move.l d0,a5
lea (16,sp),sp
move.l d2,a0
.L29:
tst.b (a0)+
jne .L29
move.l d2,d0
sub.l a0,d0
lea (3632,sp),a0
sub.l d0,a0
clr.b -3330(a0)
cmp.w #0,a6
jeq .L45
move.l a6,d4
addq.l #3,d4
clr.b 2(a6)
lea (184,sp),a1
move.l d2,a0
.L32:
move.b (a0)+,(a1)+
jne .L32
pea 184(sp)
jsr _fen2board
addq.l #4,sp
cmp.w #0,a5
jeq .L38
move.l a5,a6
clr.b (a6)+
cmp.b #32,1(a5)
jne .L33
.L34:
addq.l #1,a6
cmp.b #32,(a6)
jeq .L34
.L33:
jsr _TT_clear
jsr (a2)
move.l d0,84(sp)
jsr (a2)
add.l 3640(sp),d0
move.l d0,88(sp)
clr.l 124(sp)
moveq #1,d0
move.l d0,96(sp)
move.l a4,-(sp)
jsr _think
move.l d0,72(sp)
move.l d6,-(sp)
jsr _generateLegalMoves
move.l d0,a5
move.l d7,-(sp)
jsr _move_make
move.l d6,-(sp)
move.l a5,-(sp)
move.l a4,a0
move.l -(a0),-(sp)
move.l -(a0),-(sp)
move.l -4(a0),-(sp)
jsr _move_to_san
move.l d0,a5
lea (28,sp),sp
move.l d0,(sp)
move.l d4,-(sp)
jsr (a3)
move.l d0,64(sp)
move.l d7,-(sp)
jsr _move_unmake
lea (12,sp),sp
tst.l 56(sp)
jeq .L35
addq.l #1,d5
move.l 92(sp),d0
add.l d0,52(sp)
lea .LC7,a0
move.l a0,-(sp)
move.l d4,-(sp)
move.l d0,-(sp)
move.l a5,-(sp)
move.l a6,-(sp)
move.l d3,-(sp)
move.l d5,-(sp)
pea .LC11
jsr _printf
move.l 136(sp),d0
move.l 140(sp),d1
add.l d1,80(sp)
move.l 76(sp),d4
addx.l d0,d4
move.l d4,76(sp)
addq.l #1,d3
lea (32,sp),sp
.L46:
move.l d3,d4
subq.l #1,d4
move.l 60(sp),-(sp)
pea 256.w
move.l d2,-(sp)
jsr _fgets
lea (12,sp),sp
tst.l d0
jne .L36
.L31:
jsr (a2)
move.l d0,d7
move.l 3636(sp),-(sp)
move.l 3644(sp),-(sp)
pea .LC12
move.l d6,-(sp)
jsr _sprintf
jsr _getCPUModel
move.l d6,-(sp)
move.l d0,-(sp)
lea ___floatsidf,a2
move.l 76(sp),-(sp)
jsr (a2)
move.l d0,d2
move.l d1,d3
move.l d4,(sp)
jsr (a2)
move.l d1,(sp)
move.l d0,-(sp)
move.l d3,-(sp)
move.l d2,-(sp)
jsr ___divdf3
lea (12,sp),sp
move.l d1,(sp)
move.l d0,-(sp)
move.l d4,-(sp)
move.l d5,-(sp)
move.l 88(sp),-(sp)
move.l 88(sp),-(sp)
sub.l 112(sp),d7
move.l d7,-(sp)
pea .LC13
jsr _printf
lea (56,sp),sp
move.l 60(sp),-(sp)
jsr _fclose
addq.l #4,sp
.L25:
movem.l (sp)+,#31996
lea (3588,sp),sp
rts
.L35:
move.l 92(sp),d0
add.l d0,52(sp)
lea .LC6,a0
move.l a0,-(sp)
move.l d4,-(sp)
move.l d0,-(sp)
move.l a5,-(sp)
move.l a6,-(sp)
move.l d3,-(sp)
move.l d5,-(sp)
pea .LC11
jsr _printf
move.l 136(sp),d0
move.l 140(sp),d1
add.l d1,80(sp)
move.l 76(sp),d4
addx.l d0,d4
move.l d4,76(sp)
addq.l #1,d3
lea (32,sp),sp
jra .L46
.L38:
lea .LC5,a6
jra .L33
.L45:
clr.l -(sp)
pea .LC10
jsr _printf
addq.l #8,sp
jsr (a2)
move.l d0,d7
move.l 3636(sp),-(sp)
move.l 3644(sp),-(sp)
pea .LC12
move.l d6,-(sp)
jsr _sprintf
jsr _getCPUModel
move.l d6,-(sp)
move.l d0,-(sp)
lea ___floatsidf,a2
move.l 76(sp),-(sp)
jsr (a2)
move.l d0,d2
move.l d1,d3
move.l d4,(sp)
jsr (a2)
move.l d1,(sp)
move.l d0,-(sp)
move.l d3,-(sp)
move.l d2,-(sp)
jsr ___divdf3
lea (12,sp),sp
move.l d1,(sp)
move.l d0,-(sp)
move.l d4,-(sp)
move.l d5,-(sp)
move.l 88(sp),-(sp)
move.l 88(sp),-(sp)
sub.l 112(sp),d7
move.l d7,-(sp)
pea .LC13
jsr _printf
lea (56,sp),sp
move.l 60(sp),-(sp)
jsr _fclose
addq.l #4,sp
jra .L25
.L44:
move.l 3636(sp),-(sp)
pea .LC8
jsr _printf
addq.l #8,sp
movem.l (sp)+,#31996
lea (3588,sp),sp
rts
.LC14:
.ascii "-bench\0"
.LC15:
.ascii "-bench2\0"
.LC16:
.ascii "-bench3\0"
.LC17:
.ascii "-bench4\0"
.LC18:
.ascii "../src/wac.epd\0"
.LC19:
.ascii "8/k7/3p4/p2P1p2/P2P1P2/8/8/K7 w - -\0"
.LC20:
.ascii "2Q5/8/3K4/8/2k5/8/P7/8 b - - 2 62\0"
.text
.align 2
.globl _main
_main:
link.w a5,#-104
move.l a2,-(sp)
clr.l -8(a5)
jsr _init
moveq #1,d0
cmp.l 8(a5),d0
jge .L48
move.l 12(a5),a0
move.l 4(a0),a0
move.l a0,a2
lea .LC14,a1
.L50:
move.b (a2)+,d0
cmp.b (a1)+,d0
jne .L49
tst.b d0
jne .L50
pea 100.w
pea .LC18
jsr _testEPD
jsr _TT_free
moveq #0,d0
move.l -108(a5),a2
unlk a5
rts
.L49:
move.l a0,a2
lea .LC15,a1
.L53:
move.b (a2)+,d0
cmp.b (a1)+,d0
jne .L52
tst.b d0
jne .L53
jsr _get_ms
move.l d0,-100(a5)
clr.l -88(a5)
moveq #8,d0
move.l d0,-92(a5)
pea -104(a5)
jsr _think
jsr _TT_free
moveq #0,d0
move.l -108(a5),a2
unlk a5
rts
.L52:
move.l a0,a2
lea .LC16,a1
.L55:
move.b (a2)+,d0
cmp.b (a1)+,d0
jne .L54
tst.b d0
jne .L55
pea .LC19
jsr _fen2board
jsr _get_ms
move.l d0,-100(a5)
add.l #30000,d0
move.l d0,-96(a5)
moveq #1,d0
move.l d0,-88(a5)
pea -104(a5)
jsr _think
.L64:
jsr _TT_free
moveq #0,d0
move.l -108(a5),a2
unlk a5
rts
.L54:
lea .LC17,a1
.L56:
move.b (a0)+,d0
cmp.b (a1)+,d0
jne .L48
tst.b d0
jne .L56
pea .LC20
jsr _fen2board
jsr _get_ms
move.l d0,-100(a5)
add.l #30000,d0
move.l d0,-96(a5)
moveq #1,d0
move.l d0,-88(a5)
pea -104(a5)
jsr _think
jra .L64
.L48:
pea -104(a5)
jsr _input_loop
jsr _TT_free
moveq #0,d0
move.l -108(a5),a2
unlk a5
rts
.comm _board,32396