blob: 9c7aa1467744fe99361d080e9712a49a7a694bc1 [file] [log] [blame] [edit]
// Code generated by command: go run sha1block_amd64_asm.go -out ../sha1block_amd64.s -pkg sha1. DO NOT EDIT.
//go:build !purego
#include "textflag.h"
// func blockAMD64(dig *digest, p []byte)
TEXT ·blockAMD64(SB), NOSPLIT, $64-32
MOVQ dig+0(FP), BP
MOVQ p_base+8(FP), SI
MOVQ p_len+16(FP), DX
SHRQ $0x06, DX
SHLQ $0x06, DX
LEAQ (SI)(DX*1), DI
MOVL (BP), AX
MOVL 4(BP), BX
MOVL 8(BP), CX
MOVL 12(BP), DX
MOVL 16(BP), BP
CMPQ SI, DI
JEQ end
loop:
MOVL AX, R11
MOVL BX, R12
MOVL CX, R13
MOVL DX, R14
MOVL BP, R15
MOVL (SI), R10
BSWAPL R10
MOVL R10, (SP)
MOVL DX, R9
XORL CX, R9
ANDL BX, R9
XORL DX, R9
ROLL $0x1e, BX
ADDL R9, BP
MOVL AX, R8
ROLL $0x05, R8
LEAL 1518500249(BP)(R10*1), BP
ADDL R8, BP
MOVL 4(SI), R10
BSWAPL R10
MOVL R10, 4(SP)
MOVL CX, R9
XORL BX, R9
ANDL AX, R9
XORL CX, R9
ROLL $0x1e, AX
ADDL R9, DX
MOVL BP, R8
ROLL $0x05, R8
LEAL 1518500249(DX)(R10*1), DX
ADDL R8, DX
MOVL 8(SI), R10
BSWAPL R10
MOVL R10, 8(SP)
MOVL BX, R9
XORL AX, R9
ANDL BP, R9
XORL BX, R9
ROLL $0x1e, BP
ADDL R9, CX
MOVL DX, R8
ROLL $0x05, R8
LEAL 1518500249(CX)(R10*1), CX
ADDL R8, CX
MOVL 12(SI), R10
BSWAPL R10
MOVL R10, 12(SP)
MOVL AX, R9
XORL BP, R9
ANDL DX, R9
XORL AX, R9
ROLL $0x1e, DX
ADDL R9, BX
MOVL CX, R8
ROLL $0x05, R8
LEAL 1518500249(BX)(R10*1), BX
ADDL R8, BX
MOVL 16(SI), R10
BSWAPL R10
MOVL R10, 16(SP)
MOVL BP, R9
XORL DX, R9
ANDL CX, R9
XORL BP, R9
ROLL $0x1e, CX
ADDL R9, AX
MOVL BX, R8
ROLL $0x05, R8
LEAL 1518500249(AX)(R10*1), AX
ADDL R8, AX
MOVL 20(SI), R10
BSWAPL R10
MOVL R10, 20(SP)
MOVL DX, R9
XORL CX, R9
ANDL BX, R9
XORL DX, R9
ROLL $0x1e, BX
ADDL R9, BP
MOVL AX, R8
ROLL $0x05, R8
LEAL 1518500249(BP)(R10*1), BP
ADDL R8, BP
MOVL 24(SI), R10
BSWAPL R10
MOVL R10, 24(SP)
MOVL CX, R9
XORL BX, R9
ANDL AX, R9
XORL CX, R9
ROLL $0x1e, AX
ADDL R9, DX
MOVL BP, R8
ROLL $0x05, R8
LEAL 1518500249(DX)(R10*1), DX
ADDL R8, DX
MOVL 28(SI), R10
BSWAPL R10
MOVL R10, 28(SP)
MOVL BX, R9
XORL AX, R9
ANDL BP, R9
XORL BX, R9
ROLL $0x1e, BP
ADDL R9, CX
MOVL DX, R8
ROLL $0x05, R8
LEAL 1518500249(CX)(R10*1), CX
ADDL R8, CX
MOVL 32(SI), R10
BSWAPL R10
MOVL R10, 32(SP)
MOVL AX, R9
XORL BP, R9
ANDL DX, R9
XORL AX, R9
ROLL $0x1e, DX
ADDL R9, BX
MOVL CX, R8
ROLL $0x05, R8
LEAL 1518500249(BX)(R10*1), BX
ADDL R8, BX
MOVL 36(SI), R10
BSWAPL R10
MOVL R10, 36(SP)
MOVL BP, R9
XORL DX, R9
ANDL CX, R9
XORL BP, R9
ROLL $0x1e, CX
ADDL R9, AX
MOVL BX, R8
ROLL $0x05, R8
LEAL 1518500249(AX)(R10*1), AX
ADDL R8, AX
MOVL 40(SI), R10
BSWAPL R10
MOVL R10, 40(SP)
MOVL DX, R9
XORL CX, R9
ANDL BX, R9
XORL DX, R9
ROLL $0x1e, BX
ADDL R9, BP
MOVL AX, R8
ROLL $0x05, R8
LEAL 1518500249(BP)(R10*1), BP
ADDL R8, BP
MOVL 44(SI), R10
BSWAPL R10
MOVL R10, 44(SP)
MOVL CX, R9
XORL BX, R9
ANDL AX, R9
XORL CX, R9
ROLL $0x1e, AX
ADDL R9, DX
MOVL BP, R8
ROLL $0x05, R8
LEAL 1518500249(DX)(R10*1), DX
ADDL R8, DX
MOVL 48(SI), R10
BSWAPL R10
MOVL R10, 48(SP)
MOVL BX, R9
XORL AX, R9
ANDL BP, R9
XORL BX, R9
ROLL $0x1e, BP
ADDL R9, CX
MOVL DX, R8
ROLL $0x05, R8
LEAL 1518500249(CX)(R10*1), CX
ADDL R8, CX
MOVL 52(SI), R10
BSWAPL R10
MOVL R10, 52(SP)
MOVL AX, R9
XORL BP, R9
ANDL DX, R9
XORL AX, R9
ROLL $0x1e, DX
ADDL R9, BX
MOVL CX, R8
ROLL $0x05, R8
LEAL 1518500249(BX)(R10*1), BX
ADDL R8, BX
MOVL 56(SI), R10
BSWAPL R10
MOVL R10, 56(SP)
MOVL BP, R9
XORL DX, R9
ANDL CX, R9
XORL BP, R9
ROLL $0x1e, CX
ADDL R9, AX
MOVL BX, R8
ROLL $0x05, R8
LEAL 1518500249(AX)(R10*1), AX
ADDL R8, AX
MOVL 60(SI), R10
BSWAPL R10
MOVL R10, 60(SP)
MOVL DX, R9
XORL CX, R9
ANDL BX, R9
XORL DX, R9
ROLL $0x1e, BX
ADDL R9, BP
MOVL AX, R8
ROLL $0x05, R8
LEAL 1518500249(BP)(R10*1), BP
ADDL R8, BP
MOVL (SP), R10
XORL 52(SP), R10
XORL 32(SP), R10
XORL 8(SP), R10
ROLL $0x01, R10
MOVL R10, (SP)
MOVL CX, R9
XORL BX, R9
ANDL AX, R9
XORL CX, R9
ROLL $0x1e, AX
ADDL R9, DX
MOVL BP, R8
ROLL $0x05, R8
LEAL 1518500249(DX)(R10*1), DX
ADDL R8, DX
MOVL 4(SP), R10
XORL 56(SP), R10
XORL 36(SP), R10
XORL 12(SP), R10
ROLL $0x01, R10
MOVL R10, 4(SP)
MOVL BX, R9
XORL AX, R9
ANDL BP, R9
XORL BX, R9
ROLL $0x1e, BP
ADDL R9, CX
MOVL DX, R8
ROLL $0x05, R8
LEAL 1518500249(CX)(R10*1), CX
ADDL R8, CX
MOVL 8(SP), R10
XORL 60(SP), R10
XORL 40(SP), R10
XORL 16(SP), R10
ROLL $0x01, R10
MOVL R10, 8(SP)
MOVL AX, R9
XORL BP, R9
ANDL DX, R9
XORL AX, R9
ROLL $0x1e, DX
ADDL R9, BX
MOVL CX, R8
ROLL $0x05, R8
LEAL 1518500249(BX)(R10*1), BX
ADDL R8, BX
MOVL 12(SP), R10
XORL (SP), R10
XORL 44(SP), R10
XORL 20(SP), R10
ROLL $0x01, R10
MOVL R10, 12(SP)
MOVL BP, R9
XORL DX, R9
ANDL CX, R9
XORL BP, R9
ROLL $0x1e, CX
ADDL R9, AX
MOVL BX, R8
ROLL $0x05, R8
LEAL 1518500249(AX)(R10*1), AX
ADDL R8, AX
MOVL 16(SP), R10
XORL 4(SP), R10
XORL 48(SP), R10
XORL 24(SP), R10
ROLL $0x01, R10
MOVL R10, 16(SP)
MOVL BX, R9
XORL CX, R9
XORL DX, R9
ROLL $0x1e, BX
ADDL R9, BP
MOVL AX, R8
ROLL $0x05, R8
LEAL 1859775393(BP)(R10*1), BP
ADDL R8, BP
MOVL 20(SP), R10
XORL 8(SP), R10
XORL 52(SP), R10
XORL 28(SP), R10
ROLL $0x01, R10
MOVL R10, 20(SP)
MOVL AX, R9
XORL BX, R9
XORL CX, R9
ROLL $0x1e, AX
ADDL R9, DX
MOVL BP, R8
ROLL $0x05, R8
LEAL 1859775393(DX)(R10*1), DX
ADDL R8, DX
MOVL 24(SP), R10
XORL 12(SP), R10
XORL 56(SP), R10
XORL 32(SP), R10
ROLL $0x01, R10
MOVL R10, 24(SP)
MOVL BP, R9
XORL AX, R9
XORL BX, R9
ROLL $0x1e, BP
ADDL R9, CX
MOVL DX, R8
ROLL $0x05, R8
LEAL 1859775393(CX)(R10*1), CX
ADDL R8, CX
MOVL 28(SP), R10
XORL 16(SP), R10
XORL 60(SP), R10
XORL 36(SP), R10
ROLL $0x01, R10
MOVL R10, 28(SP)
MOVL DX, R9
XORL BP, R9
XORL AX, R9
ROLL $0x1e, DX
ADDL R9, BX
MOVL CX, R8
ROLL $0x05, R8
LEAL 1859775393(BX)(R10*1), BX
ADDL R8, BX
MOVL 32(SP), R10
XORL 20(SP), R10
XORL (SP), R10
XORL 40(SP), R10
ROLL $0x01, R10
MOVL R10, 32(SP)
MOVL CX, R9
XORL DX, R9
XORL BP, R9
ROLL $0x1e, CX
ADDL R9, AX
MOVL BX, R8
ROLL $0x05, R8
LEAL 1859775393(AX)(R10*1), AX
ADDL R8, AX
MOVL 36(SP), R10
XORL 24(SP), R10
XORL 4(SP), R10
XORL 44(SP), R10
ROLL $0x01, R10
MOVL R10, 36(SP)
MOVL BX, R9
XORL CX, R9
XORL DX, R9
ROLL $0x1e, BX
ADDL R9, BP
MOVL AX, R8
ROLL $0x05, R8
LEAL 1859775393(BP)(R10*1), BP
ADDL R8, BP
MOVL 40(SP), R10
XORL 28(SP), R10
XORL 8(SP), R10
XORL 48(SP), R10
ROLL $0x01, R10
MOVL R10, 40(SP)
MOVL AX, R9
XORL BX, R9
XORL CX, R9
ROLL $0x1e, AX
ADDL R9, DX
MOVL BP, R8
ROLL $0x05, R8
LEAL 1859775393(DX)(R10*1), DX
ADDL R8, DX
MOVL 44(SP), R10
XORL 32(SP), R10
XORL 12(SP), R10
XORL 52(SP), R10
ROLL $0x01, R10
MOVL R10, 44(SP)
MOVL BP, R9
XORL AX, R9
XORL BX, R9
ROLL $0x1e, BP
ADDL R9, CX
MOVL DX, R8
ROLL $0x05, R8
LEAL 1859775393(CX)(R10*1), CX
ADDL R8, CX
MOVL 48(SP), R10
XORL 36(SP), R10
XORL 16(SP), R10
XORL 56(SP), R10
ROLL $0x01, R10
MOVL R10, 48(SP)
MOVL DX, R9
XORL BP, R9
XORL AX, R9
ROLL $0x1e, DX
ADDL R9, BX
MOVL CX, R8
ROLL $0x05, R8
LEAL 1859775393(BX)(R10*1), BX
ADDL R8, BX
MOVL 52(SP), R10
XORL 40(SP), R10
XORL 20(SP), R10
XORL 60(SP), R10
ROLL $0x01, R10
MOVL R10, 52(SP)
MOVL CX, R9
XORL DX, R9
XORL BP, R9
ROLL $0x1e, CX
ADDL R9, AX
MOVL BX, R8
ROLL $0x05, R8
LEAL 1859775393(AX)(R10*1), AX
ADDL R8, AX
MOVL 56(SP), R10
XORL 44(SP), R10
XORL 24(SP), R10
XORL (SP), R10
ROLL $0x01, R10
MOVL R10, 56(SP)
MOVL BX, R9
XORL CX, R9
XORL DX, R9
ROLL $0x1e, BX
ADDL R9, BP
MOVL AX, R8
ROLL $0x05, R8
LEAL 1859775393(BP)(R10*1), BP
ADDL R8, BP
MOVL 60(SP), R10
XORL 48(SP), R10
XORL 28(SP), R10
XORL 4(SP), R10
ROLL $0x01, R10
MOVL R10, 60(SP)
MOVL AX, R9
XORL BX, R9
XORL CX, R9
ROLL $0x1e, AX
ADDL R9, DX
MOVL BP, R8
ROLL $0x05, R8
LEAL 1859775393(DX)(R10*1), DX
ADDL R8, DX
MOVL (SP), R10
XORL 52(SP), R10
XORL 32(SP), R10
XORL 8(SP), R10
ROLL $0x01, R10
MOVL R10, (SP)
MOVL BP, R9
XORL AX, R9
XORL BX, R9
ROLL $0x1e, BP
ADDL R9, CX
MOVL DX, R8
ROLL $0x05, R8
LEAL 1859775393(CX)(R10*1), CX
ADDL R8, CX
MOVL 4(SP), R10
XORL 56(SP), R10
XORL 36(SP), R10
XORL 12(SP), R10
ROLL $0x01, R10
MOVL R10, 4(SP)
MOVL DX, R9
XORL BP, R9
XORL AX, R9
ROLL $0x1e, DX
ADDL R9, BX
MOVL CX, R8
ROLL $0x05, R8
LEAL 1859775393(BX)(R10*1), BX
ADDL R8, BX
MOVL 8(SP), R10
XORL 60(SP), R10
XORL 40(SP), R10
XORL 16(SP), R10
ROLL $0x01, R10
MOVL R10, 8(SP)
MOVL CX, R9
XORL DX, R9
XORL BP, R9
ROLL $0x1e, CX
ADDL R9, AX
MOVL BX, R8
ROLL $0x05, R8
LEAL 1859775393(AX)(R10*1), AX
ADDL R8, AX
MOVL 12(SP), R10
XORL (SP), R10
XORL 44(SP), R10
XORL 20(SP), R10
ROLL $0x01, R10
MOVL R10, 12(SP)
MOVL BX, R9
XORL CX, R9
XORL DX, R9
ROLL $0x1e, BX
ADDL R9, BP
MOVL AX, R8
ROLL $0x05, R8
LEAL 1859775393(BP)(R10*1), BP
ADDL R8, BP
MOVL 16(SP), R10
XORL 4(SP), R10
XORL 48(SP), R10
XORL 24(SP), R10
ROLL $0x01, R10
MOVL R10, 16(SP)
MOVL AX, R9
XORL BX, R9
XORL CX, R9
ROLL $0x1e, AX
ADDL R9, DX
MOVL BP, R8
ROLL $0x05, R8
LEAL 1859775393(DX)(R10*1), DX
ADDL R8, DX
MOVL 20(SP), R10
XORL 8(SP), R10
XORL 52(SP), R10
XORL 28(SP), R10
ROLL $0x01, R10
MOVL R10, 20(SP)
MOVL BP, R9
XORL AX, R9
XORL BX, R9
ROLL $0x1e, BP
ADDL R9, CX
MOVL DX, R8
ROLL $0x05, R8
LEAL 1859775393(CX)(R10*1), CX
ADDL R8, CX
MOVL 24(SP), R10
XORL 12(SP), R10
XORL 56(SP), R10
XORL 32(SP), R10
ROLL $0x01, R10
MOVL R10, 24(SP)
MOVL DX, R9
XORL BP, R9
XORL AX, R9
ROLL $0x1e, DX
ADDL R9, BX
MOVL CX, R8
ROLL $0x05, R8
LEAL 1859775393(BX)(R10*1), BX
ADDL R8, BX
MOVL 28(SP), R10
XORL 16(SP), R10
XORL 60(SP), R10
XORL 36(SP), R10
ROLL $0x01, R10
MOVL R10, 28(SP)
MOVL CX, R9
XORL DX, R9
XORL BP, R9
ROLL $0x1e, CX
ADDL R9, AX
MOVL BX, R8
ROLL $0x05, R8
LEAL 1859775393(AX)(R10*1), AX
ADDL R8, AX
MOVL 32(SP), R10
XORL 20(SP), R10
XORL (SP), R10
XORL 40(SP), R10
ROLL $0x01, R10
MOVL R10, 32(SP)
MOVL BX, R8
ORL CX, R8
ANDL DX, R8
MOVL BX, R9
ANDL CX, R9
ORL R8, R9
ROLL $0x1e, BX
ADDL R9, BP
MOVL AX, R8
ROLL $0x05, R8
LEAL 2400959708(BP)(R10*1), BP
ADDL R8, BP
MOVL 36(SP), R10
XORL 24(SP), R10
XORL 4(SP), R10
XORL 44(SP), R10
ROLL $0x01, R10
MOVL R10, 36(SP)
MOVL AX, R8
ORL BX, R8
ANDL CX, R8
MOVL AX, R9
ANDL BX, R9
ORL R8, R9
ROLL $0x1e, AX
ADDL R9, DX
MOVL BP, R8
ROLL $0x05, R8
LEAL 2400959708(DX)(R10*1), DX
ADDL R8, DX
MOVL 40(SP), R10
XORL 28(SP), R10
XORL 8(SP), R10
XORL 48(SP), R10
ROLL $0x01, R10
MOVL R10, 40(SP)
MOVL BP, R8
ORL AX, R8
ANDL BX, R8
MOVL BP, R9
ANDL AX, R9
ORL R8, R9
ROLL $0x1e, BP
ADDL R9, CX
MOVL DX, R8
ROLL $0x05, R8
LEAL 2400959708(CX)(R10*1), CX
ADDL R8, CX
MOVL 44(SP), R10
XORL 32(SP), R10
XORL 12(SP), R10
XORL 52(SP), R10
ROLL $0x01, R10
MOVL R10, 44(SP)
MOVL DX, R8
ORL BP, R8
ANDL AX, R8
MOVL DX, R9
ANDL BP, R9
ORL R8, R9
ROLL $0x1e, DX
ADDL R9, BX
MOVL CX, R8
ROLL $0x05, R8
LEAL 2400959708(BX)(R10*1), BX
ADDL R8, BX
MOVL 48(SP), R10
XORL 36(SP), R10
XORL 16(SP), R10
XORL 56(SP), R10
ROLL $0x01, R10
MOVL R10, 48(SP)
MOVL CX, R8
ORL DX, R8
ANDL BP, R8
MOVL CX, R9
ANDL DX, R9
ORL R8, R9
ROLL $0x1e, CX
ADDL R9, AX
MOVL BX, R8
ROLL $0x05, R8
LEAL 2400959708(AX)(R10*1), AX
ADDL R8, AX
MOVL 52(SP), R10
XORL 40(SP), R10
XORL 20(SP), R10
XORL 60(SP), R10
ROLL $0x01, R10
MOVL R10, 52(SP)
MOVL BX, R8
ORL CX, R8
ANDL DX, R8
MOVL BX, R9
ANDL CX, R9
ORL R8, R9
ROLL $0x1e, BX
ADDL R9, BP
MOVL AX, R8
ROLL $0x05, R8
LEAL 2400959708(BP)(R10*1), BP
ADDL R8, BP
MOVL 56(SP), R10
XORL 44(SP), R10
XORL 24(SP), R10
XORL (SP), R10
ROLL $0x01, R10
MOVL R10, 56(SP)
MOVL AX, R8
ORL BX, R8
ANDL CX, R8
MOVL AX, R9
ANDL BX, R9
ORL R8, R9
ROLL $0x1e, AX
ADDL R9, DX
MOVL BP, R8
ROLL $0x05, R8
LEAL 2400959708(DX)(R10*1), DX
ADDL R8, DX
MOVL 60(SP), R10
XORL 48(SP), R10
XORL 28(SP), R10
XORL 4(SP), R10
ROLL $0x01, R10
MOVL R10, 60(SP)
MOVL BP, R8
ORL AX, R8
ANDL BX, R8
MOVL BP, R9
ANDL AX, R9
ORL R8, R9
ROLL $0x1e, BP
ADDL R9, CX
MOVL DX, R8
ROLL $0x05, R8
LEAL 2400959708(CX)(R10*1), CX
ADDL R8, CX
MOVL (SP), R10
XORL 52(SP), R10
XORL 32(SP), R10
XORL 8(SP), R10
ROLL $0x01, R10
MOVL R10, (SP)
MOVL DX, R8
ORL BP, R8
ANDL AX, R8
MOVL DX, R9
ANDL BP, R9
ORL R8, R9
ROLL $0x1e, DX
ADDL R9, BX
MOVL CX, R8
ROLL $0x05, R8
LEAL 2400959708(BX)(R10*1), BX
ADDL R8, BX
MOVL 4(SP), R10
XORL 56(SP), R10
XORL 36(SP), R10
XORL 12(SP), R10
ROLL $0x01, R10
MOVL R10, 4(SP)
MOVL CX, R8
ORL DX, R8
ANDL BP, R8
MOVL CX, R9
ANDL DX, R9
ORL R8, R9
ROLL $0x1e, CX
ADDL R9, AX
MOVL BX, R8
ROLL $0x05, R8
LEAL 2400959708(AX)(R10*1), AX
ADDL R8, AX
MOVL 8(SP), R10
XORL 60(SP), R10
XORL 40(SP), R10
XORL 16(SP), R10
ROLL $0x01, R10
MOVL R10, 8(SP)
MOVL BX, R8
ORL CX, R8
ANDL DX, R8
MOVL BX, R9
ANDL CX, R9
ORL R8, R9
ROLL $0x1e, BX
ADDL R9, BP
MOVL AX, R8
ROLL $0x05, R8
LEAL 2400959708(BP)(R10*1), BP
ADDL R8, BP
MOVL 12(SP), R10
XORL (SP), R10
XORL 44(SP), R10
XORL 20(SP), R10
ROLL $0x01, R10
MOVL R10, 12(SP)
MOVL AX, R8
ORL BX, R8
ANDL CX, R8
MOVL AX, R9
ANDL BX, R9
ORL R8, R9
ROLL $0x1e, AX
ADDL R9, DX
MOVL BP, R8
ROLL $0x05, R8
LEAL 2400959708(DX)(R10*1), DX
ADDL R8, DX
MOVL 16(SP), R10
XORL 4(SP), R10
XORL 48(SP), R10
XORL 24(SP), R10
ROLL $0x01, R10
MOVL R10, 16(SP)
MOVL BP, R8
ORL AX, R8
ANDL BX, R8
MOVL BP, R9
ANDL AX, R9
ORL R8, R9
ROLL $0x1e, BP
ADDL R9, CX
MOVL DX, R8
ROLL $0x05, R8
LEAL 2400959708(CX)(R10*1), CX
ADDL R8, CX
MOVL 20(SP), R10
XORL 8(SP), R10
XORL 52(SP), R10
XORL 28(SP), R10
ROLL $0x01, R10
MOVL R10, 20(SP)
MOVL DX, R8
ORL BP, R8
ANDL AX, R8
MOVL DX, R9
ANDL BP, R9
ORL R8, R9
ROLL $0x1e, DX
ADDL R9, BX
MOVL CX, R8
ROLL $0x05, R8
LEAL 2400959708(BX)(R10*1), BX
ADDL R8, BX
MOVL 24(SP), R10
XORL 12(SP), R10
XORL 56(SP), R10
XORL 32(SP), R10
ROLL $0x01, R10
MOVL R10, 24(SP)
MOVL CX, R8
ORL DX, R8
ANDL BP, R8
MOVL CX, R9
ANDL DX, R9
ORL R8, R9
ROLL $0x1e, CX
ADDL R9, AX
MOVL BX, R8
ROLL $0x05, R8
LEAL 2400959708(AX)(R10*1), AX
ADDL R8, AX
MOVL 28(SP), R10
XORL 16(SP), R10
XORL 60(SP), R10
XORL 36(SP), R10
ROLL $0x01, R10
MOVL R10, 28(SP)
MOVL BX, R8
ORL CX, R8
ANDL DX, R8
MOVL BX, R9
ANDL CX, R9
ORL R8, R9
ROLL $0x1e, BX
ADDL R9, BP
MOVL AX, R8
ROLL $0x05, R8
LEAL 2400959708(BP)(R10*1), BP
ADDL R8, BP
MOVL 32(SP), R10
XORL 20(SP), R10
XORL (SP), R10
XORL 40(SP), R10
ROLL $0x01, R10
MOVL R10, 32(SP)
MOVL AX, R8
ORL BX, R8
ANDL CX, R8
MOVL AX, R9
ANDL BX, R9
ORL R8, R9
ROLL $0x1e, AX
ADDL R9, DX
MOVL BP, R8
ROLL $0x05, R8
LEAL 2400959708(DX)(R10*1), DX
ADDL R8, DX
MOVL 36(SP), R10
XORL 24(SP), R10
XORL 4(SP), R10
XORL 44(SP), R10
ROLL $0x01, R10
MOVL R10, 36(SP)
MOVL BP, R8
ORL AX, R8
ANDL BX, R8
MOVL BP, R9
ANDL AX, R9
ORL R8, R9
ROLL $0x1e, BP
ADDL R9, CX
MOVL DX, R8
ROLL $0x05, R8
LEAL 2400959708(CX)(R10*1), CX
ADDL R8, CX
MOVL 40(SP), R10
XORL 28(SP), R10
XORL 8(SP), R10
XORL 48(SP), R10
ROLL $0x01, R10
MOVL R10, 40(SP)
MOVL DX, R8
ORL BP, R8
ANDL AX, R8
MOVL DX, R9
ANDL BP, R9
ORL R8, R9
ROLL $0x1e, DX
ADDL R9, BX
MOVL CX, R8
ROLL $0x05, R8
LEAL 2400959708(BX)(R10*1), BX
ADDL R8, BX
MOVL 44(SP), R10
XORL 32(SP), R10
XORL 12(SP), R10
XORL 52(SP), R10
ROLL $0x01, R10
MOVL R10, 44(SP)
MOVL CX, R8
ORL DX, R8
ANDL BP, R8
MOVL CX, R9
ANDL DX, R9
ORL R8, R9
ROLL $0x1e, CX
ADDL R9, AX
MOVL BX, R8
ROLL $0x05, R8
LEAL 2400959708(AX)(R10*1), AX
ADDL R8, AX
MOVL 48(SP), R10
XORL 36(SP), R10
XORL 16(SP), R10
XORL 56(SP), R10
ROLL $0x01, R10
MOVL R10, 48(SP)
MOVL BX, R9
XORL CX, R9
XORL DX, R9
ROLL $0x1e, BX
ADDL R9, BP
MOVL AX, R8
ROLL $0x05, R8
LEAL 3395469782(BP)(R10*1), BP
ADDL R8, BP
MOVL 52(SP), R10
XORL 40(SP), R10
XORL 20(SP), R10
XORL 60(SP), R10
ROLL $0x01, R10
MOVL R10, 52(SP)
MOVL AX, R9
XORL BX, R9
XORL CX, R9
ROLL $0x1e, AX
ADDL R9, DX
MOVL BP, R8
ROLL $0x05, R8
LEAL 3395469782(DX)(R10*1), DX
ADDL R8, DX
MOVL 56(SP), R10
XORL 44(SP), R10
XORL 24(SP), R10
XORL (SP), R10
ROLL $0x01, R10
MOVL R10, 56(SP)
MOVL BP, R9
XORL AX, R9
XORL BX, R9
ROLL $0x1e, BP
ADDL R9, CX
MOVL DX, R8
ROLL $0x05, R8
LEAL 3395469782(CX)(R10*1), CX
ADDL R8, CX
MOVL 60(SP), R10
XORL 48(SP), R10
XORL 28(SP), R10
XORL 4(SP), R10
ROLL $0x01, R10
MOVL R10, 60(SP)
MOVL DX, R9
XORL BP, R9
XORL AX, R9
ROLL $0x1e, DX
ADDL R9, BX
MOVL CX, R8
ROLL $0x05, R8
LEAL 3395469782(BX)(R10*1), BX
ADDL R8, BX
MOVL (SP), R10
XORL 52(SP), R10
XORL 32(SP), R10
XORL 8(SP), R10
ROLL $0x01, R10
MOVL R10, (SP)
MOVL CX, R9
XORL DX, R9
XORL BP, R9
ROLL $0x1e, CX
ADDL R9, AX
MOVL BX, R8
ROLL $0x05, R8
LEAL 3395469782(AX)(R10*1), AX
ADDL R8, AX
MOVL 4(SP), R10
XORL 56(SP), R10
XORL 36(SP), R10
XORL 12(SP), R10
ROLL $0x01, R10
MOVL R10, 4(SP)
MOVL BX, R9
XORL CX, R9
XORL DX, R9
ROLL $0x1e, BX
ADDL R9, BP
MOVL AX, R8
ROLL $0x05, R8
LEAL 3395469782(BP)(R10*1), BP
ADDL R8, BP
MOVL 8(SP), R10
XORL 60(SP), R10
XORL 40(SP), R10
XORL 16(SP), R10
ROLL $0x01, R10
MOVL R10, 8(SP)
MOVL AX, R9
XORL BX, R9
XORL CX, R9
ROLL $0x1e, AX
ADDL R9, DX
MOVL BP, R8
ROLL $0x05, R8
LEAL 3395469782(DX)(R10*1), DX
ADDL R8, DX
MOVL 12(SP), R10
XORL (SP), R10
XORL 44(SP), R10
XORL 20(SP), R10
ROLL $0x01, R10
MOVL R10, 12(SP)
MOVL BP, R9
XORL AX, R9
XORL BX, R9
ROLL $0x1e, BP
ADDL R9, CX
MOVL DX, R8
ROLL $0x05, R8
LEAL 3395469782(CX)(R10*1), CX
ADDL R8, CX
MOVL 16(SP), R10
XORL 4(SP), R10
XORL 48(SP), R10
XORL 24(SP), R10
ROLL $0x01, R10
MOVL R10, 16(SP)
MOVL DX, R9
XORL BP, R9
XORL AX, R9
ROLL $0x1e, DX
ADDL R9, BX
MOVL CX, R8
ROLL $0x05, R8
LEAL 3395469782(BX)(R10*1), BX
ADDL R8, BX
MOVL 20(SP), R10
XORL 8(SP), R10
XORL 52(SP), R10
XORL 28(SP), R10
ROLL $0x01, R10
MOVL R10, 20(SP)
MOVL CX, R9
XORL DX, R9
XORL BP, R9
ROLL $0x1e, CX
ADDL R9, AX
MOVL BX, R8
ROLL $0x05, R8
LEAL 3395469782(AX)(R10*1), AX
ADDL R8, AX
MOVL 24(SP), R10
XORL 12(SP), R10
XORL 56(SP), R10
XORL 32(SP), R10
ROLL $0x01, R10
MOVL R10, 24(SP)
MOVL BX, R9
XORL CX, R9
XORL DX, R9
ROLL $0x1e, BX
ADDL R9, BP
MOVL AX, R8
ROLL $0x05, R8
LEAL 3395469782(BP)(R10*1), BP
ADDL R8, BP
MOVL 28(SP), R10
XORL 16(SP), R10
XORL 60(SP), R10
XORL 36(SP), R10
ROLL $0x01, R10
MOVL R10, 28(SP)
MOVL AX, R9
XORL BX, R9
XORL CX, R9
ROLL $0x1e, AX
ADDL R9, DX
MOVL BP, R8
ROLL $0x05, R8
LEAL 3395469782(DX)(R10*1), DX
ADDL R8, DX
MOVL 32(SP), R10
XORL 20(SP), R10
XORL (SP), R10
XORL 40(SP), R10
ROLL $0x01, R10
MOVL R10, 32(SP)
MOVL BP, R9
XORL AX, R9
XORL BX, R9
ROLL $0x1e, BP
ADDL R9, CX
MOVL DX, R8
ROLL $0x05, R8
LEAL 3395469782(CX)(R10*1), CX
ADDL R8, CX
MOVL 36(SP), R10
XORL 24(SP), R10
XORL 4(SP), R10
XORL 44(SP), R10
ROLL $0x01, R10
MOVL R10, 36(SP)
MOVL DX, R9
XORL BP, R9
XORL AX, R9
ROLL $0x1e, DX
ADDL R9, BX
MOVL CX, R8
ROLL $0x05, R8
LEAL 3395469782(BX)(R10*1), BX
ADDL R8, BX
MOVL 40(SP), R10
XORL 28(SP), R10
XORL 8(SP), R10
XORL 48(SP), R10
ROLL $0x01, R10
MOVL R10, 40(SP)
MOVL CX, R9
XORL DX, R9
XORL BP, R9
ROLL $0x1e, CX
ADDL R9, AX
MOVL BX, R8
ROLL $0x05, R8
LEAL 3395469782(AX)(R10*1), AX
ADDL R8, AX
MOVL 44(SP), R10
XORL 32(SP), R10
XORL 12(SP), R10
XORL 52(SP), R10
ROLL $0x01, R10
MOVL R10, 44(SP)
MOVL BX, R9
XORL CX, R9
XORL DX, R9
ROLL $0x1e, BX
ADDL R9, BP
MOVL AX, R8
ROLL $0x05, R8
LEAL 3395469782(BP)(R10*1), BP
ADDL R8, BP
MOVL 48(SP), R10
XORL 36(SP), R10
XORL 16(SP), R10
XORL 56(SP), R10
ROLL $0x01, R10
MOVL R10, 48(SP)
MOVL AX, R9
XORL BX, R9
XORL CX, R9
ROLL $0x1e, AX
ADDL R9, DX
MOVL BP, R8
ROLL $0x05, R8
LEAL 3395469782(DX)(R10*1), DX
ADDL R8, DX
MOVL 52(SP), R10
XORL 40(SP), R10
XORL 20(SP), R10
XORL 60(SP), R10
ROLL $0x01, R10
MOVL R10, 52(SP)
MOVL BP, R9
XORL AX, R9
XORL BX, R9
ROLL $0x1e, BP
ADDL R9, CX
MOVL DX, R8
ROLL $0x05, R8
LEAL 3395469782(CX)(R10*1), CX
ADDL R8, CX
MOVL 56(SP), R10
XORL 44(SP), R10
XORL 24(SP), R10
XORL (SP), R10
ROLL $0x01, R10
MOVL R10, 56(SP)
MOVL DX, R9
XORL BP, R9
XORL AX, R9
ROLL $0x1e, DX
ADDL R9, BX
MOVL CX, R8
ROLL $0x05, R8
LEAL 3395469782(BX)(R10*1), BX
ADDL R8, BX
MOVL 60(SP), R10
XORL 48(SP), R10
XORL 28(SP), R10
XORL 4(SP), R10
ROLL $0x01, R10
MOVL R10, 60(SP)
MOVL CX, R9
XORL DX, R9
XORL BP, R9
ROLL $0x1e, CX
ADDL R9, AX
MOVL BX, R8
ROLL $0x05, R8
LEAL 3395469782(AX)(R10*1), AX
ADDL R8, AX
ADDL R11, AX
ADDL R12, BX
ADDL R13, CX
ADDL R14, DX
ADDL R15, BP
ADDQ $0x40, SI
CMPQ SI, DI
JB loop
end:
MOVQ dig+0(FP), DI
MOVL AX, (DI)
MOVL BX, 4(DI)
MOVL CX, 8(DI)
MOVL DX, 12(DI)
MOVL BP, 16(DI)
RET
// func blockAVX2(dig *digest, p []byte)
// Requires: AVX, AVX2, BMI, BMI2, CMOV
TEXT ·blockAVX2(SB), $1408-32
MOVQ dig+0(FP), DI
MOVQ p_base+8(FP), SI
MOVQ p_len+16(FP), DX
SHRQ $0x06, DX
SHLQ $0x06, DX
LEAQ K_XMM_AR<>+0(SB), R8
MOVQ DI, R9
MOVQ SI, R10
LEAQ 64(SI), R13
ADDQ SI, DX
ADDQ $0x40, DX
MOVQ DX, R11
CMPQ R13, R11
CMOVQCC R8, R13
VMOVDQU BSWAP_SHUFB_CTL<>+0(SB), Y10
MOVL (R9), CX
MOVL 4(R9), SI
MOVL 8(R9), DI
MOVL 12(R9), AX
MOVL 16(R9), DX
MOVQ SP, R14
LEAQ 672(SP), R15
VMOVDQU (R10), X0
VINSERTI128 $0x01, (R13), Y0, Y0
VPSHUFB Y10, Y0, Y15
VPADDD (R8), Y15, Y0
VMOVDQU Y0, (R14)
VMOVDQU 16(R10), X0
VINSERTI128 $0x01, 16(R13), Y0, Y0
VPSHUFB Y10, Y0, Y14
VPADDD (R8), Y14, Y0
VMOVDQU Y0, 32(R14)
VMOVDQU 32(R10), X0
VINSERTI128 $0x01, 32(R13), Y0, Y0
VPSHUFB Y10, Y0, Y13
VPADDD (R8), Y13, Y0
VMOVDQU Y0, 64(R14)
VMOVDQU 48(R10), X0
VINSERTI128 $0x01, 48(R13), Y0, Y0
VPSHUFB Y10, Y0, Y12
VPADDD (R8), Y12, Y0
VMOVDQU Y0, 96(R14)
VPALIGNR $0x08, Y15, Y14, Y8
VPSRLDQ $0x04, Y12, Y0
VPXOR Y13, Y8, Y8
VPXOR Y15, Y0, Y0
VPXOR Y0, Y8, Y8
VPSLLDQ $0x0c, Y8, Y9
VPSLLD $0x01, Y8, Y0
VPSRLD $0x1f, Y8, Y8
VPOR Y8, Y0, Y0
VPSLLD $0x02, Y9, Y8
VPSRLD $0x1e, Y9, Y9
VPXOR Y8, Y0, Y0
VPXOR Y9, Y0, Y8
VPADDD (R8), Y8, Y0
VMOVDQU Y0, 128(R14)
VPALIGNR $0x08, Y14, Y13, Y7
VPSRLDQ $0x04, Y8, Y0
VPXOR Y12, Y7, Y7
VPXOR Y14, Y0, Y0
VPXOR Y0, Y7, Y7
VPSLLDQ $0x0c, Y7, Y9
VPSLLD $0x01, Y7, Y0
VPSRLD $0x1f, Y7, Y7
VPOR Y7, Y0, Y0
VPSLLD $0x02, Y9, Y7
VPSRLD $0x1e, Y9, Y9
VPXOR Y7, Y0, Y0
VPXOR Y9, Y0, Y7
VPADDD 32(R8), Y7, Y0
VMOVDQU Y0, 160(R14)
VPALIGNR $0x08, Y13, Y12, Y5
VPSRLDQ $0x04, Y7, Y0
VPXOR Y8, Y5, Y5
VPXOR Y13, Y0, Y0
VPXOR Y0, Y5, Y5
VPSLLDQ $0x0c, Y5, Y9
VPSLLD $0x01, Y5, Y0
VPSRLD $0x1f, Y5, Y5
VPOR Y5, Y0, Y0
VPSLLD $0x02, Y9, Y5
VPSRLD $0x1e, Y9, Y9
VPXOR Y5, Y0, Y0
VPXOR Y9, Y0, Y5
VPADDD 32(R8), Y5, Y0
VMOVDQU Y0, 192(R14)
VPALIGNR $0x08, Y12, Y8, Y3
VPSRLDQ $0x04, Y5, Y0
VPXOR Y7, Y3, Y3
VPXOR Y12, Y0, Y0
VPXOR Y0, Y3, Y3
VPSLLDQ $0x0c, Y3, Y9
VPSLLD $0x01, Y3, Y0
VPSRLD $0x1f, Y3, Y3
VPOR Y3, Y0, Y0
VPSLLD $0x02, Y9, Y3
VPSRLD $0x1e, Y9, Y9
VPXOR Y3, Y0, Y0
VPXOR Y9, Y0, Y3
VPADDD 32(R8), Y3, Y0
VMOVDQU Y0, 224(R14)
VPALIGNR $0x08, Y5, Y3, Y0
VPXOR Y14, Y15, Y15
VPXOR Y8, Y0, Y0
VPXOR Y0, Y15, Y15
VPSLLD $0x02, Y15, Y0
VPSRLD $0x1e, Y15, Y15
VPOR Y15, Y0, Y15
VPADDD 32(R8), Y15, Y0
VMOVDQU Y0, 256(R14)
VPALIGNR $0x08, Y3, Y15, Y0
VPXOR Y13, Y14, Y14
VPXOR Y7, Y0, Y0
VPXOR Y0, Y14, Y14
VPSLLD $0x02, Y14, Y0
VPSRLD $0x1e, Y14, Y14
VPOR Y14, Y0, Y14
VPADDD 32(R8), Y14, Y0
VMOVDQU Y0, 288(R14)
VPALIGNR $0x08, Y15, Y14, Y0
VPXOR Y12, Y13, Y13
VPXOR Y5, Y0, Y0
VPXOR Y0, Y13, Y13
VPSLLD $0x02, Y13, Y0
VPSRLD $0x1e, Y13, Y13
VPOR Y13, Y0, Y13
VPADDD 64(R8), Y13, Y0
VMOVDQU Y0, 320(R14)
VPALIGNR $0x08, Y14, Y13, Y0
VPXOR Y8, Y12, Y12
VPXOR Y3, Y0, Y0
VPXOR Y0, Y12, Y12
VPSLLD $0x02, Y12, Y0
VPSRLD $0x1e, Y12, Y12
VPOR Y12, Y0, Y12
VPADDD 64(R8), Y12, Y0
VMOVDQU Y0, 352(R14)
VPALIGNR $0x08, Y13, Y12, Y0
VPXOR Y7, Y8, Y8
VPXOR Y15, Y0, Y0
VPXOR Y0, Y8, Y8
VPSLLD $0x02, Y8, Y0
VPSRLD $0x1e, Y8, Y8
VPOR Y8, Y0, Y8
VPADDD 64(R8), Y8, Y0
VMOVDQU Y0, 384(R14)
VPALIGNR $0x08, Y12, Y8, Y0
VPXOR Y5, Y7, Y7
VPXOR Y14, Y0, Y0
VPXOR Y0, Y7, Y7
VPSLLD $0x02, Y7, Y0
VPSRLD $0x1e, Y7, Y7
VPOR Y7, Y0, Y7
VPADDD 64(R8), Y7, Y0
VMOVDQU Y0, 416(R14)
VPALIGNR $0x08, Y8, Y7, Y0
VPXOR Y3, Y5, Y5
VPXOR Y13, Y0, Y0
VPXOR Y0, Y5, Y5
VPSLLD $0x02, Y5, Y0
VPSRLD $0x1e, Y5, Y5
VPOR Y5, Y0, Y5
VPADDD 64(R8), Y5, Y0
VMOVDQU Y0, 448(R14)
VPALIGNR $0x08, Y7, Y5, Y0
VPXOR Y15, Y3, Y3
VPXOR Y12, Y0, Y0
VPXOR Y0, Y3, Y3
VPSLLD $0x02, Y3, Y0
VPSRLD $0x1e, Y3, Y3
VPOR Y3, Y0, Y3
VPADDD 96(R8), Y3, Y0
VMOVDQU Y0, 480(R14)
VPALIGNR $0x08, Y5, Y3, Y0
VPXOR Y14, Y15, Y15
VPXOR Y8, Y0, Y0
VPXOR Y0, Y15, Y15
VPSLLD $0x02, Y15, Y0
VPSRLD $0x1e, Y15, Y15
VPOR Y15, Y0, Y15
VPADDD 96(R8), Y15, Y0
VMOVDQU Y0, 512(R14)
VPALIGNR $0x08, Y3, Y15, Y0
VPXOR Y13, Y14, Y14
VPXOR Y7, Y0, Y0
VPXOR Y0, Y14, Y14
VPSLLD $0x02, Y14, Y0
VPSRLD $0x1e, Y14, Y14
VPOR Y14, Y0, Y14
VPADDD 96(R8), Y14, Y0
VMOVDQU Y0, 544(R14)
VPALIGNR $0x08, Y15, Y14, Y0
VPXOR Y12, Y13, Y13
VPXOR Y5, Y0, Y0
VPXOR Y0, Y13, Y13
VPSLLD $0x02, Y13, Y0
VPSRLD $0x1e, Y13, Y13
VPOR Y13, Y0, Y13
VPADDD 96(R8), Y13, Y0
VMOVDQU Y0, 576(R14)
VPALIGNR $0x08, Y14, Y13, Y0
VPXOR Y8, Y12, Y12
VPXOR Y3, Y0, Y0
VPXOR Y0, Y12, Y12
VPSLLD $0x02, Y12, Y0
VPSRLD $0x1e, Y12, Y12
VPOR Y12, Y0, Y12
VPADDD 96(R8), Y12, Y0
VMOVDQU Y0, 608(R14)
XCHGQ R15, R14
loop:
CMPQ R10, R8
JNE begin
VZEROUPPER
RET
begin:
MOVL SI, BX
RORXL $0x02, SI, SI
ANDNL AX, BX, BP
ANDL DI, BX
XORL BP, BX
ADDL (R15), DX
ANDNL DI, CX, BP
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
VMOVDQU 128(R10), X0
ANDL SI, CX
XORL BP, CX
LEAL (DX)(R12*1), DX
ADDL 4(R15), AX
ANDNL SI, DX, BP
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VINSERTI128 $0x01, 128(R13), Y0, Y0
ANDL BX, DX
XORL BP, DX
LEAL (AX)(R12*1), AX
ADDL 8(R15), DI
ANDNL BX, AX, BP
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
VPSHUFB Y10, Y0, Y15
ANDL CX, AX
XORL BP, AX
LEAL (DI)(R12*1), DI
ADDL 12(R15), SI
ANDNL CX, DI, BP
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
ANDL DX, DI
XORL BP, DI
LEAL (SI)(R12*1), SI
ADDL 32(R15), BX
ANDNL DX, SI, BP
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
VPADDD (R8), Y15, Y0
ANDL AX, SI
XORL BP, SI
LEAL (BX)(R12*1), BX
ADDL 36(R15), CX
ANDNL AX, BX, BP
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
ANDL DI, BX
XORL BP, BX
LEAL (CX)(R12*1), CX
ADDL 40(R15), DX
ANDNL DI, CX, BP
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
ANDL SI, CX
XORL BP, CX
LEAL (DX)(R12*1), DX
ADDL 44(R15), AX
ANDNL SI, DX, BP
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VMOVDQU Y0, (R14)
ANDL BX, DX
XORL BP, DX
LEAL (AX)(R12*1), AX
ADDL 64(R15), DI
ANDNL BX, AX, BP
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
VMOVDQU 144(R10), X0
ANDL CX, AX
XORL BP, AX
LEAL (DI)(R12*1), DI
ADDL 68(R15), SI
ANDNL CX, DI, BP
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
VINSERTI128 $0x01, 144(R13), Y0, Y0
ANDL DX, DI
XORL BP, DI
LEAL (SI)(R12*1), SI
ADDL 72(R15), BX
ANDNL DX, SI, BP
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
VPSHUFB Y10, Y0, Y14
ANDL AX, SI
XORL BP, SI
LEAL (BX)(R12*1), BX
ADDL 76(R15), CX
ANDNL AX, BX, BP
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
ANDL DI, BX
XORL BP, BX
LEAL (CX)(R12*1), CX
ADDL 96(R15), DX
ANDNL DI, CX, BP
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
VPADDD (R8), Y14, Y0
ANDL SI, CX
XORL BP, CX
LEAL (DX)(R12*1), DX
ADDL 100(R15), AX
ANDNL SI, DX, BP
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
ANDL BX, DX
XORL BP, DX
LEAL (AX)(R12*1), AX
ADDL 104(R15), DI
ANDNL BX, AX, BP
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
ANDL CX, AX
XORL BP, AX
LEAL (DI)(R12*1), DI
ADDL 108(R15), SI
ANDNL CX, DI, BP
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
VMOVDQU Y0, 32(R14)
ANDL DX, DI
XORL BP, DI
LEAL (SI)(R12*1), SI
ADDL 128(R15), BX
ANDNL DX, SI, BP
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
VMOVDQU 160(R10), X0
ANDL AX, SI
XORL BP, SI
LEAL (BX)(R12*1), BX
ADDL 132(R15), CX
ANDNL AX, BX, BP
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
VINSERTI128 $0x01, 160(R13), Y0, Y0
ANDL DI, BX
XORL BP, BX
LEAL (CX)(R12*1), CX
ADDL 136(R15), DX
ANDNL DI, CX, BP
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
VPSHUFB Y10, Y0, Y13
ANDL SI, CX
XORL BP, CX
LEAL (DX)(R12*1), DX
ADDL 140(R15), AX
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
XORL BX, DX
ADDL R12, AX
XORL SI, DX
ADDL 160(R15), DI
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
VPADDD (R8), Y13, Y0
XORL CX, AX
ADDL R12, DI
XORL BX, AX
ADDL 164(R15), SI
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
XORL DX, DI
ADDL R12, SI
XORL CX, DI
ADDL 168(R15), BX
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
XORL AX, SI
ADDL R12, BX
XORL DX, SI
ADDL 172(R15), CX
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
VMOVDQU Y0, 64(R14)
XORL DI, BX
ADDL R12, CX
XORL AX, BX
ADDL 192(R15), DX
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
VMOVDQU 176(R10), X0
XORL SI, CX
ADDL R12, DX
XORL DI, CX
ADDL 196(R15), AX
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VINSERTI128 $0x01, 176(R13), Y0, Y0
XORL BX, DX
ADDL R12, AX
XORL SI, DX
ADDL 200(R15), DI
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
VPSHUFB Y10, Y0, Y12
XORL CX, AX
ADDL R12, DI
XORL BX, AX
ADDL 204(R15), SI
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
XORL DX, DI
ADDL R12, SI
XORL CX, DI
ADDL 224(R15), BX
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
VPADDD (R8), Y12, Y0
XORL AX, SI
ADDL R12, BX
XORL DX, SI
ADDL 228(R15), CX
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
XORL DI, BX
ADDL R12, CX
XORL AX, BX
ADDL 232(R15), DX
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
XORL SI, CX
ADDL R12, DX
XORL DI, CX
ADDL 236(R15), AX
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VMOVDQU Y0, 96(R14)
XORL BX, DX
ADDL R12, AX
XORL SI, DX
ADDL 256(R15), DI
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
VPALIGNR $0x08, Y15, Y14, Y8
VPSRLDQ $0x04, Y12, Y0
XORL CX, AX
ADDL R12, DI
XORL BX, AX
ADDL 260(R15), SI
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
VPXOR Y13, Y8, Y8
VPXOR Y15, Y0, Y0
XORL DX, DI
ADDL R12, SI
XORL CX, DI
ADDL 264(R15), BX
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
VPXOR Y0, Y8, Y8
VPSLLDQ $0x0c, Y8, Y9
XORL AX, SI
ADDL R12, BX
XORL DX, SI
ADDL 268(R15), CX
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
VPSLLD $0x01, Y8, Y0
VPSRLD $0x1f, Y8, Y8
XORL DI, BX
ADDL R12, CX
XORL AX, BX
ADDL 288(R15), DX
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
VPOR Y8, Y0, Y0
VPSLLD $0x02, Y9, Y8
XORL SI, CX
ADDL R12, DX
XORL DI, CX
ADDL 292(R15), AX
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VPSRLD $0x1e, Y9, Y9
VPXOR Y8, Y0, Y0
XORL BX, DX
ADDL R12, AX
XORL SI, DX
ADDL 296(R15), DI
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
XORL CX, AX
ADDL R12, DI
XORL BX, AX
ADDL 300(R15), SI
VPXOR Y9, Y0, Y8
VPADDD (R8), Y8, Y0
VMOVDQU Y0, 128(R14)
LEAL (SI)(AX*1), SI
MOVL DX, BP
ORL DI, BP
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
ANDL CX, BP
ANDL DX, DI
ORL BP, DI
ADDL R12, SI
ADDL 320(R15), BX
VPALIGNR $0x08, Y14, Y13, Y7
VPSRLDQ $0x04, Y8, Y0
LEAL (BX)(DI*1), BX
MOVL AX, BP
ORL SI, BP
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
ANDL DX, BP
ANDL AX, SI
ORL BP, SI
ADDL R12, BX
ADDL 324(R15), CX
VPXOR Y12, Y7, Y7
VPXOR Y14, Y0, Y0
LEAL (CX)(SI*1), CX
MOVL DI, BP
ORL BX, BP
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
ANDL AX, BP
ANDL DI, BX
ORL BP, BX
ADDL R12, CX
ADDL 328(R15), DX
VPXOR Y0, Y7, Y7
VPSLLDQ $0x0c, Y7, Y9
LEAL (DX)(BX*1), DX
MOVL SI, BP
ORL CX, BP
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
ANDL DI, BP
ANDL SI, CX
ORL BP, CX
ADDL R12, DX
ADDL 332(R15), AX
VPSLLD $0x01, Y7, Y0
VPSRLD $0x1f, Y7, Y7
LEAL (AX)(CX*1), AX
MOVL BX, BP
ORL DX, BP
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
ANDL SI, BP
ANDL BX, DX
ORL BP, DX
ADDL R12, AX
ADDL 352(R15), DI
VPOR Y7, Y0, Y0
VPSLLD $0x02, Y9, Y7
LEAL (DI)(DX*1), DI
MOVL CX, BP
ORL AX, BP
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
ANDL BX, BP
ANDL CX, AX
ORL BP, AX
ADDL R12, DI
ADDL 356(R15), SI
VPSRLD $0x1e, Y9, Y9
VPXOR Y7, Y0, Y0
LEAL (SI)(AX*1), SI
MOVL DX, BP
ORL DI, BP
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
ANDL CX, BP
ANDL DX, DI
ORL BP, DI
ADDL R12, SI
ADDL 360(R15), BX
LEAL (BX)(DI*1), BX
MOVL AX, BP
ORL SI, BP
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
ANDL DX, BP
ANDL AX, SI
ORL BP, SI
ADDL R12, BX
ADDL 364(R15), CX
VPXOR Y9, Y0, Y7
VPADDD 32(R8), Y7, Y0
VMOVDQU Y0, 160(R14)
LEAL (CX)(SI*1), CX
MOVL DI, BP
ORL BX, BP
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
ANDL AX, BP
ANDL DI, BX
ORL BP, BX
ADDL R12, CX
ADDL 384(R15), DX
VPALIGNR $0x08, Y13, Y12, Y5
VPSRLDQ $0x04, Y7, Y0
LEAL (DX)(BX*1), DX
MOVL SI, BP
ORL CX, BP
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
ANDL DI, BP
ANDL SI, CX
ORL BP, CX
ADDL R12, DX
ADDL 388(R15), AX
VPXOR Y8, Y5, Y5
VPXOR Y13, Y0, Y0
LEAL (AX)(CX*1), AX
MOVL BX, BP
ORL DX, BP
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
ANDL SI, BP
ANDL BX, DX
ORL BP, DX
ADDL R12, AX
ADDL 392(R15), DI
VPXOR Y0, Y5, Y5
VPSLLDQ $0x0c, Y5, Y9
LEAL (DI)(DX*1), DI
MOVL CX, BP
ORL AX, BP
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
ANDL BX, BP
ANDL CX, AX
ORL BP, AX
ADDL R12, DI
ADDL 396(R15), SI
VPSLLD $0x01, Y5, Y0
VPSRLD $0x1f, Y5, Y5
LEAL (SI)(AX*1), SI
MOVL DX, BP
ORL DI, BP
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
ANDL CX, BP
ANDL DX, DI
ORL BP, DI
ADDL R12, SI
ADDL 416(R15), BX
VPOR Y5, Y0, Y0
VPSLLD $0x02, Y9, Y5
LEAL (BX)(DI*1), BX
MOVL AX, BP
ORL SI, BP
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
ANDL DX, BP
ANDL AX, SI
ORL BP, SI
ADDL R12, BX
ADDL 420(R15), CX
VPSRLD $0x1e, Y9, Y9
VPXOR Y5, Y0, Y0
LEAL (CX)(SI*1), CX
MOVL DI, BP
ORL BX, BP
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
ANDL AX, BP
ANDL DI, BX
ORL BP, BX
ADDL R12, CX
ADDL 424(R15), DX
LEAL (DX)(BX*1), DX
MOVL SI, BP
ORL CX, BP
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
ANDL DI, BP
ANDL SI, CX
ORL BP, CX
ADDL R12, DX
ADDL 428(R15), AX
VPXOR Y9, Y0, Y5
VPADDD 32(R8), Y5, Y0
VMOVDQU Y0, 192(R14)
LEAL (AX)(CX*1), AX
MOVL BX, BP
ORL DX, BP
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
ANDL SI, BP
ANDL BX, DX
ORL BP, DX
ADDL R12, AX
ADDL 448(R15), DI
VPALIGNR $0x08, Y12, Y8, Y3
VPSRLDQ $0x04, Y5, Y0
LEAL (DI)(DX*1), DI
MOVL CX, BP
ORL AX, BP
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
ANDL BX, BP
ANDL CX, AX
ORL BP, AX
ADDL R12, DI
ADDL 452(R15), SI
VPXOR Y7, Y3, Y3
VPXOR Y12, Y0, Y0
LEAL (SI)(AX*1), SI
MOVL DX, BP
ORL DI, BP
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
ANDL CX, BP
ANDL DX, DI
ORL BP, DI
ADDL R12, SI
ADDL 456(R15), BX
VPXOR Y0, Y3, Y3
VPSLLDQ $0x0c, Y3, Y9
LEAL (BX)(DI*1), BX
MOVL AX, BP
ORL SI, BP
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
ANDL DX, BP
ANDL AX, SI
ORL BP, SI
ADDL R12, BX
ADDL 460(R15), CX
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
VPSLLD $0x01, Y3, Y0
VPSRLD $0x1f, Y3, Y3
XORL DI, BX
ADDL R12, CX
XORL AX, BX
ADDQ $0x80, R10
CMPQ R10, R11
CMOVQCC R8, R10
ADDL 480(R15), DX
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
VPOR Y3, Y0, Y0
VPSLLD $0x02, Y9, Y3
XORL SI, CX
ADDL R12, DX
XORL DI, CX
ADDL 484(R15), AX
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VPSRLD $0x1e, Y9, Y9
VPXOR Y3, Y0, Y0
XORL BX, DX
ADDL R12, AX
XORL SI, DX
ADDL 488(R15), DI
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
XORL CX, AX
ADDL R12, DI
XORL BX, AX
ADDL 492(R15), SI
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
VPXOR Y9, Y0, Y3
VPADDD 32(R8), Y3, Y0
VMOVDQU Y0, 224(R14)
XORL DX, DI
ADDL R12, SI
XORL CX, DI
ADDL 512(R15), BX
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
VPALIGNR $0x08, Y5, Y3, Y0
XORL AX, SI
ADDL R12, BX
XORL DX, SI
ADDL 516(R15), CX
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
VPXOR Y14, Y15, Y15
XORL DI, BX
ADDL R12, CX
XORL AX, BX
ADDL 520(R15), DX
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
VPXOR Y8, Y0, Y0
XORL SI, CX
ADDL R12, DX
XORL DI, CX
ADDL 524(R15), AX
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VPXOR Y0, Y15, Y15
XORL BX, DX
ADDL R12, AX
XORL SI, DX
ADDL 544(R15), DI
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
VPSLLD $0x02, Y15, Y0
XORL CX, AX
ADDL R12, DI
XORL BX, AX
ADDL 548(R15), SI
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
VPSRLD $0x1e, Y15, Y15
VPOR Y15, Y0, Y15
XORL DX, DI
ADDL R12, SI
XORL CX, DI
ADDL 552(R15), BX
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
XORL AX, SI
ADDL R12, BX
XORL DX, SI
ADDL 556(R15), CX
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
VPADDD 32(R8), Y15, Y0
VMOVDQU Y0, 256(R14)
XORL DI, BX
ADDL R12, CX
XORL AX, BX
ADDL 576(R15), DX
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
VPALIGNR $0x08, Y3, Y15, Y0
XORL SI, CX
ADDL R12, DX
XORL DI, CX
ADDL 580(R15), AX
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VPXOR Y13, Y14, Y14
XORL BX, DX
ADDL R12, AX
XORL SI, DX
ADDL 584(R15), DI
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
VPXOR Y7, Y0, Y0
XORL CX, AX
ADDL R12, DI
XORL BX, AX
ADDL 588(R15), SI
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
VPXOR Y0, Y14, Y14
XORL DX, DI
ADDL R12, SI
XORL CX, DI
ADDL 608(R15), BX
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
VPSLLD $0x02, Y14, Y0
XORL AX, SI
ADDL R12, BX
XORL DX, SI
ADDL 612(R15), CX
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
VPSRLD $0x1e, Y14, Y14
VPOR Y14, Y0, Y14
XORL DI, BX
ADDL R12, CX
XORL AX, BX
ADDL 616(R15), DX
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
XORL SI, CX
ADDL R12, DX
XORL DI, CX
ADDL 620(R15), AX
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
VPADDD 32(R8), Y14, Y0
VMOVDQU Y0, 288(R14)
ADDL R12, AX
ADDL (R9), AX
MOVL AX, (R9)
ADDL 4(R9), DX
MOVL DX, 4(R9)
ADDL 8(R9), BX
MOVL BX, 8(R9)
ADDL 12(R9), SI
MOVL SI, 12(R9)
ADDL 16(R9), DI
MOVL DI, 16(R9)
CMPQ R10, R8
JE loop
MOVL DX, CX
MOVL CX, DX
RORXL $0x02, CX, CX
ANDNL SI, DX, BP
ANDL BX, DX
XORL BP, DX
ADDL 16(R15), DI
ANDNL BX, AX, BP
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
VPALIGNR $0x08, Y15, Y14, Y0
ANDL CX, AX
XORL BP, AX
LEAL (DI)(R12*1), DI
ADDL 20(R15), SI
ANDNL CX, DI, BP
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
VPXOR Y12, Y13, Y13
ANDL DX, DI
XORL BP, DI
LEAL (SI)(R12*1), SI
ADDL 24(R15), BX
ANDNL DX, SI, BP
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
VPXOR Y5, Y0, Y0
ANDL AX, SI
XORL BP, SI
LEAL (BX)(R12*1), BX
ADDL 28(R15), CX
ANDNL AX, BX, BP
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
VPXOR Y0, Y13, Y13
ANDL DI, BX
XORL BP, BX
LEAL (CX)(R12*1), CX
ADDL 48(R15), DX
ANDNL DI, CX, BP
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
VPSLLD $0x02, Y13, Y0
ANDL SI, CX
XORL BP, CX
LEAL (DX)(R12*1), DX
ADDL 52(R15), AX
ANDNL SI, DX, BP
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VPSRLD $0x1e, Y13, Y13
VPOR Y13, Y0, Y13
ANDL BX, DX
XORL BP, DX
LEAL (AX)(R12*1), AX
ADDL 56(R15), DI
ANDNL BX, AX, BP
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
ANDL CX, AX
XORL BP, AX
LEAL (DI)(R12*1), DI
ADDL 60(R15), SI
ANDNL CX, DI, BP
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
VPADDD 64(R8), Y13, Y0
VMOVDQU Y0, 320(R14)
ANDL DX, DI
XORL BP, DI
LEAL (SI)(R12*1), SI
ADDL 80(R15), BX
ANDNL DX, SI, BP
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
VPALIGNR $0x08, Y14, Y13, Y0
ANDL AX, SI
XORL BP, SI
LEAL (BX)(R12*1), BX
ADDL 84(R15), CX
ANDNL AX, BX, BP
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
VPXOR Y8, Y12, Y12
ANDL DI, BX
XORL BP, BX
LEAL (CX)(R12*1), CX
ADDL 88(R15), DX
ANDNL DI, CX, BP
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
VPXOR Y3, Y0, Y0
ANDL SI, CX
XORL BP, CX
LEAL (DX)(R12*1), DX
ADDL 92(R15), AX
ANDNL SI, DX, BP
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VPXOR Y0, Y12, Y12
ANDL BX, DX
XORL BP, DX
LEAL (AX)(R12*1), AX
ADDL 112(R15), DI
ANDNL BX, AX, BP
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
VPSLLD $0x02, Y12, Y0
ANDL CX, AX
XORL BP, AX
LEAL (DI)(R12*1), DI
ADDL 116(R15), SI
ANDNL CX, DI, BP
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
VPSRLD $0x1e, Y12, Y12
VPOR Y12, Y0, Y12
ANDL DX, DI
XORL BP, DI
LEAL (SI)(R12*1), SI
ADDL 120(R15), BX
ANDNL DX, SI, BP
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
ANDL AX, SI
XORL BP, SI
LEAL (BX)(R12*1), BX
ADDL 124(R15), CX
ANDNL AX, BX, BP
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
VPADDD 64(R8), Y12, Y0
VMOVDQU Y0, 352(R14)
ANDL DI, BX
XORL BP, BX
LEAL (CX)(R12*1), CX
ADDL 144(R15), DX
ANDNL DI, CX, BP
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
VPALIGNR $0x08, Y13, Y12, Y0
ANDL SI, CX
XORL BP, CX
LEAL (DX)(R12*1), DX
ADDL 148(R15), AX
ANDNL SI, DX, BP
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VPXOR Y7, Y8, Y8
ANDL BX, DX
XORL BP, DX
LEAL (AX)(R12*1), AX
ADDL 152(R15), DI
ANDNL BX, AX, BP
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
VPXOR Y15, Y0, Y0
ANDL CX, AX
XORL BP, AX
LEAL (DI)(R12*1), DI
ADDL 156(R15), SI
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
VPXOR Y0, Y8, Y8
XORL DX, DI
ADDL R12, SI
XORL CX, DI
ADDL 176(R15), BX
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
VPSLLD $0x02, Y8, Y0
XORL AX, SI
ADDL R12, BX
XORL DX, SI
ADDL 180(R15), CX
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
VPSRLD $0x1e, Y8, Y8
VPOR Y8, Y0, Y8
XORL DI, BX
ADDL R12, CX
XORL AX, BX
ADDL 184(R15), DX
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
XORL SI, CX
ADDL R12, DX
XORL DI, CX
ADDL 188(R15), AX
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VPADDD 64(R8), Y8, Y0
VMOVDQU Y0, 384(R14)
XORL BX, DX
ADDL R12, AX
XORL SI, DX
ADDL 208(R15), DI
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
VPALIGNR $0x08, Y12, Y8, Y0
XORL CX, AX
ADDL R12, DI
XORL BX, AX
ADDL 212(R15), SI
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
VPXOR Y5, Y7, Y7
XORL DX, DI
ADDL R12, SI
XORL CX, DI
ADDL 216(R15), BX
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
VPXOR Y14, Y0, Y0
XORL AX, SI
ADDL R12, BX
XORL DX, SI
ADDL 220(R15), CX
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
VPXOR Y0, Y7, Y7
XORL DI, BX
ADDL R12, CX
XORL AX, BX
ADDL 240(R15), DX
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
VPSLLD $0x02, Y7, Y0
XORL SI, CX
ADDL R12, DX
XORL DI, CX
ADDL 244(R15), AX
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VPSRLD $0x1e, Y7, Y7
VPOR Y7, Y0, Y7
XORL BX, DX
ADDL R12, AX
XORL SI, DX
ADDL 248(R15), DI
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
XORL CX, AX
ADDL R12, DI
XORL BX, AX
ADDL 252(R15), SI
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
VPADDD 64(R8), Y7, Y0
VMOVDQU Y0, 416(R14)
XORL DX, DI
ADDL R12, SI
XORL CX, DI
ADDL 272(R15), BX
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
VPALIGNR $0x08, Y8, Y7, Y0
XORL AX, SI
ADDL R12, BX
XORL DX, SI
ADDL 276(R15), CX
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
VPXOR Y3, Y5, Y5
XORL DI, BX
ADDL R12, CX
XORL AX, BX
ADDL 280(R15), DX
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
VPXOR Y13, Y0, Y0
XORL SI, CX
ADDL R12, DX
XORL DI, CX
ADDL 284(R15), AX
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VPXOR Y0, Y5, Y5
XORL BX, DX
ADDL R12, AX
XORL SI, DX
ADDL 304(R15), DI
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
VPSLLD $0x02, Y5, Y0
XORL CX, AX
ADDL R12, DI
XORL BX, AX
ADDL 308(R15), SI
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
VPSRLD $0x1e, Y5, Y5
VPOR Y5, Y0, Y5
XORL DX, DI
ADDL R12, SI
XORL CX, DI
ADDL 312(R15), BX
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
XORL AX, SI
ADDL R12, BX
XORL DX, SI
ADDL 316(R15), CX
VPADDD 64(R8), Y5, Y0
VMOVDQU Y0, 448(R14)
LEAL (CX)(SI*1), CX
MOVL DI, BP
ORL BX, BP
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
ANDL AX, BP
ANDL DI, BX
ORL BP, BX
ADDL R12, CX
ADDL 336(R15), DX
VPALIGNR $0x08, Y7, Y5, Y0
LEAL (DX)(BX*1), DX
MOVL SI, BP
ORL CX, BP
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
ANDL DI, BP
ANDL SI, CX
ORL BP, CX
ADDL R12, DX
ADDL 340(R15), AX
VPXOR Y15, Y3, Y3
LEAL (AX)(CX*1), AX
MOVL BX, BP
ORL DX, BP
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
ANDL SI, BP
ANDL BX, DX
ORL BP, DX
ADDL R12, AX
ADDL 344(R15), DI
VPXOR Y12, Y0, Y0
LEAL (DI)(DX*1), DI
MOVL CX, BP
ORL AX, BP
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
ANDL BX, BP
ANDL CX, AX
ORL BP, AX
ADDL R12, DI
ADDL 348(R15), SI
VPXOR Y0, Y3, Y3
LEAL (SI)(AX*1), SI
MOVL DX, BP
ORL DI, BP
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
ANDL CX, BP
ANDL DX, DI
ORL BP, DI
ADDL R12, SI
ADDL 368(R15), BX
VPSLLD $0x02, Y3, Y0
LEAL (BX)(DI*1), BX
MOVL AX, BP
ORL SI, BP
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
ANDL DX, BP
ANDL AX, SI
ORL BP, SI
ADDL R12, BX
ADDL 372(R15), CX
VPSRLD $0x1e, Y3, Y3
VPOR Y3, Y0, Y3
LEAL (CX)(SI*1), CX
MOVL DI, BP
ORL BX, BP
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
ANDL AX, BP
ANDL DI, BX
ORL BP, BX
ADDL R12, CX
ADDL 376(R15), DX
LEAL (DX)(BX*1), DX
MOVL SI, BP
ORL CX, BP
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
ANDL DI, BP
ANDL SI, CX
ORL BP, CX
ADDL R12, DX
ADDL 380(R15), AX
VPADDD 96(R8), Y3, Y0
VMOVDQU Y0, 480(R14)
LEAL (AX)(CX*1), AX
MOVL BX, BP
ORL DX, BP
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
ANDL SI, BP
ANDL BX, DX
ORL BP, DX
ADDL R12, AX
ADDL 400(R15), DI
VPALIGNR $0x08, Y5, Y3, Y0
LEAL (DI)(DX*1), DI
MOVL CX, BP
ORL AX, BP
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
ANDL BX, BP
ANDL CX, AX
ORL BP, AX
ADDL R12, DI
ADDL 404(R15), SI
VPXOR Y14, Y15, Y15
LEAL (SI)(AX*1), SI
MOVL DX, BP
ORL DI, BP
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
ANDL CX, BP
ANDL DX, DI
ORL BP, DI
ADDL R12, SI
ADDL 408(R15), BX
VPXOR Y8, Y0, Y0
LEAL (BX)(DI*1), BX
MOVL AX, BP
ORL SI, BP
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
ANDL DX, BP
ANDL AX, SI
ORL BP, SI
ADDL R12, BX
ADDL 412(R15), CX
VPXOR Y0, Y15, Y15
LEAL (CX)(SI*1), CX
MOVL DI, BP
ORL BX, BP
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
ANDL AX, BP
ANDL DI, BX
ORL BP, BX
ADDL R12, CX
ADDL 432(R15), DX
VPSLLD $0x02, Y15, Y0
LEAL (DX)(BX*1), DX
MOVL SI, BP
ORL CX, BP
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
ANDL DI, BP
ANDL SI, CX
ORL BP, CX
ADDL R12, DX
ADDL 436(R15), AX
VPSRLD $0x1e, Y15, Y15
VPOR Y15, Y0, Y15
LEAL (AX)(CX*1), AX
MOVL BX, BP
ORL DX, BP
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
ANDL SI, BP
ANDL BX, DX
ORL BP, DX
ADDL R12, AX
ADDL 440(R15), DI
LEAL (DI)(DX*1), DI
MOVL CX, BP
ORL AX, BP
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
ANDL BX, BP
ANDL CX, AX
ORL BP, AX
ADDL R12, DI
ADDL 444(R15), SI
VPADDD 96(R8), Y15, Y0
VMOVDQU Y0, 512(R14)
LEAL (SI)(AX*1), SI
MOVL DX, BP
ORL DI, BP
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
ANDL CX, BP
ANDL DX, DI
ORL BP, DI
ADDL R12, SI
ADDL 464(R15), BX
VPALIGNR $0x08, Y3, Y15, Y0
LEAL (BX)(DI*1), BX
MOVL AX, BP
ORL SI, BP
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
ANDL DX, BP
ANDL AX, SI
ORL BP, SI
ADDL R12, BX
ADDL 468(R15), CX
VPXOR Y13, Y14, Y14
LEAL (CX)(SI*1), CX
MOVL DI, BP
ORL BX, BP
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
ANDL AX, BP
ANDL DI, BX
ORL BP, BX
ADDL R12, CX
ADDL 472(R15), DX
VPXOR Y7, Y0, Y0
LEAL (DX)(BX*1), DX
MOVL SI, BP
ORL CX, BP
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
ANDL DI, BP
ANDL SI, CX
ORL BP, CX
ADDL R12, DX
ADDL 476(R15), AX
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VPXOR Y0, Y14, Y14
XORL BX, DX
ADDL R12, AX
XORL SI, DX
ADDQ $0x80, R13
CMPQ R13, R11
CMOVQCC R8, R10
ADDL 496(R15), DI
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
VPSLLD $0x02, Y14, Y0
XORL CX, AX
ADDL R12, DI
XORL BX, AX
ADDL 500(R15), SI
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
VPSRLD $0x1e, Y14, Y14
VPOR Y14, Y0, Y14
XORL DX, DI
ADDL R12, SI
XORL CX, DI
ADDL 504(R15), BX
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
XORL AX, SI
ADDL R12, BX
XORL DX, SI
ADDL 508(R15), CX
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
VPADDD 96(R8), Y14, Y0
VMOVDQU Y0, 544(R14)
XORL DI, BX
ADDL R12, CX
XORL AX, BX
ADDL 528(R15), DX
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
VPALIGNR $0x08, Y15, Y14, Y0
XORL SI, CX
ADDL R12, DX
XORL DI, CX
ADDL 532(R15), AX
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VPXOR Y12, Y13, Y13
XORL BX, DX
ADDL R12, AX
XORL SI, DX
ADDL 536(R15), DI
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
VPXOR Y5, Y0, Y0
XORL CX, AX
ADDL R12, DI
XORL BX, AX
ADDL 540(R15), SI
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
VPXOR Y0, Y13, Y13
XORL DX, DI
ADDL R12, SI
XORL CX, DI
ADDL 560(R15), BX
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
VPSLLD $0x02, Y13, Y0
XORL AX, SI
ADDL R12, BX
XORL DX, SI
ADDL 564(R15), CX
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
VPSRLD $0x1e, Y13, Y13
VPOR Y13, Y0, Y13
XORL DI, BX
ADDL R12, CX
XORL AX, BX
ADDL 568(R15), DX
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
XORL SI, CX
ADDL R12, DX
XORL DI, CX
ADDL 572(R15), AX
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VPADDD 96(R8), Y13, Y0
VMOVDQU Y0, 576(R14)
XORL BX, DX
ADDL R12, AX
XORL SI, DX
ADDL 592(R15), DI
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
VPALIGNR $0x08, Y14, Y13, Y0
XORL CX, AX
ADDL R12, DI
XORL BX, AX
ADDL 596(R15), SI
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
RORXL $0x02, DI, AX
VPXOR Y8, Y12, Y12
XORL DX, DI
ADDL R12, SI
XORL CX, DI
ADDL 600(R15), BX
LEAL (BX)(DI*1), BX
RORXL $0x1b, SI, R12
RORXL $0x02, SI, DI
VPXOR Y3, Y0, Y0
XORL AX, SI
ADDL R12, BX
XORL DX, SI
ADDL 604(R15), CX
LEAL (CX)(SI*1), CX
RORXL $0x1b, BX, R12
RORXL $0x02, BX, SI
VPXOR Y0, Y12, Y12
XORL DI, BX
ADDL R12, CX
XORL AX, BX
ADDL 624(R15), DX
LEAL (DX)(BX*1), DX
RORXL $0x1b, CX, R12
RORXL $0x02, CX, BX
VPSLLD $0x02, Y12, Y0
XORL SI, CX
ADDL R12, DX
XORL DI, CX
ADDL 628(R15), AX
LEAL (AX)(CX*1), AX
RORXL $0x1b, DX, R12
RORXL $0x02, DX, CX
VPSRLD $0x1e, Y12, Y12
VPOR Y12, Y0, Y12
XORL BX, DX
ADDL R12, AX
XORL SI, DX
ADDL 632(R15), DI
LEAL (DI)(DX*1), DI
RORXL $0x1b, AX, R12
RORXL $0x02, AX, DX
XORL CX, AX
ADDL R12, DI
XORL BX, AX
ADDL 636(R15), SI
LEAL (SI)(AX*1), SI
RORXL $0x1b, DI, R12
VPADDD 96(R8), Y12, Y0
VMOVDQU Y0, 608(R14)
ADDL R12, SI
ADDL (R9), SI
MOVL SI, (R9)
ADDL 4(R9), DI
MOVL DI, 4(R9)
ADDL 8(R9), DX
MOVL DX, 8(R9)
ADDL 12(R9), CX
MOVL CX, 12(R9)
ADDL 16(R9), BX
MOVL BX, 16(R9)
MOVL SI, R12
MOVL DI, SI
MOVL DX, DI
MOVL BX, DX
MOVL CX, AX
MOVL R12, CX
XCHGQ R15, R14
JMP loop
DATA K_XMM_AR<>+0(SB)/4, $0x5a827999
DATA K_XMM_AR<>+4(SB)/4, $0x5a827999
DATA K_XMM_AR<>+8(SB)/4, $0x5a827999
DATA K_XMM_AR<>+12(SB)/4, $0x5a827999
DATA K_XMM_AR<>+16(SB)/4, $0x5a827999
DATA K_XMM_AR<>+20(SB)/4, $0x5a827999
DATA K_XMM_AR<>+24(SB)/4, $0x5a827999
DATA K_XMM_AR<>+28(SB)/4, $0x5a827999
DATA K_XMM_AR<>+32(SB)/4, $0x6ed9eba1
DATA K_XMM_AR<>+36(SB)/4, $0x6ed9eba1
DATA K_XMM_AR<>+40(SB)/4, $0x6ed9eba1
DATA K_XMM_AR<>+44(SB)/4, $0x6ed9eba1
DATA K_XMM_AR<>+48(SB)/4, $0x6ed9eba1
DATA K_XMM_AR<>+52(SB)/4, $0x6ed9eba1
DATA K_XMM_AR<>+56(SB)/4, $0x6ed9eba1
DATA K_XMM_AR<>+60(SB)/4, $0x6ed9eba1
DATA K_XMM_AR<>+64(SB)/4, $0x8f1bbcdc
DATA K_XMM_AR<>+68(SB)/4, $0x8f1bbcdc
DATA K_XMM_AR<>+72(SB)/4, $0x8f1bbcdc
DATA K_XMM_AR<>+76(SB)/4, $0x8f1bbcdc
DATA K_XMM_AR<>+80(SB)/4, $0x8f1bbcdc
DATA K_XMM_AR<>+84(SB)/4, $0x8f1bbcdc
DATA K_XMM_AR<>+88(SB)/4, $0x8f1bbcdc
DATA K_XMM_AR<>+92(SB)/4, $0x8f1bbcdc
DATA K_XMM_AR<>+96(SB)/4, $0xca62c1d6
DATA K_XMM_AR<>+100(SB)/4, $0xca62c1d6
DATA K_XMM_AR<>+104(SB)/4, $0xca62c1d6
DATA K_XMM_AR<>+108(SB)/4, $0xca62c1d6
DATA K_XMM_AR<>+112(SB)/4, $0xca62c1d6
DATA K_XMM_AR<>+116(SB)/4, $0xca62c1d6
DATA K_XMM_AR<>+120(SB)/4, $0xca62c1d6
DATA K_XMM_AR<>+124(SB)/4, $0xca62c1d6
GLOBL K_XMM_AR<>(SB), RODATA, $128
DATA BSWAP_SHUFB_CTL<>+0(SB)/4, $0x00010203
DATA BSWAP_SHUFB_CTL<>+4(SB)/4, $0x04050607
DATA BSWAP_SHUFB_CTL<>+8(SB)/4, $0x08090a0b
DATA BSWAP_SHUFB_CTL<>+12(SB)/4, $0x0c0d0e0f
DATA BSWAP_SHUFB_CTL<>+16(SB)/4, $0x00010203
DATA BSWAP_SHUFB_CTL<>+20(SB)/4, $0x04050607
DATA BSWAP_SHUFB_CTL<>+24(SB)/4, $0x08090a0b
DATA BSWAP_SHUFB_CTL<>+28(SB)/4, $0x0c0d0e0f
GLOBL BSWAP_SHUFB_CTL<>(SB), RODATA, $32