// 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