Files
avo/examples/sha1/sha1.s
2021-04-18 19:22:09 -07:00

1508 lines
22 KiB
ArmAsm

// Code generated by command: go run asm.go -out sha1.s -stubs stub.go. DO NOT EDIT.
// func block(h *[5]uint32, m []byte)
TEXT ·block(SB), $64-32
MOVQ h+0(FP), AX
MOVQ m_base+8(FP), CX
// Load initial hash.
MOVL (AX), DX
MOVL 4(AX), BX
MOVL 8(AX), SI
MOVL 12(AX), DI
MOVL 16(AX), R8
// Initialize registers.
MOVL DX, R9
MOVL BX, R10
MOVL SI, R11
MOVL DI, R12
MOVL R8, R13
// Round 0.
MOVL (CX), R14
BSWAPL R14
MOVL R14, (SP)
MOVL R9, R15
ROLL $0x05, R15
MOVL R12, BP
XORL R11, BP
ANDL R10, BP
XORL R12, BP
ADDL BP, R15
ADDL R13, R15
ADDL $0x5a827999, R15
ADDL R14, R15
ROLL $0x1e, R10
// Round 1.
MOVL 4(CX), R13
BSWAPL R13
MOVL R13, 4(SP)
MOVL R15, R14
ROLL $0x05, R14
MOVL R11, BP
XORL R10, BP
ANDL R9, BP
XORL R11, BP
ADDL BP, R14
ADDL R12, R14
ADDL $0x5a827999, R14
ADDL R13, R14
ROLL $0x1e, R9
// Round 2.
MOVL 8(CX), R12
BSWAPL R12
MOVL R12, 8(SP)
MOVL R14, R13
ROLL $0x05, R13
MOVL R10, BP
XORL R9, BP
ANDL R15, BP
XORL R10, BP
ADDL BP, R13
ADDL R11, R13
ADDL $0x5a827999, R13
ADDL R12, R13
ROLL $0x1e, R15
// Round 3.
MOVL 12(CX), R11
BSWAPL R11
MOVL R11, 12(SP)
MOVL R13, R12
ROLL $0x05, R12
MOVL R9, BP
XORL R15, BP
ANDL R14, BP
XORL R9, BP
ADDL BP, R12
ADDL R10, R12
ADDL $0x5a827999, R12
ADDL R11, R12
ROLL $0x1e, R14
// Round 4.
MOVL 16(CX), R10
BSWAPL R10
MOVL R10, 16(SP)
MOVL R12, R11
ROLL $0x05, R11
MOVL R15, BP
XORL R14, BP
ANDL R13, BP
XORL R15, BP
ADDL BP, R11
ADDL R9, R11
ADDL $0x5a827999, R11
ADDL R10, R11
ROLL $0x1e, R13
// Round 5.
MOVL 20(CX), R9
BSWAPL R9
MOVL R9, 20(SP)
MOVL R11, R10
ROLL $0x05, R10
MOVL R14, BP
XORL R13, BP
ANDL R12, BP
XORL R14, BP
ADDL BP, R10
ADDL R15, R10
ADDL $0x5a827999, R10
ADDL R9, R10
ROLL $0x1e, R12
// Round 6.
MOVL 24(CX), R9
BSWAPL R9
MOVL R9, 24(SP)
MOVL R10, R15
ROLL $0x05, R15
MOVL R13, BP
XORL R12, BP
ANDL R11, BP
XORL R13, BP
ADDL BP, R15
ADDL R14, R15
ADDL $0x5a827999, R15
ADDL R9, R15
ROLL $0x1e, R11
// Round 7.
MOVL 28(CX), R9
BSWAPL R9
MOVL R9, 28(SP)
MOVL R15, R14
ROLL $0x05, R14
MOVL R12, BP
XORL R11, BP
ANDL R10, BP
XORL R12, BP
ADDL BP, R14
ADDL R13, R14
ADDL $0x5a827999, R14
ADDL R9, R14
ROLL $0x1e, R10
// Round 8.
MOVL 32(CX), R9
BSWAPL R9
MOVL R9, 32(SP)
MOVL R14, R13
ROLL $0x05, R13
MOVL R11, BP
XORL R10, BP
ANDL R15, BP
XORL R11, BP
ADDL BP, R13
ADDL R12, R13
ADDL $0x5a827999, R13
ADDL R9, R13
ROLL $0x1e, R15
// Round 9.
MOVL 36(CX), R9
BSWAPL R9
MOVL R9, 36(SP)
MOVL R13, R12
ROLL $0x05, R12
MOVL R10, BP
XORL R15, BP
ANDL R14, BP
XORL R10, BP
ADDL BP, R12
ADDL R11, R12
ADDL $0x5a827999, R12
ADDL R9, R12
ROLL $0x1e, R14
// Round 10.
MOVL 40(CX), R9
BSWAPL R9
MOVL R9, 40(SP)
MOVL R12, R11
ROLL $0x05, R11
MOVL R15, BP
XORL R14, BP
ANDL R13, BP
XORL R15, BP
ADDL BP, R11
ADDL R10, R11
ADDL $0x5a827999, R11
ADDL R9, R11
ROLL $0x1e, R13
// Round 11.
MOVL 44(CX), R9
BSWAPL R9
MOVL R9, 44(SP)
MOVL R11, R10
ROLL $0x05, R10
MOVL R14, BP
XORL R13, BP
ANDL R12, BP
XORL R14, BP
ADDL BP, R10
ADDL R15, R10
ADDL $0x5a827999, R10
ADDL R9, R10
ROLL $0x1e, R12
// Round 12.
MOVL 48(CX), R9
BSWAPL R9
MOVL R9, 48(SP)
MOVL R10, R15
ROLL $0x05, R15
MOVL R13, BP
XORL R12, BP
ANDL R11, BP
XORL R13, BP
ADDL BP, R15
ADDL R14, R15
ADDL $0x5a827999, R15
ADDL R9, R15
ROLL $0x1e, R11
// Round 13.
MOVL 52(CX), R9
BSWAPL R9
MOVL R9, 52(SP)
MOVL R15, R14
ROLL $0x05, R14
MOVL R12, BP
XORL R11, BP
ANDL R10, BP
XORL R12, BP
ADDL BP, R14
ADDL R13, R14
ADDL $0x5a827999, R14
ADDL R9, R14
ROLL $0x1e, R10
// Round 14.
MOVL 56(CX), R9
BSWAPL R9
MOVL R9, 56(SP)
MOVL R14, R13
ROLL $0x05, R13
MOVL R11, BP
XORL R10, BP
ANDL R15, BP
XORL R11, BP
ADDL BP, R13
ADDL R12, R13
ADDL $0x5a827999, R13
ADDL R9, R13
ROLL $0x1e, R15
// Round 15.
MOVL 60(CX), CX
BSWAPL CX
MOVL CX, 60(SP)
MOVL R13, R9
ROLL $0x05, R9
MOVL R10, R12
XORL R15, R12
ANDL R14, R12
XORL R10, R12
ADDL R12, R9
ADDL R11, R9
ADDL $0x5a827999, R9
ADDL CX, R9
ROLL $0x1e, R14
// Round 16.
MOVL 52(SP), CX
XORL 32(SP), CX
XORL 8(SP), CX
XORL (SP), CX
ROLL $0x01, CX
MOVL CX, (SP)
MOVL R9, R11
ROLL $0x05, R11
MOVL R15, R12
XORL R14, R12
ANDL R13, R12
XORL R15, R12
ADDL R12, R11
ADDL R10, R11
ADDL $0x5a827999, R11
ADDL CX, R11
ROLL $0x1e, R13
// Round 17.
MOVL 56(SP), CX
XORL 36(SP), CX
XORL 12(SP), CX
XORL 4(SP), CX
ROLL $0x01, CX
MOVL CX, 4(SP)
MOVL R11, R10
ROLL $0x05, R10
MOVL R14, R12
XORL R13, R12
ANDL R9, R12
XORL R14, R12
ADDL R12, R10
ADDL R15, R10
ADDL $0x5a827999, R10
ADDL CX, R10
ROLL $0x1e, R9
// Round 18.
MOVL 60(SP), CX
XORL 40(SP), CX
XORL 16(SP), CX
XORL 8(SP), CX
ROLL $0x01, CX
MOVL CX, 8(SP)
MOVL R10, R12
ROLL $0x05, R12
MOVL R13, R15
XORL R9, R15
ANDL R11, R15
XORL R13, R15
ADDL R15, R12
ADDL R14, R12
ADDL $0x5a827999, R12
ADDL CX, R12
ROLL $0x1e, R11
// Round 19.
MOVL (SP), CX
XORL 44(SP), CX
XORL 20(SP), CX
XORL 12(SP), CX
ROLL $0x01, CX
MOVL CX, 12(SP)
MOVL R12, R14
ROLL $0x05, R14
MOVL R9, R15
XORL R11, R15
ANDL R10, R15
XORL R9, R15
ADDL R15, R14
ADDL R13, R14
ADDL $0x5a827999, R14
ADDL CX, R14
ROLL $0x1e, R10
// Round 20.
MOVL 4(SP), CX
XORL 48(SP), CX
XORL 24(SP), CX
XORL 16(SP), CX
ROLL $0x01, CX
MOVL CX, 16(SP)
MOVL R14, R13
ROLL $0x05, R13
MOVL R12, R15
XORL R10, R15
XORL R11, R15
ADDL R15, R13
ADDL R9, R13
ADDL $0x6ed9eba1, R13
ADDL CX, R13
ROLL $0x1e, R12
// Round 21.
MOVL 8(SP), CX
XORL 52(SP), CX
XORL 28(SP), CX
XORL 20(SP), CX
ROLL $0x01, CX
MOVL CX, 20(SP)
MOVL R13, R9
ROLL $0x05, R9
MOVL R14, R15
XORL R12, R15
XORL R10, R15
ADDL R15, R9
ADDL R11, R9
ADDL $0x6ed9eba1, R9
ADDL CX, R9
ROLL $0x1e, R14
// Round 22.
MOVL 12(SP), CX
XORL 56(SP), CX
XORL 32(SP), CX
XORL 24(SP), CX
ROLL $0x01, CX
MOVL CX, 24(SP)
MOVL R9, R11
ROLL $0x05, R11
MOVL R13, R15
XORL R14, R15
XORL R12, R15
ADDL R15, R11
ADDL R10, R11
ADDL $0x6ed9eba1, R11
ADDL CX, R11
ROLL $0x1e, R13
// Round 23.
MOVL 16(SP), CX
XORL 60(SP), CX
XORL 36(SP), CX
XORL 28(SP), CX
ROLL $0x01, CX
MOVL CX, 28(SP)
MOVL R11, R10
ROLL $0x05, R10
MOVL R9, R15
XORL R13, R15
XORL R14, R15
ADDL R15, R10
ADDL R12, R10
ADDL $0x6ed9eba1, R10
ADDL CX, R10
ROLL $0x1e, R9
// Round 24.
MOVL 20(SP), CX
XORL (SP), CX
XORL 40(SP), CX
XORL 32(SP), CX
ROLL $0x01, CX
MOVL CX, 32(SP)
MOVL R10, R12
ROLL $0x05, R12
MOVL R11, R15
XORL R9, R15
XORL R13, R15
ADDL R15, R12
ADDL R14, R12
ADDL $0x6ed9eba1, R12
ADDL CX, R12
ROLL $0x1e, R11
// Round 25.
MOVL 24(SP), CX
XORL 4(SP), CX
XORL 44(SP), CX
XORL 36(SP), CX
ROLL $0x01, CX
MOVL CX, 36(SP)
MOVL R12, R14
ROLL $0x05, R14
MOVL R10, R15
XORL R11, R15
XORL R9, R15
ADDL R15, R14
ADDL R13, R14
ADDL $0x6ed9eba1, R14
ADDL CX, R14
ROLL $0x1e, R10
// Round 26.
MOVL 28(SP), CX
XORL 8(SP), CX
XORL 48(SP), CX
XORL 40(SP), CX
ROLL $0x01, CX
MOVL CX, 40(SP)
MOVL R14, R13
ROLL $0x05, R13
MOVL R12, R15
XORL R10, R15
XORL R11, R15
ADDL R15, R13
ADDL R9, R13
ADDL $0x6ed9eba1, R13
ADDL CX, R13
ROLL $0x1e, R12
// Round 27.
MOVL 32(SP), CX
XORL 12(SP), CX
XORL 52(SP), CX
XORL 44(SP), CX
ROLL $0x01, CX
MOVL CX, 44(SP)
MOVL R13, R9
ROLL $0x05, R9
MOVL R14, R15
XORL R12, R15
XORL R10, R15
ADDL R15, R9
ADDL R11, R9
ADDL $0x6ed9eba1, R9
ADDL CX, R9
ROLL $0x1e, R14
// Round 28.
MOVL 36(SP), CX
XORL 16(SP), CX
XORL 56(SP), CX
XORL 48(SP), CX
ROLL $0x01, CX
MOVL CX, 48(SP)
MOVL R9, R11
ROLL $0x05, R11
MOVL R13, R15
XORL R14, R15
XORL R12, R15
ADDL R15, R11
ADDL R10, R11
ADDL $0x6ed9eba1, R11
ADDL CX, R11
ROLL $0x1e, R13
// Round 29.
MOVL 40(SP), CX
XORL 20(SP), CX
XORL 60(SP), CX
XORL 52(SP), CX
ROLL $0x01, CX
MOVL CX, 52(SP)
MOVL R11, R10
ROLL $0x05, R10
MOVL R9, R15
XORL R13, R15
XORL R14, R15
ADDL R15, R10
ADDL R12, R10
ADDL $0x6ed9eba1, R10
ADDL CX, R10
ROLL $0x1e, R9
// Round 30.
MOVL 44(SP), CX
XORL 24(SP), CX
XORL (SP), CX
XORL 56(SP), CX
ROLL $0x01, CX
MOVL CX, 56(SP)
MOVL R10, R12
ROLL $0x05, R12
MOVL R11, R15
XORL R9, R15
XORL R13, R15
ADDL R15, R12
ADDL R14, R12
ADDL $0x6ed9eba1, R12
ADDL CX, R12
ROLL $0x1e, R11
// Round 31.
MOVL 48(SP), CX
XORL 28(SP), CX
XORL 4(SP), CX
XORL 60(SP), CX
ROLL $0x01, CX
MOVL CX, 60(SP)
MOVL R12, R14
ROLL $0x05, R14
MOVL R10, R15
XORL R11, R15
XORL R9, R15
ADDL R15, R14
ADDL R13, R14
ADDL $0x6ed9eba1, R14
ADDL CX, R14
ROLL $0x1e, R10
// Round 32.
MOVL 52(SP), CX
XORL 32(SP), CX
XORL 8(SP), CX
XORL (SP), CX
ROLL $0x01, CX
MOVL CX, (SP)
MOVL R14, R13
ROLL $0x05, R13
MOVL R12, R15
XORL R10, R15
XORL R11, R15
ADDL R15, R13
ADDL R9, R13
ADDL $0x6ed9eba1, R13
ADDL CX, R13
ROLL $0x1e, R12
// Round 33.
MOVL 56(SP), CX
XORL 36(SP), CX
XORL 12(SP), CX
XORL 4(SP), CX
ROLL $0x01, CX
MOVL CX, 4(SP)
MOVL R13, R9
ROLL $0x05, R9
MOVL R14, R15
XORL R12, R15
XORL R10, R15
ADDL R15, R9
ADDL R11, R9
ADDL $0x6ed9eba1, R9
ADDL CX, R9
ROLL $0x1e, R14
// Round 34.
MOVL 60(SP), CX
XORL 40(SP), CX
XORL 16(SP), CX
XORL 8(SP), CX
ROLL $0x01, CX
MOVL CX, 8(SP)
MOVL R9, R11
ROLL $0x05, R11
MOVL R13, R15
XORL R14, R15
XORL R12, R15
ADDL R15, R11
ADDL R10, R11
ADDL $0x6ed9eba1, R11
ADDL CX, R11
ROLL $0x1e, R13
// Round 35.
MOVL (SP), CX
XORL 44(SP), CX
XORL 20(SP), CX
XORL 12(SP), CX
ROLL $0x01, CX
MOVL CX, 12(SP)
MOVL R11, R10
ROLL $0x05, R10
MOVL R9, R15
XORL R13, R15
XORL R14, R15
ADDL R15, R10
ADDL R12, R10
ADDL $0x6ed9eba1, R10
ADDL CX, R10
ROLL $0x1e, R9
// Round 36.
MOVL 4(SP), CX
XORL 48(SP), CX
XORL 24(SP), CX
XORL 16(SP), CX
ROLL $0x01, CX
MOVL CX, 16(SP)
MOVL R10, R12
ROLL $0x05, R12
MOVL R11, R15
XORL R9, R15
XORL R13, R15
ADDL R15, R12
ADDL R14, R12
ADDL $0x6ed9eba1, R12
ADDL CX, R12
ROLL $0x1e, R11
// Round 37.
MOVL 8(SP), CX
XORL 52(SP), CX
XORL 28(SP), CX
XORL 20(SP), CX
ROLL $0x01, CX
MOVL CX, 20(SP)
MOVL R12, R14
ROLL $0x05, R14
MOVL R10, R15
XORL R11, R15
XORL R9, R15
ADDL R15, R14
ADDL R13, R14
ADDL $0x6ed9eba1, R14
ADDL CX, R14
ROLL $0x1e, R10
// Round 38.
MOVL 12(SP), CX
XORL 56(SP), CX
XORL 32(SP), CX
XORL 24(SP), CX
ROLL $0x01, CX
MOVL CX, 24(SP)
MOVL R14, R13
ROLL $0x05, R13
MOVL R12, R15
XORL R10, R15
XORL R11, R15
ADDL R15, R13
ADDL R9, R13
ADDL $0x6ed9eba1, R13
ADDL CX, R13
ROLL $0x1e, R12
// Round 39.
MOVL 16(SP), CX
XORL 60(SP), CX
XORL 36(SP), CX
XORL 28(SP), CX
ROLL $0x01, CX
MOVL CX, 28(SP)
MOVL R13, R9
ROLL $0x05, R9
MOVL R14, R15
XORL R12, R15
XORL R10, R15
ADDL R15, R9
ADDL R11, R9
ADDL $0x6ed9eba1, R9
ADDL CX, R9
ROLL $0x1e, R14
// Round 40.
MOVL 20(SP), CX
XORL (SP), CX
XORL 40(SP), CX
XORL 32(SP), CX
ROLL $0x01, CX
MOVL CX, 32(SP)
MOVL R9, R11
ROLL $0x05, R11
MOVL R13, R15
ORL R14, R15
ANDL R12, R15
MOVL R13, BP
ANDL R14, BP
ORL R15, BP
ADDL BP, R11
ADDL R10, R11
ADDL $0x8f1bbcdc, R11
ADDL CX, R11
ROLL $0x1e, R13
// Round 41.
MOVL 24(SP), CX
XORL 4(SP), CX
XORL 44(SP), CX
XORL 36(SP), CX
ROLL $0x01, CX
MOVL CX, 36(SP)
MOVL R11, R10
ROLL $0x05, R10
MOVL R9, R15
ORL R13, R15
ANDL R14, R15
MOVL R9, BP
ANDL R13, BP
ORL R15, BP
ADDL BP, R10
ADDL R12, R10
ADDL $0x8f1bbcdc, R10
ADDL CX, R10
ROLL $0x1e, R9
// Round 42.
MOVL 28(SP), CX
XORL 8(SP), CX
XORL 48(SP), CX
XORL 40(SP), CX
ROLL $0x01, CX
MOVL CX, 40(SP)
MOVL R10, R12
ROLL $0x05, R12
MOVL R11, R15
ORL R9, R15
ANDL R13, R15
MOVL R11, BP
ANDL R9, BP
ORL R15, BP
ADDL BP, R12
ADDL R14, R12
ADDL $0x8f1bbcdc, R12
ADDL CX, R12
ROLL $0x1e, R11
// Round 43.
MOVL 32(SP), CX
XORL 12(SP), CX
XORL 52(SP), CX
XORL 44(SP), CX
ROLL $0x01, CX
MOVL CX, 44(SP)
MOVL R12, R14
ROLL $0x05, R14
MOVL R10, R15
ORL R11, R15
ANDL R9, R15
MOVL R10, BP
ANDL R11, BP
ORL R15, BP
ADDL BP, R14
ADDL R13, R14
ADDL $0x8f1bbcdc, R14
ADDL CX, R14
ROLL $0x1e, R10
// Round 44.
MOVL 36(SP), CX
XORL 16(SP), CX
XORL 56(SP), CX
XORL 48(SP), CX
ROLL $0x01, CX
MOVL CX, 48(SP)
MOVL R14, R13
ROLL $0x05, R13
MOVL R12, R15
ORL R10, R15
ANDL R11, R15
MOVL R12, BP
ANDL R10, BP
ORL R15, BP
ADDL BP, R13
ADDL R9, R13
ADDL $0x8f1bbcdc, R13
ADDL CX, R13
ROLL $0x1e, R12
// Round 45.
MOVL 40(SP), CX
XORL 20(SP), CX
XORL 60(SP), CX
XORL 52(SP), CX
ROLL $0x01, CX
MOVL CX, 52(SP)
MOVL R13, R9
ROLL $0x05, R9
MOVL R14, R15
ORL R12, R15
ANDL R10, R15
MOVL R14, BP
ANDL R12, BP
ORL R15, BP
ADDL BP, R9
ADDL R11, R9
ADDL $0x8f1bbcdc, R9
ADDL CX, R9
ROLL $0x1e, R14
// Round 46.
MOVL 44(SP), CX
XORL 24(SP), CX
XORL (SP), CX
XORL 56(SP), CX
ROLL $0x01, CX
MOVL CX, 56(SP)
MOVL R9, R11
ROLL $0x05, R11
MOVL R13, R15
ORL R14, R15
ANDL R12, R15
MOVL R13, BP
ANDL R14, BP
ORL R15, BP
ADDL BP, R11
ADDL R10, R11
ADDL $0x8f1bbcdc, R11
ADDL CX, R11
ROLL $0x1e, R13
// Round 47.
MOVL 48(SP), CX
XORL 28(SP), CX
XORL 4(SP), CX
XORL 60(SP), CX
ROLL $0x01, CX
MOVL CX, 60(SP)
MOVL R11, R10
ROLL $0x05, R10
MOVL R9, R15
ORL R13, R15
ANDL R14, R15
MOVL R9, BP
ANDL R13, BP
ORL R15, BP
ADDL BP, R10
ADDL R12, R10
ADDL $0x8f1bbcdc, R10
ADDL CX, R10
ROLL $0x1e, R9
// Round 48.
MOVL 52(SP), CX
XORL 32(SP), CX
XORL 8(SP), CX
XORL (SP), CX
ROLL $0x01, CX
MOVL CX, (SP)
MOVL R10, R12
ROLL $0x05, R12
MOVL R11, R15
ORL R9, R15
ANDL R13, R15
MOVL R11, BP
ANDL R9, BP
ORL R15, BP
ADDL BP, R12
ADDL R14, R12
ADDL $0x8f1bbcdc, R12
ADDL CX, R12
ROLL $0x1e, R11
// Round 49.
MOVL 56(SP), CX
XORL 36(SP), CX
XORL 12(SP), CX
XORL 4(SP), CX
ROLL $0x01, CX
MOVL CX, 4(SP)
MOVL R12, R14
ROLL $0x05, R14
MOVL R10, R15
ORL R11, R15
ANDL R9, R15
MOVL R10, BP
ANDL R11, BP
ORL R15, BP
ADDL BP, R14
ADDL R13, R14
ADDL $0x8f1bbcdc, R14
ADDL CX, R14
ROLL $0x1e, R10
// Round 50.
MOVL 60(SP), CX
XORL 40(SP), CX
XORL 16(SP), CX
XORL 8(SP), CX
ROLL $0x01, CX
MOVL CX, 8(SP)
MOVL R14, R13
ROLL $0x05, R13
MOVL R12, R15
ORL R10, R15
ANDL R11, R15
MOVL R12, BP
ANDL R10, BP
ORL R15, BP
ADDL BP, R13
ADDL R9, R13
ADDL $0x8f1bbcdc, R13
ADDL CX, R13
ROLL $0x1e, R12
// Round 51.
MOVL (SP), CX
XORL 44(SP), CX
XORL 20(SP), CX
XORL 12(SP), CX
ROLL $0x01, CX
MOVL CX, 12(SP)
MOVL R13, R9
ROLL $0x05, R9
MOVL R14, R15
ORL R12, R15
ANDL R10, R15
MOVL R14, BP
ANDL R12, BP
ORL R15, BP
ADDL BP, R9
ADDL R11, R9
ADDL $0x8f1bbcdc, R9
ADDL CX, R9
ROLL $0x1e, R14
// Round 52.
MOVL 4(SP), CX
XORL 48(SP), CX
XORL 24(SP), CX
XORL 16(SP), CX
ROLL $0x01, CX
MOVL CX, 16(SP)
MOVL R9, R11
ROLL $0x05, R11
MOVL R13, R15
ORL R14, R15
ANDL R12, R15
MOVL R13, BP
ANDL R14, BP
ORL R15, BP
ADDL BP, R11
ADDL R10, R11
ADDL $0x8f1bbcdc, R11
ADDL CX, R11
ROLL $0x1e, R13
// Round 53.
MOVL 8(SP), CX
XORL 52(SP), CX
XORL 28(SP), CX
XORL 20(SP), CX
ROLL $0x01, CX
MOVL CX, 20(SP)
MOVL R11, R10
ROLL $0x05, R10
MOVL R9, R15
ORL R13, R15
ANDL R14, R15
MOVL R9, BP
ANDL R13, BP
ORL R15, BP
ADDL BP, R10
ADDL R12, R10
ADDL $0x8f1bbcdc, R10
ADDL CX, R10
ROLL $0x1e, R9
// Round 54.
MOVL 12(SP), CX
XORL 56(SP), CX
XORL 32(SP), CX
XORL 24(SP), CX
ROLL $0x01, CX
MOVL CX, 24(SP)
MOVL R10, R12
ROLL $0x05, R12
MOVL R11, R15
ORL R9, R15
ANDL R13, R15
MOVL R11, BP
ANDL R9, BP
ORL R15, BP
ADDL BP, R12
ADDL R14, R12
ADDL $0x8f1bbcdc, R12
ADDL CX, R12
ROLL $0x1e, R11
// Round 55.
MOVL 16(SP), CX
XORL 60(SP), CX
XORL 36(SP), CX
XORL 28(SP), CX
ROLL $0x01, CX
MOVL CX, 28(SP)
MOVL R12, R14
ROLL $0x05, R14
MOVL R10, R15
ORL R11, R15
ANDL R9, R15
MOVL R10, BP
ANDL R11, BP
ORL R15, BP
ADDL BP, R14
ADDL R13, R14
ADDL $0x8f1bbcdc, R14
ADDL CX, R14
ROLL $0x1e, R10
// Round 56.
MOVL 20(SP), CX
XORL (SP), CX
XORL 40(SP), CX
XORL 32(SP), CX
ROLL $0x01, CX
MOVL CX, 32(SP)
MOVL R14, R13
ROLL $0x05, R13
MOVL R12, R15
ORL R10, R15
ANDL R11, R15
MOVL R12, BP
ANDL R10, BP
ORL R15, BP
ADDL BP, R13
ADDL R9, R13
ADDL $0x8f1bbcdc, R13
ADDL CX, R13
ROLL $0x1e, R12
// Round 57.
MOVL 24(SP), CX
XORL 4(SP), CX
XORL 44(SP), CX
XORL 36(SP), CX
ROLL $0x01, CX
MOVL CX, 36(SP)
MOVL R13, R9
ROLL $0x05, R9
MOVL R14, R15
ORL R12, R15
ANDL R10, R15
MOVL R14, BP
ANDL R12, BP
ORL R15, BP
ADDL BP, R9
ADDL R11, R9
ADDL $0x8f1bbcdc, R9
ADDL CX, R9
ROLL $0x1e, R14
// Round 58.
MOVL 28(SP), CX
XORL 8(SP), CX
XORL 48(SP), CX
XORL 40(SP), CX
ROLL $0x01, CX
MOVL CX, 40(SP)
MOVL R9, R11
ROLL $0x05, R11
MOVL R13, R15
ORL R14, R15
ANDL R12, R15
MOVL R13, BP
ANDL R14, BP
ORL R15, BP
ADDL BP, R11
ADDL R10, R11
ADDL $0x8f1bbcdc, R11
ADDL CX, R11
ROLL $0x1e, R13
// Round 59.
MOVL 32(SP), CX
XORL 12(SP), CX
XORL 52(SP), CX
XORL 44(SP), CX
ROLL $0x01, CX
MOVL CX, 44(SP)
MOVL R11, R10
ROLL $0x05, R10
MOVL R9, R15
ORL R13, R15
ANDL R14, R15
MOVL R9, BP
ANDL R13, BP
ORL R15, BP
ADDL BP, R10
ADDL R12, R10
ADDL $0x8f1bbcdc, R10
ADDL CX, R10
ROLL $0x1e, R9
// Round 60.
MOVL 36(SP), CX
XORL 16(SP), CX
XORL 56(SP), CX
XORL 48(SP), CX
ROLL $0x01, CX
MOVL CX, 48(SP)
MOVL R10, R12
ROLL $0x05, R12
MOVL R11, R15
XORL R9, R15
XORL R13, R15
ADDL R15, R12
ADDL R14, R12
ADDL $0xca62c1d6, R12
ADDL CX, R12
ROLL $0x1e, R11
// Round 61.
MOVL 40(SP), CX
XORL 20(SP), CX
XORL 60(SP), CX
XORL 52(SP), CX
ROLL $0x01, CX
MOVL CX, 52(SP)
MOVL R12, R14
ROLL $0x05, R14
MOVL R10, R15
XORL R11, R15
XORL R9, R15
ADDL R15, R14
ADDL R13, R14
ADDL $0xca62c1d6, R14
ADDL CX, R14
ROLL $0x1e, R10
// Round 62.
MOVL 44(SP), CX
XORL 24(SP), CX
XORL (SP), CX
XORL 56(SP), CX
ROLL $0x01, CX
MOVL CX, 56(SP)
MOVL R14, R13
ROLL $0x05, R13
MOVL R12, R15
XORL R10, R15
XORL R11, R15
ADDL R15, R13
ADDL R9, R13
ADDL $0xca62c1d6, R13
ADDL CX, R13
ROLL $0x1e, R12
// Round 63.
MOVL 48(SP), CX
XORL 28(SP), CX
XORL 4(SP), CX
XORL 60(SP), CX
ROLL $0x01, CX
MOVL CX, 60(SP)
MOVL R13, R9
ROLL $0x05, R9
MOVL R14, R15
XORL R12, R15
XORL R10, R15
ADDL R15, R9
ADDL R11, R9
ADDL $0xca62c1d6, R9
ADDL CX, R9
ROLL $0x1e, R14
// Round 64.
MOVL 52(SP), CX
XORL 32(SP), CX
XORL 8(SP), CX
XORL (SP), CX
ROLL $0x01, CX
MOVL CX, (SP)
MOVL R9, R11
ROLL $0x05, R11
MOVL R13, R15
XORL R14, R15
XORL R12, R15
ADDL R15, R11
ADDL R10, R11
ADDL $0xca62c1d6, R11
ADDL CX, R11
ROLL $0x1e, R13
// Round 65.
MOVL 56(SP), CX
XORL 36(SP), CX
XORL 12(SP), CX
XORL 4(SP), CX
ROLL $0x01, CX
MOVL CX, 4(SP)
MOVL R11, R10
ROLL $0x05, R10
MOVL R9, R15
XORL R13, R15
XORL R14, R15
ADDL R15, R10
ADDL R12, R10
ADDL $0xca62c1d6, R10
ADDL CX, R10
ROLL $0x1e, R9
// Round 66.
MOVL 60(SP), CX
XORL 40(SP), CX
XORL 16(SP), CX
XORL 8(SP), CX
ROLL $0x01, CX
MOVL CX, 8(SP)
MOVL R10, R12
ROLL $0x05, R12
MOVL R11, R15
XORL R9, R15
XORL R13, R15
ADDL R15, R12
ADDL R14, R12
ADDL $0xca62c1d6, R12
ADDL CX, R12
ROLL $0x1e, R11
// Round 67.
MOVL (SP), CX
XORL 44(SP), CX
XORL 20(SP), CX
XORL 12(SP), CX
ROLL $0x01, CX
MOVL CX, 12(SP)
MOVL R12, R14
ROLL $0x05, R14
MOVL R10, R15
XORL R11, R15
XORL R9, R15
ADDL R15, R14
ADDL R13, R14
ADDL $0xca62c1d6, R14
ADDL CX, R14
ROLL $0x1e, R10
// Round 68.
MOVL 4(SP), CX
XORL 48(SP), CX
XORL 24(SP), CX
XORL 16(SP), CX
ROLL $0x01, CX
MOVL CX, 16(SP)
MOVL R14, R13
ROLL $0x05, R13
MOVL R12, R15
XORL R10, R15
XORL R11, R15
ADDL R15, R13
ADDL R9, R13
ADDL $0xca62c1d6, R13
ADDL CX, R13
ROLL $0x1e, R12
// Round 69.
MOVL 8(SP), CX
XORL 52(SP), CX
XORL 28(SP), CX
XORL 20(SP), CX
ROLL $0x01, CX
MOVL CX, 20(SP)
MOVL R13, R9
ROLL $0x05, R9
MOVL R14, R15
XORL R12, R15
XORL R10, R15
ADDL R15, R9
ADDL R11, R9
ADDL $0xca62c1d6, R9
ADDL CX, R9
ROLL $0x1e, R14
// Round 70.
MOVL 12(SP), CX
XORL 56(SP), CX
XORL 32(SP), CX
XORL 24(SP), CX
ROLL $0x01, CX
MOVL CX, 24(SP)
MOVL R9, R11
ROLL $0x05, R11
MOVL R13, R15
XORL R14, R15
XORL R12, R15
ADDL R15, R11
ADDL R10, R11
ADDL $0xca62c1d6, R11
ADDL CX, R11
ROLL $0x1e, R13
// Round 71.
MOVL 16(SP), CX
XORL 60(SP), CX
XORL 36(SP), CX
XORL 28(SP), CX
ROLL $0x01, CX
MOVL CX, 28(SP)
MOVL R11, R10
ROLL $0x05, R10
MOVL R9, R15
XORL R13, R15
XORL R14, R15
ADDL R15, R10
ADDL R12, R10
ADDL $0xca62c1d6, R10
ADDL CX, R10
ROLL $0x1e, R9
// Round 72.
MOVL 20(SP), CX
XORL (SP), CX
XORL 40(SP), CX
XORL 32(SP), CX
ROLL $0x01, CX
MOVL CX, 32(SP)
MOVL R10, R12
ROLL $0x05, R12
MOVL R11, R15
XORL R9, R15
XORL R13, R15
ADDL R15, R12
ADDL R14, R12
ADDL $0xca62c1d6, R12
ADDL CX, R12
ROLL $0x1e, R11
// Round 73.
MOVL 24(SP), CX
XORL 4(SP), CX
XORL 44(SP), CX
XORL 36(SP), CX
ROLL $0x01, CX
MOVL CX, 36(SP)
MOVL R12, R14
ROLL $0x05, R14
MOVL R10, R15
XORL R11, R15
XORL R9, R15
ADDL R15, R14
ADDL R13, R14
ADDL $0xca62c1d6, R14
ADDL CX, R14
ROLL $0x1e, R10
// Round 74.
MOVL 28(SP), CX
XORL 8(SP), CX
XORL 48(SP), CX
XORL 40(SP), CX
ROLL $0x01, CX
MOVL CX, 40(SP)
MOVL R14, R13
ROLL $0x05, R13
MOVL R12, R15
XORL R10, R15
XORL R11, R15
ADDL R15, R13
ADDL R9, R13
ADDL $0xca62c1d6, R13
ADDL CX, R13
ROLL $0x1e, R12
// Round 75.
MOVL 32(SP), CX
XORL 12(SP), CX
XORL 52(SP), CX
XORL 44(SP), CX
ROLL $0x01, CX
MOVL CX, 44(SP)
MOVL R13, R9
ROLL $0x05, R9
MOVL R14, R15
XORL R12, R15
XORL R10, R15
ADDL R15, R9
ADDL R11, R9
ADDL $0xca62c1d6, R9
ADDL CX, R9
ROLL $0x1e, R14
// Round 76.
MOVL 36(SP), CX
XORL 16(SP), CX
XORL 56(SP), CX
XORL 48(SP), CX
ROLL $0x01, CX
MOVL CX, 48(SP)
MOVL R9, R11
ROLL $0x05, R11
MOVL R13, R15
XORL R14, R15
XORL R12, R15
ADDL R15, R11
ADDL R10, R11
ADDL $0xca62c1d6, R11
ADDL CX, R11
ROLL $0x1e, R13
// Round 77.
MOVL 40(SP), CX
XORL 20(SP), CX
XORL 60(SP), CX
XORL 52(SP), CX
ROLL $0x01, CX
MOVL CX, 52(SP)
MOVL R11, R10
ROLL $0x05, R10
MOVL R9, R15
XORL R13, R15
XORL R14, R15
ADDL R15, R10
ADDL R12, R10
ADDL $0xca62c1d6, R10
ADDL CX, R10
ROLL $0x1e, R9
// Round 78.
MOVL 44(SP), CX
XORL 24(SP), CX
XORL (SP), CX
XORL 56(SP), CX
ROLL $0x01, CX
MOVL CX, 56(SP)
MOVL R10, R12
ROLL $0x05, R12
MOVL R11, R15
XORL R9, R15
XORL R13, R15
ADDL R15, R12
ADDL R14, R12
ADDL $0xca62c1d6, R12
ADDL CX, R12
ROLL $0x1e, R11
// Round 79.
MOVL 48(SP), CX
XORL 28(SP), CX
XORL 4(SP), CX
XORL 60(SP), CX
ROLL $0x01, CX
MOVL CX, 60(SP)
MOVL R12, R14
ROLL $0x05, R14
MOVL R10, R15
XORL R11, R15
XORL R9, R15
ADDL R15, R14
ADDL R13, R14
ADDL $0xca62c1d6, R14
ADDL CX, R14
ROLL $0x1e, R10
// Final add.
ADDL R14, DX
ADDL R12, BX
ADDL R10, SI
ADDL R11, DI
ADDL R9, R8
// Store results back.
MOVL DX, (AX)
MOVL BX, 4(AX)
MOVL SI, 8(AX)
MOVL DI, 12(AX)
MOVL R8, 16(AX)
RET