a geicko-2 based round robin ranking system designed to test c++ battleship submissions battleship.dunkirk.sh
at main 1.5 kB view raw
1// Code generated by command: go run sum_amd64_asm.go -out ../sum_amd64.s -pkg poly1305. DO NOT EDIT. 2 3//go:build gc && !purego 4 5// func update(state *macState, msg []byte) 6TEXT ·update(SB), $0-32 7 MOVQ state+0(FP), DI 8 MOVQ msg_base+8(FP), SI 9 MOVQ msg_len+16(FP), R15 10 MOVQ (DI), R8 11 MOVQ 8(DI), R9 12 MOVQ 16(DI), R10 13 MOVQ 24(DI), R11 14 MOVQ 32(DI), R12 15 CMPQ R15, $0x10 16 JB bytes_between_0_and_15 17 18loop: 19 ADDQ (SI), R8 20 ADCQ 8(SI), R9 21 ADCQ $0x01, R10 22 LEAQ 16(SI), SI 23 24multiply: 25 MOVQ R11, AX 26 MULQ R8 27 MOVQ AX, BX 28 MOVQ DX, CX 29 MOVQ R11, AX 30 MULQ R9 31 ADDQ AX, CX 32 ADCQ $0x00, DX 33 MOVQ R11, R13 34 IMULQ R10, R13 35 ADDQ DX, R13 36 MOVQ R12, AX 37 MULQ R8 38 ADDQ AX, CX 39 ADCQ $0x00, DX 40 MOVQ DX, R8 41 MOVQ R12, R14 42 IMULQ R10, R14 43 MOVQ R12, AX 44 MULQ R9 45 ADDQ AX, R13 46 ADCQ DX, R14 47 ADDQ R8, R13 48 ADCQ $0x00, R14 49 MOVQ BX, R8 50 MOVQ CX, R9 51 MOVQ R13, R10 52 ANDQ $0x03, R10 53 MOVQ R13, BX 54 ANDQ $-4, BX 55 ADDQ BX, R8 56 ADCQ R14, R9 57 ADCQ $0x00, R10 58 SHRQ $0x02, R14, R13 59 SHRQ $0x02, R14 60 ADDQ R13, R8 61 ADCQ R14, R9 62 ADCQ $0x00, R10 63 SUBQ $0x10, R15 64 CMPQ R15, $0x10 65 JAE loop 66 67bytes_between_0_and_15: 68 TESTQ R15, R15 69 JZ done 70 MOVQ $0x00000001, BX 71 XORQ CX, CX 72 XORQ R13, R13 73 ADDQ R15, SI 74 75flush_buffer: 76 SHLQ $0x08, BX, CX 77 SHLQ $0x08, BX 78 MOVB -1(SI), R13 79 XORQ R13, BX 80 DECQ SI 81 DECQ R15 82 JNZ flush_buffer 83 ADDQ BX, R8 84 ADCQ CX, R9 85 ADCQ $0x00, R10 86 MOVQ $0x00000010, R15 87 JMP multiply 88 89done: 90 MOVQ R8, (DI) 91 MOVQ R9, 8(DI) 92 MOVQ R10, 16(DI) 93 RET