2024-09-09 08:24:38 +00:00
|
|
|
// Code generated by command: go run blamka_amd64.go -out ../blamka_amd64.s -pkg argon2. DO NOT EDIT.
|
2022-07-03 10:08:30 +00:00
|
|
|
|
|
|
|
//go:build amd64 && gc && !purego
|
|
|
|
|
|
|
|
#include "textflag.h"
|
|
|
|
|
|
|
|
// func blamkaSSE4(b *block)
|
2024-09-09 08:24:38 +00:00
|
|
|
// Requires: SSE2, SSSE3
|
|
|
|
TEXT ·blamkaSSE4(SB), NOSPLIT, $0-8
|
|
|
|
MOVQ b+0(FP), AX
|
|
|
|
MOVOU ·c40<>+0(SB), X10
|
|
|
|
MOVOU ·c48<>+0(SB), X11
|
|
|
|
MOVOU (AX), X0
|
|
|
|
MOVOU 16(AX), X1
|
|
|
|
MOVOU 32(AX), X2
|
|
|
|
MOVOU 48(AX), X3
|
|
|
|
MOVOU 64(AX), X4
|
|
|
|
MOVOU 80(AX), X5
|
|
|
|
MOVOU 96(AX), X6
|
|
|
|
MOVOU 112(AX), X7
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKLQDQ X6, X9
|
|
|
|
PUNPCKHQDQ X7, X6
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
MOVO X8, X7
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKLQDQ X2, X9
|
|
|
|
PUNPCKHQDQ X3, X2
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
MOVO X8, X3
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
MOVOU X0, (AX)
|
|
|
|
MOVOU X1, 16(AX)
|
|
|
|
MOVOU X2, 32(AX)
|
|
|
|
MOVOU X3, 48(AX)
|
|
|
|
MOVOU X4, 64(AX)
|
|
|
|
MOVOU X5, 80(AX)
|
|
|
|
MOVOU X6, 96(AX)
|
|
|
|
MOVOU X7, 112(AX)
|
|
|
|
MOVOU 128(AX), X0
|
|
|
|
MOVOU 144(AX), X1
|
|
|
|
MOVOU 160(AX), X2
|
|
|
|
MOVOU 176(AX), X3
|
|
|
|
MOVOU 192(AX), X4
|
|
|
|
MOVOU 208(AX), X5
|
|
|
|
MOVOU 224(AX), X6
|
|
|
|
MOVOU 240(AX), X7
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKLQDQ X6, X9
|
|
|
|
PUNPCKHQDQ X7, X6
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
MOVO X8, X7
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKLQDQ X2, X9
|
|
|
|
PUNPCKHQDQ X3, X2
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
MOVO X8, X3
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
MOVOU X0, 128(AX)
|
|
|
|
MOVOU X1, 144(AX)
|
|
|
|
MOVOU X2, 160(AX)
|
|
|
|
MOVOU X3, 176(AX)
|
|
|
|
MOVOU X4, 192(AX)
|
|
|
|
MOVOU X5, 208(AX)
|
|
|
|
MOVOU X6, 224(AX)
|
|
|
|
MOVOU X7, 240(AX)
|
|
|
|
MOVOU 256(AX), X0
|
|
|
|
MOVOU 272(AX), X1
|
|
|
|
MOVOU 288(AX), X2
|
|
|
|
MOVOU 304(AX), X3
|
|
|
|
MOVOU 320(AX), X4
|
|
|
|
MOVOU 336(AX), X5
|
|
|
|
MOVOU 352(AX), X6
|
|
|
|
MOVOU 368(AX), X7
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKLQDQ X6, X9
|
|
|
|
PUNPCKHQDQ X7, X6
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
MOVO X8, X7
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKLQDQ X2, X9
|
|
|
|
PUNPCKHQDQ X3, X2
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
MOVO X8, X3
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
MOVOU X0, 256(AX)
|
|
|
|
MOVOU X1, 272(AX)
|
|
|
|
MOVOU X2, 288(AX)
|
|
|
|
MOVOU X3, 304(AX)
|
|
|
|
MOVOU X4, 320(AX)
|
|
|
|
MOVOU X5, 336(AX)
|
|
|
|
MOVOU X6, 352(AX)
|
|
|
|
MOVOU X7, 368(AX)
|
|
|
|
MOVOU 384(AX), X0
|
|
|
|
MOVOU 400(AX), X1
|
|
|
|
MOVOU 416(AX), X2
|
|
|
|
MOVOU 432(AX), X3
|
|
|
|
MOVOU 448(AX), X4
|
|
|
|
MOVOU 464(AX), X5
|
|
|
|
MOVOU 480(AX), X6
|
|
|
|
MOVOU 496(AX), X7
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKLQDQ X6, X9
|
|
|
|
PUNPCKHQDQ X7, X6
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
MOVO X8, X7
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKLQDQ X2, X9
|
|
|
|
PUNPCKHQDQ X3, X2
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
MOVO X8, X3
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
MOVOU X0, 384(AX)
|
|
|
|
MOVOU X1, 400(AX)
|
|
|
|
MOVOU X2, 416(AX)
|
|
|
|
MOVOU X3, 432(AX)
|
|
|
|
MOVOU X4, 448(AX)
|
|
|
|
MOVOU X5, 464(AX)
|
|
|
|
MOVOU X6, 480(AX)
|
|
|
|
MOVOU X7, 496(AX)
|
|
|
|
MOVOU 512(AX), X0
|
|
|
|
MOVOU 528(AX), X1
|
|
|
|
MOVOU 544(AX), X2
|
|
|
|
MOVOU 560(AX), X3
|
|
|
|
MOVOU 576(AX), X4
|
|
|
|
MOVOU 592(AX), X5
|
|
|
|
MOVOU 608(AX), X6
|
|
|
|
MOVOU 624(AX), X7
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKLQDQ X6, X9
|
|
|
|
PUNPCKHQDQ X7, X6
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
MOVO X8, X7
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKLQDQ X2, X9
|
|
|
|
PUNPCKHQDQ X3, X2
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
MOVO X8, X3
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
MOVOU X0, 512(AX)
|
|
|
|
MOVOU X1, 528(AX)
|
|
|
|
MOVOU X2, 544(AX)
|
|
|
|
MOVOU X3, 560(AX)
|
|
|
|
MOVOU X4, 576(AX)
|
|
|
|
MOVOU X5, 592(AX)
|
|
|
|
MOVOU X6, 608(AX)
|
|
|
|
MOVOU X7, 624(AX)
|
|
|
|
MOVOU 640(AX), X0
|
|
|
|
MOVOU 656(AX), X1
|
|
|
|
MOVOU 672(AX), X2
|
|
|
|
MOVOU 688(AX), X3
|
|
|
|
MOVOU 704(AX), X4
|
|
|
|
MOVOU 720(AX), X5
|
|
|
|
MOVOU 736(AX), X6
|
|
|
|
MOVOU 752(AX), X7
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKLQDQ X6, X9
|
|
|
|
PUNPCKHQDQ X7, X6
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
MOVO X8, X7
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKLQDQ X2, X9
|
|
|
|
PUNPCKHQDQ X3, X2
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
MOVO X8, X3
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
MOVOU X0, 640(AX)
|
|
|
|
MOVOU X1, 656(AX)
|
|
|
|
MOVOU X2, 672(AX)
|
|
|
|
MOVOU X3, 688(AX)
|
|
|
|
MOVOU X4, 704(AX)
|
|
|
|
MOVOU X5, 720(AX)
|
|
|
|
MOVOU X6, 736(AX)
|
|
|
|
MOVOU X7, 752(AX)
|
|
|
|
MOVOU 768(AX), X0
|
|
|
|
MOVOU 784(AX), X1
|
|
|
|
MOVOU 800(AX), X2
|
|
|
|
MOVOU 816(AX), X3
|
|
|
|
MOVOU 832(AX), X4
|
|
|
|
MOVOU 848(AX), X5
|
|
|
|
MOVOU 864(AX), X6
|
|
|
|
MOVOU 880(AX), X7
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKLQDQ X6, X9
|
|
|
|
PUNPCKHQDQ X7, X6
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
MOVO X8, X7
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKLQDQ X2, X9
|
|
|
|
PUNPCKHQDQ X3, X2
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
MOVO X8, X3
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
MOVOU X0, 768(AX)
|
|
|
|
MOVOU X1, 784(AX)
|
|
|
|
MOVOU X2, 800(AX)
|
|
|
|
MOVOU X3, 816(AX)
|
|
|
|
MOVOU X4, 832(AX)
|
|
|
|
MOVOU X5, 848(AX)
|
|
|
|
MOVOU X6, 864(AX)
|
|
|
|
MOVOU X7, 880(AX)
|
|
|
|
MOVOU 896(AX), X0
|
|
|
|
MOVOU 912(AX), X1
|
|
|
|
MOVOU 928(AX), X2
|
|
|
|
MOVOU 944(AX), X3
|
|
|
|
MOVOU 960(AX), X4
|
|
|
|
MOVOU 976(AX), X5
|
|
|
|
MOVOU 992(AX), X6
|
|
|
|
MOVOU 1008(AX), X7
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKLQDQ X6, X9
|
|
|
|
PUNPCKHQDQ X7, X6
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
MOVO X8, X7
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKLQDQ X2, X9
|
|
|
|
PUNPCKHQDQ X3, X2
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
MOVO X8, X3
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
MOVOU X0, 896(AX)
|
|
|
|
MOVOU X1, 912(AX)
|
|
|
|
MOVOU X2, 928(AX)
|
|
|
|
MOVOU X3, 944(AX)
|
|
|
|
MOVOU X4, 960(AX)
|
|
|
|
MOVOU X5, 976(AX)
|
|
|
|
MOVOU X6, 992(AX)
|
|
|
|
MOVOU X7, 1008(AX)
|
|
|
|
MOVOU (AX), X0
|
|
|
|
MOVOU 128(AX), X1
|
|
|
|
MOVOU 256(AX), X2
|
|
|
|
MOVOU 384(AX), X3
|
|
|
|
MOVOU 512(AX), X4
|
|
|
|
MOVOU 640(AX), X5
|
|
|
|
MOVOU 768(AX), X6
|
|
|
|
MOVOU 896(AX), X7
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKLQDQ X6, X9
|
|
|
|
PUNPCKHQDQ X7, X6
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
MOVO X8, X7
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKLQDQ X2, X9
|
|
|
|
PUNPCKHQDQ X3, X2
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
MOVO X8, X3
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
MOVOU X0, (AX)
|
|
|
|
MOVOU X1, 128(AX)
|
|
|
|
MOVOU X2, 256(AX)
|
|
|
|
MOVOU X3, 384(AX)
|
|
|
|
MOVOU X4, 512(AX)
|
|
|
|
MOVOU X5, 640(AX)
|
|
|
|
MOVOU X6, 768(AX)
|
|
|
|
MOVOU X7, 896(AX)
|
|
|
|
MOVOU 16(AX), X0
|
|
|
|
MOVOU 144(AX), X1
|
|
|
|
MOVOU 272(AX), X2
|
|
|
|
MOVOU 400(AX), X3
|
|
|
|
MOVOU 528(AX), X4
|
|
|
|
MOVOU 656(AX), X5
|
|
|
|
MOVOU 784(AX), X6
|
|
|
|
MOVOU 912(AX), X7
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKLQDQ X6, X9
|
|
|
|
PUNPCKHQDQ X7, X6
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
MOVO X8, X7
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKLQDQ X2, X9
|
|
|
|
PUNPCKHQDQ X3, X2
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
MOVO X8, X3
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
MOVOU X0, 16(AX)
|
|
|
|
MOVOU X1, 144(AX)
|
|
|
|
MOVOU X2, 272(AX)
|
|
|
|
MOVOU X3, 400(AX)
|
|
|
|
MOVOU X4, 528(AX)
|
|
|
|
MOVOU X5, 656(AX)
|
|
|
|
MOVOU X6, 784(AX)
|
|
|
|
MOVOU X7, 912(AX)
|
|
|
|
MOVOU 32(AX), X0
|
|
|
|
MOVOU 160(AX), X1
|
|
|
|
MOVOU 288(AX), X2
|
|
|
|
MOVOU 416(AX), X3
|
|
|
|
MOVOU 544(AX), X4
|
|
|
|
MOVOU 672(AX), X5
|
|
|
|
MOVOU 800(AX), X6
|
|
|
|
MOVOU 928(AX), X7
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKLQDQ X6, X9
|
|
|
|
PUNPCKHQDQ X7, X6
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
MOVO X8, X7
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKLQDQ X2, X9
|
|
|
|
PUNPCKHQDQ X3, X2
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
MOVO X8, X3
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
MOVOU X0, 32(AX)
|
|
|
|
MOVOU X1, 160(AX)
|
|
|
|
MOVOU X2, 288(AX)
|
|
|
|
MOVOU X3, 416(AX)
|
|
|
|
MOVOU X4, 544(AX)
|
|
|
|
MOVOU X5, 672(AX)
|
|
|
|
MOVOU X6, 800(AX)
|
|
|
|
MOVOU X7, 928(AX)
|
|
|
|
MOVOU 48(AX), X0
|
|
|
|
MOVOU 176(AX), X1
|
|
|
|
MOVOU 304(AX), X2
|
|
|
|
MOVOU 432(AX), X3
|
|
|
|
MOVOU 560(AX), X4
|
|
|
|
MOVOU 688(AX), X5
|
|
|
|
MOVOU 816(AX), X6
|
|
|
|
MOVOU 944(AX), X7
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKLQDQ X6, X9
|
|
|
|
PUNPCKHQDQ X7, X6
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
MOVO X8, X7
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKLQDQ X2, X9
|
|
|
|
PUNPCKHQDQ X3, X2
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
MOVO X8, X3
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
MOVOU X0, 48(AX)
|
|
|
|
MOVOU X1, 176(AX)
|
|
|
|
MOVOU X2, 304(AX)
|
|
|
|
MOVOU X3, 432(AX)
|
|
|
|
MOVOU X4, 560(AX)
|
|
|
|
MOVOU X5, 688(AX)
|
|
|
|
MOVOU X6, 816(AX)
|
|
|
|
MOVOU X7, 944(AX)
|
|
|
|
MOVOU 64(AX), X0
|
|
|
|
MOVOU 192(AX), X1
|
|
|
|
MOVOU 320(AX), X2
|
|
|
|
MOVOU 448(AX), X3
|
|
|
|
MOVOU 576(AX), X4
|
|
|
|
MOVOU 704(AX), X5
|
|
|
|
MOVOU 832(AX), X6
|
|
|
|
MOVOU 960(AX), X7
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKLQDQ X6, X9
|
|
|
|
PUNPCKHQDQ X7, X6
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
MOVO X8, X7
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKLQDQ X2, X9
|
|
|
|
PUNPCKHQDQ X3, X2
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
MOVO X8, X3
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
MOVOU X0, 64(AX)
|
|
|
|
MOVOU X1, 192(AX)
|
|
|
|
MOVOU X2, 320(AX)
|
|
|
|
MOVOU X3, 448(AX)
|
|
|
|
MOVOU X4, 576(AX)
|
|
|
|
MOVOU X5, 704(AX)
|
|
|
|
MOVOU X6, 832(AX)
|
|
|
|
MOVOU X7, 960(AX)
|
|
|
|
MOVOU 80(AX), X0
|
|
|
|
MOVOU 208(AX), X1
|
|
|
|
MOVOU 336(AX), X2
|
|
|
|
MOVOU 464(AX), X3
|
|
|
|
MOVOU 592(AX), X4
|
|
|
|
MOVOU 720(AX), X5
|
|
|
|
MOVOU 848(AX), X6
|
|
|
|
MOVOU 976(AX), X7
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKLQDQ X6, X9
|
|
|
|
PUNPCKHQDQ X7, X6
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
MOVO X8, X7
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKLQDQ X2, X9
|
|
|
|
PUNPCKHQDQ X3, X2
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
MOVO X8, X3
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
MOVOU X0, 80(AX)
|
|
|
|
MOVOU X1, 208(AX)
|
|
|
|
MOVOU X2, 336(AX)
|
|
|
|
MOVOU X3, 464(AX)
|
|
|
|
MOVOU X4, 592(AX)
|
|
|
|
MOVOU X5, 720(AX)
|
|
|
|
MOVOU X6, 848(AX)
|
|
|
|
MOVOU X7, 976(AX)
|
|
|
|
MOVOU 96(AX), X0
|
|
|
|
MOVOU 224(AX), X1
|
|
|
|
MOVOU 352(AX), X2
|
|
|
|
MOVOU 480(AX), X3
|
|
|
|
MOVOU 608(AX), X4
|
|
|
|
MOVOU 736(AX), X5
|
|
|
|
MOVOU 864(AX), X6
|
|
|
|
MOVOU 992(AX), X7
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKLQDQ X6, X9
|
|
|
|
PUNPCKHQDQ X7, X6
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
MOVO X8, X7
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKLQDQ X2, X9
|
|
|
|
PUNPCKHQDQ X3, X2
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
MOVO X8, X3
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
MOVOU X0, 96(AX)
|
|
|
|
MOVOU X1, 224(AX)
|
|
|
|
MOVOU X2, 352(AX)
|
|
|
|
MOVOU X3, 480(AX)
|
|
|
|
MOVOU X4, 608(AX)
|
|
|
|
MOVOU X5, 736(AX)
|
|
|
|
MOVOU X6, 864(AX)
|
|
|
|
MOVOU X7, 992(AX)
|
|
|
|
MOVOU 112(AX), X0
|
|
|
|
MOVOU 240(AX), X1
|
|
|
|
MOVOU 368(AX), X2
|
|
|
|
MOVOU 496(AX), X3
|
|
|
|
MOVOU 624(AX), X4
|
|
|
|
MOVOU 752(AX), X5
|
|
|
|
MOVOU 880(AX), X6
|
|
|
|
MOVOU 1008(AX), X7
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKLQDQ X6, X9
|
|
|
|
PUNPCKHQDQ X7, X6
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
MOVO X8, X7
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFD $0xb1, X6, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
PSHUFB X10, X2
|
|
|
|
MOVO X0, X8
|
|
|
|
PMULULQ X2, X8
|
|
|
|
PADDQ X2, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PADDQ X8, X0
|
|
|
|
PXOR X0, X6
|
|
|
|
PSHUFB X11, X6
|
|
|
|
MOVO X4, X8
|
|
|
|
PMULULQ X6, X8
|
|
|
|
PADDQ X6, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PADDQ X8, X4
|
|
|
|
PXOR X4, X2
|
|
|
|
MOVO X2, X8
|
|
|
|
PADDQ X2, X8
|
|
|
|
PSRLQ $0x3f, X2
|
|
|
|
PXOR X8, X2
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFD $0xb1, X7, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
PSHUFB X10, X3
|
|
|
|
MOVO X1, X8
|
|
|
|
PMULULQ X3, X8
|
|
|
|
PADDQ X3, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PADDQ X8, X1
|
|
|
|
PXOR X1, X7
|
|
|
|
PSHUFB X11, X7
|
|
|
|
MOVO X5, X8
|
|
|
|
PMULULQ X7, X8
|
|
|
|
PADDQ X7, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PADDQ X8, X5
|
|
|
|
PXOR X5, X3
|
|
|
|
MOVO X3, X8
|
|
|
|
PADDQ X3, X8
|
|
|
|
PSRLQ $0x3f, X3
|
|
|
|
PXOR X8, X3
|
|
|
|
MOVO X4, X8
|
|
|
|
MOVO X5, X4
|
|
|
|
MOVO X8, X5
|
|
|
|
MOVO X2, X8
|
|
|
|
PUNPCKLQDQ X2, X9
|
|
|
|
PUNPCKHQDQ X3, X2
|
|
|
|
PUNPCKHQDQ X9, X2
|
|
|
|
PUNPCKLQDQ X3, X9
|
|
|
|
MOVO X8, X3
|
|
|
|
MOVO X6, X8
|
|
|
|
PUNPCKHQDQ X9, X3
|
|
|
|
PUNPCKLQDQ X7, X9
|
|
|
|
PUNPCKHQDQ X9, X6
|
|
|
|
PUNPCKLQDQ X8, X9
|
|
|
|
PUNPCKHQDQ X9, X7
|
|
|
|
MOVOU X0, 112(AX)
|
|
|
|
MOVOU X1, 240(AX)
|
|
|
|
MOVOU X2, 368(AX)
|
|
|
|
MOVOU X3, 496(AX)
|
|
|
|
MOVOU X4, 624(AX)
|
|
|
|
MOVOU X5, 752(AX)
|
|
|
|
MOVOU X6, 880(AX)
|
|
|
|
MOVOU X7, 1008(AX)
|
|
|
|
RET
|
2022-07-03 10:08:30 +00:00
|
|
|
|
2024-09-09 08:24:38 +00:00
|
|
|
DATA ·c40<>+0(SB)/8, $0x0201000706050403
|
|
|
|
DATA ·c40<>+8(SB)/8, $0x0a09080f0e0d0c0b
|
|
|
|
GLOBL ·c40<>(SB), RODATA|NOPTR, $16
|
2022-07-03 10:08:30 +00:00
|
|
|
|
2024-09-09 08:24:38 +00:00
|
|
|
DATA ·c48<>+0(SB)/8, $0x0100070605040302
|
|
|
|
DATA ·c48<>+8(SB)/8, $0x09080f0e0d0c0b0a
|
|
|
|
GLOBL ·c48<>(SB), RODATA|NOPTR, $16
|
2022-07-03 10:08:30 +00:00
|
|
|
|
2024-09-09 08:24:38 +00:00
|
|
|
// func mixBlocksSSE2(out *block, a *block, b *block, c *block)
|
|
|
|
// Requires: SSE2
|
|
|
|
TEXT ·mixBlocksSSE2(SB), NOSPLIT, $0-32
|
2022-07-03 10:08:30 +00:00
|
|
|
MOVQ out+0(FP), DX
|
|
|
|
MOVQ a+8(FP), AX
|
|
|
|
MOVQ b+16(FP), BX
|
2024-01-03 10:02:49 +00:00
|
|
|
MOVQ c+24(FP), CX
|
2024-09-09 08:24:38 +00:00
|
|
|
MOVQ $0x00000080, DI
|
2022-07-03 10:08:30 +00:00
|
|
|
|
|
|
|
loop:
|
2024-09-09 08:24:38 +00:00
|
|
|
MOVOU (AX), X0
|
|
|
|
MOVOU (BX), X1
|
|
|
|
MOVOU (CX), X2
|
2022-07-03 10:08:30 +00:00
|
|
|
PXOR X1, X0
|
|
|
|
PXOR X2, X0
|
2024-09-09 08:24:38 +00:00
|
|
|
MOVOU X0, (DX)
|
|
|
|
ADDQ $0x10, AX
|
|
|
|
ADDQ $0x10, BX
|
|
|
|
ADDQ $0x10, CX
|
|
|
|
ADDQ $0x10, DX
|
|
|
|
SUBQ $0x02, DI
|
2022-07-03 10:08:30 +00:00
|
|
|
JA loop
|
|
|
|
RET
|
|
|
|
|
2024-09-09 08:24:38 +00:00
|
|
|
// func xorBlocksSSE2(out *block, a *block, b *block, c *block)
|
|
|
|
// Requires: SSE2
|
|
|
|
TEXT ·xorBlocksSSE2(SB), NOSPLIT, $0-32
|
2022-07-03 10:08:30 +00:00
|
|
|
MOVQ out+0(FP), DX
|
|
|
|
MOVQ a+8(FP), AX
|
|
|
|
MOVQ b+16(FP), BX
|
2024-01-03 10:02:49 +00:00
|
|
|
MOVQ c+24(FP), CX
|
2024-09-09 08:24:38 +00:00
|
|
|
MOVQ $0x00000080, DI
|
2022-07-03 10:08:30 +00:00
|
|
|
|
|
|
|
loop:
|
2024-09-09 08:24:38 +00:00
|
|
|
MOVOU (AX), X0
|
|
|
|
MOVOU (BX), X1
|
|
|
|
MOVOU (CX), X2
|
|
|
|
MOVOU (DX), X3
|
2022-07-03 10:08:30 +00:00
|
|
|
PXOR X1, X0
|
|
|
|
PXOR X2, X0
|
|
|
|
PXOR X3, X0
|
2024-09-09 08:24:38 +00:00
|
|
|
MOVOU X0, (DX)
|
|
|
|
ADDQ $0x10, AX
|
|
|
|
ADDQ $0x10, BX
|
|
|
|
ADDQ $0x10, CX
|
|
|
|
ADDQ $0x10, DX
|
|
|
|
SUBQ $0x02, DI
|
2022-07-03 10:08:30 +00:00
|
|
|
JA loop
|
|
|
|
RET
|