Intended to address an asmdecl error. [amd64] Butterfly: use of unnamed argument 0(FP); offset 0 is x0+0(FP) Updates #24
1508 lines
22 KiB
ArmAsm
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), BP
|
|
MOVL 12(AX), SI
|
|
MOVL 16(AX), DI
|
|
|
|
// Initialize registers.
|
|
MOVL DX, R8
|
|
MOVL BX, R9
|
|
MOVL BP, R10
|
|
MOVL SI, R11
|
|
MOVL DI, R12
|
|
|
|
// Round 0.
|
|
MOVL (CX), R13
|
|
BSWAPL R13
|
|
MOVL R13, (SP)
|
|
MOVL R8, R14
|
|
ROLL $0x05, R14
|
|
MOVL R11, R15
|
|
XORL R10, R15
|
|
ANDL R9, R15
|
|
XORL R11, R15
|
|
ADDL R15, R14
|
|
ADDL R12, R14
|
|
ADDL $0x5a827999, R14
|
|
ADDL R13, R14
|
|
ROLL $0x1e, R9
|
|
|
|
// Round 1.
|
|
MOVL 4(CX), R12
|
|
BSWAPL R12
|
|
MOVL R12, 4(SP)
|
|
MOVL R14, R13
|
|
ROLL $0x05, R13
|
|
MOVL R10, R15
|
|
XORL R9, R15
|
|
ANDL R8, R15
|
|
XORL R10, R15
|
|
ADDL R15, R13
|
|
ADDL R11, R13
|
|
ADDL $0x5a827999, R13
|
|
ADDL R12, R13
|
|
ROLL $0x1e, R8
|
|
|
|
// Round 2.
|
|
MOVL 8(CX), R11
|
|
BSWAPL R11
|
|
MOVL R11, 8(SP)
|
|
MOVL R13, R12
|
|
ROLL $0x05, R12
|
|
MOVL R9, R15
|
|
XORL R8, R15
|
|
ANDL R14, R15
|
|
XORL R9, R15
|
|
ADDL R15, R12
|
|
ADDL R10, R12
|
|
ADDL $0x5a827999, R12
|
|
ADDL R11, R12
|
|
ROLL $0x1e, R14
|
|
|
|
// Round 3.
|
|
MOVL 12(CX), R10
|
|
BSWAPL R10
|
|
MOVL R10, 12(SP)
|
|
MOVL R12, R11
|
|
ROLL $0x05, R11
|
|
MOVL R8, R15
|
|
XORL R14, R15
|
|
ANDL R13, R15
|
|
XORL R8, R15
|
|
ADDL R15, R11
|
|
ADDL R9, R11
|
|
ADDL $0x5a827999, R11
|
|
ADDL R10, R11
|
|
ROLL $0x1e, R13
|
|
|
|
// Round 4.
|
|
MOVL 16(CX), R9
|
|
BSWAPL R9
|
|
MOVL R9, 16(SP)
|
|
MOVL R11, R10
|
|
ROLL $0x05, R10
|
|
MOVL R14, R15
|
|
XORL R13, R15
|
|
ANDL R12, R15
|
|
XORL R14, R15
|
|
ADDL R15, R10
|
|
ADDL R8, R10
|
|
ADDL $0x5a827999, R10
|
|
ADDL R9, R10
|
|
ROLL $0x1e, R12
|
|
|
|
// Round 5.
|
|
MOVL 20(CX), R8
|
|
BSWAPL R8
|
|
MOVL R8, 20(SP)
|
|
MOVL R10, R9
|
|
ROLL $0x05, R9
|
|
MOVL R13, R15
|
|
XORL R12, R15
|
|
ANDL R11, R15
|
|
XORL R13, R15
|
|
ADDL R15, R9
|
|
ADDL R14, R9
|
|
ADDL $0x5a827999, R9
|
|
ADDL R8, R9
|
|
ROLL $0x1e, R11
|
|
|
|
// Round 6.
|
|
MOVL 24(CX), R8
|
|
BSWAPL R8
|
|
MOVL R8, 24(SP)
|
|
MOVL R9, R14
|
|
ROLL $0x05, R14
|
|
MOVL R12, R15
|
|
XORL R11, R15
|
|
ANDL R10, R15
|
|
XORL R12, R15
|
|
ADDL R15, R14
|
|
ADDL R13, R14
|
|
ADDL $0x5a827999, R14
|
|
ADDL R8, R14
|
|
ROLL $0x1e, R10
|
|
|
|
// Round 7.
|
|
MOVL 28(CX), R8
|
|
BSWAPL R8
|
|
MOVL R8, 28(SP)
|
|
MOVL R14, R13
|
|
ROLL $0x05, R13
|
|
MOVL R11, R15
|
|
XORL R10, R15
|
|
ANDL R9, R15
|
|
XORL R11, R15
|
|
ADDL R15, R13
|
|
ADDL R12, R13
|
|
ADDL $0x5a827999, R13
|
|
ADDL R8, R13
|
|
ROLL $0x1e, R9
|
|
|
|
// Round 8.
|
|
MOVL 32(CX), R8
|
|
BSWAPL R8
|
|
MOVL R8, 32(SP)
|
|
MOVL R13, R12
|
|
ROLL $0x05, R12
|
|
MOVL R10, R15
|
|
XORL R9, R15
|
|
ANDL R14, R15
|
|
XORL R10, R15
|
|
ADDL R15, R12
|
|
ADDL R11, R12
|
|
ADDL $0x5a827999, R12
|
|
ADDL R8, R12
|
|
ROLL $0x1e, R14
|
|
|
|
// Round 9.
|
|
MOVL 36(CX), R8
|
|
BSWAPL R8
|
|
MOVL R8, 36(SP)
|
|
MOVL R12, R11
|
|
ROLL $0x05, R11
|
|
MOVL R9, R15
|
|
XORL R14, R15
|
|
ANDL R13, R15
|
|
XORL R9, R15
|
|
ADDL R15, R11
|
|
ADDL R10, R11
|
|
ADDL $0x5a827999, R11
|
|
ADDL R8, R11
|
|
ROLL $0x1e, R13
|
|
|
|
// Round 10.
|
|
MOVL 40(CX), R8
|
|
BSWAPL R8
|
|
MOVL R8, 40(SP)
|
|
MOVL R11, R10
|
|
ROLL $0x05, R10
|
|
MOVL R14, R15
|
|
XORL R13, R15
|
|
ANDL R12, R15
|
|
XORL R14, R15
|
|
ADDL R15, R10
|
|
ADDL R9, R10
|
|
ADDL $0x5a827999, R10
|
|
ADDL R8, R10
|
|
ROLL $0x1e, R12
|
|
|
|
// Round 11.
|
|
MOVL 44(CX), R8
|
|
BSWAPL R8
|
|
MOVL R8, 44(SP)
|
|
MOVL R10, R9
|
|
ROLL $0x05, R9
|
|
MOVL R13, R15
|
|
XORL R12, R15
|
|
ANDL R11, R15
|
|
XORL R13, R15
|
|
ADDL R15, R9
|
|
ADDL R14, R9
|
|
ADDL $0x5a827999, R9
|
|
ADDL R8, R9
|
|
ROLL $0x1e, R11
|
|
|
|
// Round 12.
|
|
MOVL 48(CX), R8
|
|
BSWAPL R8
|
|
MOVL R8, 48(SP)
|
|
MOVL R9, R14
|
|
ROLL $0x05, R14
|
|
MOVL R12, R15
|
|
XORL R11, R15
|
|
ANDL R10, R15
|
|
XORL R12, R15
|
|
ADDL R15, R14
|
|
ADDL R13, R14
|
|
ADDL $0x5a827999, R14
|
|
ADDL R8, R14
|
|
ROLL $0x1e, R10
|
|
|
|
// Round 13.
|
|
MOVL 52(CX), R8
|
|
BSWAPL R8
|
|
MOVL R8, 52(SP)
|
|
MOVL R14, R13
|
|
ROLL $0x05, R13
|
|
MOVL R11, R15
|
|
XORL R10, R15
|
|
ANDL R9, R15
|
|
XORL R11, R15
|
|
ADDL R15, R13
|
|
ADDL R12, R13
|
|
ADDL $0x5a827999, R13
|
|
ADDL R8, R13
|
|
ROLL $0x1e, R9
|
|
|
|
// Round 14.
|
|
MOVL 56(CX), R8
|
|
BSWAPL R8
|
|
MOVL R8, 56(SP)
|
|
MOVL R13, R12
|
|
ROLL $0x05, R12
|
|
MOVL R10, R15
|
|
XORL R9, R15
|
|
ANDL R14, R15
|
|
XORL R10, R15
|
|
ADDL R15, R12
|
|
ADDL R11, R12
|
|
ADDL $0x5a827999, R12
|
|
ADDL R8, R12
|
|
ROLL $0x1e, R14
|
|
|
|
// Round 15.
|
|
MOVL 60(CX), CX
|
|
BSWAPL CX
|
|
MOVL CX, 60(SP)
|
|
MOVL R12, R8
|
|
ROLL $0x05, R8
|
|
MOVL R9, R11
|
|
XORL R14, R11
|
|
ANDL R13, R11
|
|
XORL R9, R11
|
|
ADDL R11, R8
|
|
ADDL R10, R8
|
|
ADDL $0x5a827999, R8
|
|
ADDL CX, R8
|
|
ROLL $0x1e, R13
|
|
|
|
// Round 16.
|
|
MOVL 52(SP), CX
|
|
XORL 32(SP), CX
|
|
XORL 8(SP), CX
|
|
XORL (SP), CX
|
|
ROLL $0x01, CX
|
|
MOVL CX, (SP)
|
|
MOVL R8, R10
|
|
ROLL $0x05, R10
|
|
MOVL R14, R11
|
|
XORL R13, R11
|
|
ANDL R12, R11
|
|
XORL R14, R11
|
|
ADDL R11, R10
|
|
ADDL R9, R10
|
|
ADDL $0x5a827999, R10
|
|
ADDL CX, R10
|
|
ROLL $0x1e, R12
|
|
|
|
// 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 R10, R9
|
|
ROLL $0x05, R9
|
|
MOVL R13, R11
|
|
XORL R12, R11
|
|
ANDL R8, R11
|
|
XORL R13, R11
|
|
ADDL R11, R9
|
|
ADDL R14, R9
|
|
ADDL $0x5a827999, R9
|
|
ADDL CX, R9
|
|
ROLL $0x1e, R8
|
|
|
|
// 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 R9, R11
|
|
ROLL $0x05, R11
|
|
MOVL R12, R14
|
|
XORL R8, R14
|
|
ANDL R10, R14
|
|
XORL R12, R14
|
|
ADDL R14, R11
|
|
ADDL R13, R11
|
|
ADDL $0x5a827999, R11
|
|
ADDL CX, R11
|
|
ROLL $0x1e, R10
|
|
|
|
// 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 R11, R13
|
|
ROLL $0x05, R13
|
|
MOVL R8, R14
|
|
XORL R10, R14
|
|
ANDL R9, R14
|
|
XORL R8, R14
|
|
ADDL R14, R13
|
|
ADDL R12, R13
|
|
ADDL $0x5a827999, R13
|
|
ADDL CX, R13
|
|
ROLL $0x1e, R9
|
|
|
|
// 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 R13, R12
|
|
ROLL $0x05, R12
|
|
MOVL R11, R14
|
|
XORL R9, R14
|
|
XORL R10, R14
|
|
ADDL R14, R12
|
|
ADDL R8, R12
|
|
ADDL $0x6ed9eba1, R12
|
|
ADDL CX, R12
|
|
ROLL $0x1e, R11
|
|
|
|
// 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 R12, R8
|
|
ROLL $0x05, R8
|
|
MOVL R13, R14
|
|
XORL R11, R14
|
|
XORL R9, R14
|
|
ADDL R14, R8
|
|
ADDL R10, R8
|
|
ADDL $0x6ed9eba1, R8
|
|
ADDL CX, R8
|
|
ROLL $0x1e, R13
|
|
|
|
// 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 R8, R10
|
|
ROLL $0x05, R10
|
|
MOVL R12, R14
|
|
XORL R13, R14
|
|
XORL R11, R14
|
|
ADDL R14, R10
|
|
ADDL R9, R10
|
|
ADDL $0x6ed9eba1, R10
|
|
ADDL CX, R10
|
|
ROLL $0x1e, R12
|
|
|
|
// 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 R10, R9
|
|
ROLL $0x05, R9
|
|
MOVL R8, R14
|
|
XORL R12, R14
|
|
XORL R13, R14
|
|
ADDL R14, R9
|
|
ADDL R11, R9
|
|
ADDL $0x6ed9eba1, R9
|
|
ADDL CX, R9
|
|
ROLL $0x1e, R8
|
|
|
|
// 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 R9, R11
|
|
ROLL $0x05, R11
|
|
MOVL R10, R14
|
|
XORL R8, R14
|
|
XORL R12, R14
|
|
ADDL R14, R11
|
|
ADDL R13, R11
|
|
ADDL $0x6ed9eba1, R11
|
|
ADDL CX, R11
|
|
ROLL $0x1e, R10
|
|
|
|
// 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 R11, R13
|
|
ROLL $0x05, R13
|
|
MOVL R9, R14
|
|
XORL R10, R14
|
|
XORL R8, R14
|
|
ADDL R14, R13
|
|
ADDL R12, R13
|
|
ADDL $0x6ed9eba1, R13
|
|
ADDL CX, R13
|
|
ROLL $0x1e, R9
|
|
|
|
// 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 R13, R12
|
|
ROLL $0x05, R12
|
|
MOVL R11, R14
|
|
XORL R9, R14
|
|
XORL R10, R14
|
|
ADDL R14, R12
|
|
ADDL R8, R12
|
|
ADDL $0x6ed9eba1, R12
|
|
ADDL CX, R12
|
|
ROLL $0x1e, R11
|
|
|
|
// 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 R12, R8
|
|
ROLL $0x05, R8
|
|
MOVL R13, R14
|
|
XORL R11, R14
|
|
XORL R9, R14
|
|
ADDL R14, R8
|
|
ADDL R10, R8
|
|
ADDL $0x6ed9eba1, R8
|
|
ADDL CX, R8
|
|
ROLL $0x1e, R13
|
|
|
|
// 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 R8, R10
|
|
ROLL $0x05, R10
|
|
MOVL R12, R14
|
|
XORL R13, R14
|
|
XORL R11, R14
|
|
ADDL R14, R10
|
|
ADDL R9, R10
|
|
ADDL $0x6ed9eba1, R10
|
|
ADDL CX, R10
|
|
ROLL $0x1e, R12
|
|
|
|
// 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 R10, R9
|
|
ROLL $0x05, R9
|
|
MOVL R8, R14
|
|
XORL R12, R14
|
|
XORL R13, R14
|
|
ADDL R14, R9
|
|
ADDL R11, R9
|
|
ADDL $0x6ed9eba1, R9
|
|
ADDL CX, R9
|
|
ROLL $0x1e, R8
|
|
|
|
// 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 R9, R11
|
|
ROLL $0x05, R11
|
|
MOVL R10, R14
|
|
XORL R8, R14
|
|
XORL R12, R14
|
|
ADDL R14, R11
|
|
ADDL R13, R11
|
|
ADDL $0x6ed9eba1, R11
|
|
ADDL CX, R11
|
|
ROLL $0x1e, R10
|
|
|
|
// 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 R11, R13
|
|
ROLL $0x05, R13
|
|
MOVL R9, R14
|
|
XORL R10, R14
|
|
XORL R8, R14
|
|
ADDL R14, R13
|
|
ADDL R12, R13
|
|
ADDL $0x6ed9eba1, R13
|
|
ADDL CX, R13
|
|
ROLL $0x1e, R9
|
|
|
|
// Round 32.
|
|
MOVL 52(SP), CX
|
|
XORL 32(SP), CX
|
|
XORL 8(SP), CX
|
|
XORL (SP), CX
|
|
ROLL $0x01, CX
|
|
MOVL CX, (SP)
|
|
MOVL R13, R12
|
|
ROLL $0x05, R12
|
|
MOVL R11, R14
|
|
XORL R9, R14
|
|
XORL R10, R14
|
|
ADDL R14, R12
|
|
ADDL R8, R12
|
|
ADDL $0x6ed9eba1, R12
|
|
ADDL CX, R12
|
|
ROLL $0x1e, R11
|
|
|
|
// 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 R12, R8
|
|
ROLL $0x05, R8
|
|
MOVL R13, R14
|
|
XORL R11, R14
|
|
XORL R9, R14
|
|
ADDL R14, R8
|
|
ADDL R10, R8
|
|
ADDL $0x6ed9eba1, R8
|
|
ADDL CX, R8
|
|
ROLL $0x1e, R13
|
|
|
|
// 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 R8, R10
|
|
ROLL $0x05, R10
|
|
MOVL R12, R14
|
|
XORL R13, R14
|
|
XORL R11, R14
|
|
ADDL R14, R10
|
|
ADDL R9, R10
|
|
ADDL $0x6ed9eba1, R10
|
|
ADDL CX, R10
|
|
ROLL $0x1e, R12
|
|
|
|
// 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 R10, R9
|
|
ROLL $0x05, R9
|
|
MOVL R8, R14
|
|
XORL R12, R14
|
|
XORL R13, R14
|
|
ADDL R14, R9
|
|
ADDL R11, R9
|
|
ADDL $0x6ed9eba1, R9
|
|
ADDL CX, R9
|
|
ROLL $0x1e, R8
|
|
|
|
// 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 R9, R11
|
|
ROLL $0x05, R11
|
|
MOVL R10, R14
|
|
XORL R8, R14
|
|
XORL R12, R14
|
|
ADDL R14, R11
|
|
ADDL R13, R11
|
|
ADDL $0x6ed9eba1, R11
|
|
ADDL CX, R11
|
|
ROLL $0x1e, R10
|
|
|
|
// 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 R11, R13
|
|
ROLL $0x05, R13
|
|
MOVL R9, R14
|
|
XORL R10, R14
|
|
XORL R8, R14
|
|
ADDL R14, R13
|
|
ADDL R12, R13
|
|
ADDL $0x6ed9eba1, R13
|
|
ADDL CX, R13
|
|
ROLL $0x1e, R9
|
|
|
|
// 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 R13, R12
|
|
ROLL $0x05, R12
|
|
MOVL R11, R14
|
|
XORL R9, R14
|
|
XORL R10, R14
|
|
ADDL R14, R12
|
|
ADDL R8, R12
|
|
ADDL $0x6ed9eba1, R12
|
|
ADDL CX, R12
|
|
ROLL $0x1e, R11
|
|
|
|
// 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 R12, R8
|
|
ROLL $0x05, R8
|
|
MOVL R13, R14
|
|
XORL R11, R14
|
|
XORL R9, R14
|
|
ADDL R14, R8
|
|
ADDL R10, R8
|
|
ADDL $0x6ed9eba1, R8
|
|
ADDL CX, R8
|
|
ROLL $0x1e, R13
|
|
|
|
// 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 R8, R10
|
|
ROLL $0x05, R10
|
|
MOVL R12, R14
|
|
ORL R13, R14
|
|
ANDL R11, R14
|
|
MOVL R12, R15
|
|
ANDL R13, R15
|
|
ORL R14, R15
|
|
ADDL R15, R10
|
|
ADDL R9, R10
|
|
ADDL $0x8f1bbcdc, R10
|
|
ADDL CX, R10
|
|
ROLL $0x1e, R12
|
|
|
|
// 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 R10, R9
|
|
ROLL $0x05, R9
|
|
MOVL R8, R14
|
|
ORL R12, R14
|
|
ANDL R13, R14
|
|
MOVL R8, R15
|
|
ANDL R12, R15
|
|
ORL R14, R15
|
|
ADDL R15, R9
|
|
ADDL R11, R9
|
|
ADDL $0x8f1bbcdc, R9
|
|
ADDL CX, R9
|
|
ROLL $0x1e, R8
|
|
|
|
// 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 R9, R11
|
|
ROLL $0x05, R11
|
|
MOVL R10, R14
|
|
ORL R8, R14
|
|
ANDL R12, R14
|
|
MOVL R10, R15
|
|
ANDL R8, R15
|
|
ORL R14, R15
|
|
ADDL R15, R11
|
|
ADDL R13, R11
|
|
ADDL $0x8f1bbcdc, R11
|
|
ADDL CX, R11
|
|
ROLL $0x1e, R10
|
|
|
|
// 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 R11, R13
|
|
ROLL $0x05, R13
|
|
MOVL R9, R14
|
|
ORL R10, R14
|
|
ANDL R8, R14
|
|
MOVL R9, R15
|
|
ANDL R10, R15
|
|
ORL R14, R15
|
|
ADDL R15, R13
|
|
ADDL R12, R13
|
|
ADDL $0x8f1bbcdc, R13
|
|
ADDL CX, R13
|
|
ROLL $0x1e, R9
|
|
|
|
// 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 R13, R12
|
|
ROLL $0x05, R12
|
|
MOVL R11, R14
|
|
ORL R9, R14
|
|
ANDL R10, R14
|
|
MOVL R11, R15
|
|
ANDL R9, R15
|
|
ORL R14, R15
|
|
ADDL R15, R12
|
|
ADDL R8, R12
|
|
ADDL $0x8f1bbcdc, R12
|
|
ADDL CX, R12
|
|
ROLL $0x1e, R11
|
|
|
|
// 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 R12, R8
|
|
ROLL $0x05, R8
|
|
MOVL R13, R14
|
|
ORL R11, R14
|
|
ANDL R9, R14
|
|
MOVL R13, R15
|
|
ANDL R11, R15
|
|
ORL R14, R15
|
|
ADDL R15, R8
|
|
ADDL R10, R8
|
|
ADDL $0x8f1bbcdc, R8
|
|
ADDL CX, R8
|
|
ROLL $0x1e, R13
|
|
|
|
// 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 R8, R10
|
|
ROLL $0x05, R10
|
|
MOVL R12, R14
|
|
ORL R13, R14
|
|
ANDL R11, R14
|
|
MOVL R12, R15
|
|
ANDL R13, R15
|
|
ORL R14, R15
|
|
ADDL R15, R10
|
|
ADDL R9, R10
|
|
ADDL $0x8f1bbcdc, R10
|
|
ADDL CX, R10
|
|
ROLL $0x1e, R12
|
|
|
|
// 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 R10, R9
|
|
ROLL $0x05, R9
|
|
MOVL R8, R14
|
|
ORL R12, R14
|
|
ANDL R13, R14
|
|
MOVL R8, R15
|
|
ANDL R12, R15
|
|
ORL R14, R15
|
|
ADDL R15, R9
|
|
ADDL R11, R9
|
|
ADDL $0x8f1bbcdc, R9
|
|
ADDL CX, R9
|
|
ROLL $0x1e, R8
|
|
|
|
// Round 48.
|
|
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 R10, R14
|
|
ORL R8, R14
|
|
ANDL R12, R14
|
|
MOVL R10, R15
|
|
ANDL R8, R15
|
|
ORL R14, R15
|
|
ADDL R15, R11
|
|
ADDL R13, R11
|
|
ADDL $0x8f1bbcdc, R11
|
|
ADDL CX, R11
|
|
ROLL $0x1e, R10
|
|
|
|
// 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 R11, R13
|
|
ROLL $0x05, R13
|
|
MOVL R9, R14
|
|
ORL R10, R14
|
|
ANDL R8, R14
|
|
MOVL R9, R15
|
|
ANDL R10, R15
|
|
ORL R14, R15
|
|
ADDL R15, R13
|
|
ADDL R12, R13
|
|
ADDL $0x8f1bbcdc, R13
|
|
ADDL CX, R13
|
|
ROLL $0x1e, R9
|
|
|
|
// 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 R13, R12
|
|
ROLL $0x05, R12
|
|
MOVL R11, R14
|
|
ORL R9, R14
|
|
ANDL R10, R14
|
|
MOVL R11, R15
|
|
ANDL R9, R15
|
|
ORL R14, R15
|
|
ADDL R15, R12
|
|
ADDL R8, R12
|
|
ADDL $0x8f1bbcdc, R12
|
|
ADDL CX, R12
|
|
ROLL $0x1e, R11
|
|
|
|
// 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 R12, R8
|
|
ROLL $0x05, R8
|
|
MOVL R13, R14
|
|
ORL R11, R14
|
|
ANDL R9, R14
|
|
MOVL R13, R15
|
|
ANDL R11, R15
|
|
ORL R14, R15
|
|
ADDL R15, R8
|
|
ADDL R10, R8
|
|
ADDL $0x8f1bbcdc, R8
|
|
ADDL CX, R8
|
|
ROLL $0x1e, R13
|
|
|
|
// 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 R8, R10
|
|
ROLL $0x05, R10
|
|
MOVL R12, R14
|
|
ORL R13, R14
|
|
ANDL R11, R14
|
|
MOVL R12, R15
|
|
ANDL R13, R15
|
|
ORL R14, R15
|
|
ADDL R15, R10
|
|
ADDL R9, R10
|
|
ADDL $0x8f1bbcdc, R10
|
|
ADDL CX, R10
|
|
ROLL $0x1e, R12
|
|
|
|
// 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 R10, R9
|
|
ROLL $0x05, R9
|
|
MOVL R8, R14
|
|
ORL R12, R14
|
|
ANDL R13, R14
|
|
MOVL R8, R15
|
|
ANDL R12, R15
|
|
ORL R14, R15
|
|
ADDL R15, R9
|
|
ADDL R11, R9
|
|
ADDL $0x8f1bbcdc, R9
|
|
ADDL CX, R9
|
|
ROLL $0x1e, R8
|
|
|
|
// 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 R9, R11
|
|
ROLL $0x05, R11
|
|
MOVL R10, R14
|
|
ORL R8, R14
|
|
ANDL R12, R14
|
|
MOVL R10, R15
|
|
ANDL R8, R15
|
|
ORL R14, R15
|
|
ADDL R15, R11
|
|
ADDL R13, R11
|
|
ADDL $0x8f1bbcdc, R11
|
|
ADDL CX, R11
|
|
ROLL $0x1e, R10
|
|
|
|
// 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 R11, R13
|
|
ROLL $0x05, R13
|
|
MOVL R9, R14
|
|
ORL R10, R14
|
|
ANDL R8, R14
|
|
MOVL R9, R15
|
|
ANDL R10, R15
|
|
ORL R14, R15
|
|
ADDL R15, R13
|
|
ADDL R12, R13
|
|
ADDL $0x8f1bbcdc, R13
|
|
ADDL CX, R13
|
|
ROLL $0x1e, R9
|
|
|
|
// 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 R13, R12
|
|
ROLL $0x05, R12
|
|
MOVL R11, R14
|
|
ORL R9, R14
|
|
ANDL R10, R14
|
|
MOVL R11, R15
|
|
ANDL R9, R15
|
|
ORL R14, R15
|
|
ADDL R15, R12
|
|
ADDL R8, R12
|
|
ADDL $0x8f1bbcdc, R12
|
|
ADDL CX, R12
|
|
ROLL $0x1e, R11
|
|
|
|
// 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 R12, R8
|
|
ROLL $0x05, R8
|
|
MOVL R13, R14
|
|
ORL R11, R14
|
|
ANDL R9, R14
|
|
MOVL R13, R15
|
|
ANDL R11, R15
|
|
ORL R14, R15
|
|
ADDL R15, R8
|
|
ADDL R10, R8
|
|
ADDL $0x8f1bbcdc, R8
|
|
ADDL CX, R8
|
|
ROLL $0x1e, R13
|
|
|
|
// 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 R8, R10
|
|
ROLL $0x05, R10
|
|
MOVL R12, R14
|
|
ORL R13, R14
|
|
ANDL R11, R14
|
|
MOVL R12, R15
|
|
ANDL R13, R15
|
|
ORL R14, R15
|
|
ADDL R15, R10
|
|
ADDL R9, R10
|
|
ADDL $0x8f1bbcdc, R10
|
|
ADDL CX, R10
|
|
ROLL $0x1e, R12
|
|
|
|
// 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 R10, R9
|
|
ROLL $0x05, R9
|
|
MOVL R8, R14
|
|
ORL R12, R14
|
|
ANDL R13, R14
|
|
MOVL R8, R15
|
|
ANDL R12, R15
|
|
ORL R14, R15
|
|
ADDL R15, R9
|
|
ADDL R11, R9
|
|
ADDL $0x8f1bbcdc, R9
|
|
ADDL CX, R9
|
|
ROLL $0x1e, R8
|
|
|
|
// 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 R9, R11
|
|
ROLL $0x05, R11
|
|
MOVL R10, R14
|
|
XORL R8, R14
|
|
XORL R12, R14
|
|
ADDL R14, R11
|
|
ADDL R13, R11
|
|
ADDL $0xca62c1d6, R11
|
|
ADDL CX, R11
|
|
ROLL $0x1e, R10
|
|
|
|
// 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 R11, R13
|
|
ROLL $0x05, R13
|
|
MOVL R9, R14
|
|
XORL R10, R14
|
|
XORL R8, R14
|
|
ADDL R14, R13
|
|
ADDL R12, R13
|
|
ADDL $0xca62c1d6, R13
|
|
ADDL CX, R13
|
|
ROLL $0x1e, R9
|
|
|
|
// 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 R13, R12
|
|
ROLL $0x05, R12
|
|
MOVL R11, R14
|
|
XORL R9, R14
|
|
XORL R10, R14
|
|
ADDL R14, R12
|
|
ADDL R8, R12
|
|
ADDL $0xca62c1d6, R12
|
|
ADDL CX, R12
|
|
ROLL $0x1e, R11
|
|
|
|
// 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 R12, R8
|
|
ROLL $0x05, R8
|
|
MOVL R13, R14
|
|
XORL R11, R14
|
|
XORL R9, R14
|
|
ADDL R14, R8
|
|
ADDL R10, R8
|
|
ADDL $0xca62c1d6, R8
|
|
ADDL CX, R8
|
|
ROLL $0x1e, R13
|
|
|
|
// Round 64.
|
|
MOVL 52(SP), CX
|
|
XORL 32(SP), CX
|
|
XORL 8(SP), CX
|
|
XORL (SP), CX
|
|
ROLL $0x01, CX
|
|
MOVL CX, (SP)
|
|
MOVL R8, R10
|
|
ROLL $0x05, R10
|
|
MOVL R12, R14
|
|
XORL R13, R14
|
|
XORL R11, R14
|
|
ADDL R14, R10
|
|
ADDL R9, R10
|
|
ADDL $0xca62c1d6, R10
|
|
ADDL CX, R10
|
|
ROLL $0x1e, R12
|
|
|
|
// 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 R10, R9
|
|
ROLL $0x05, R9
|
|
MOVL R8, R14
|
|
XORL R12, R14
|
|
XORL R13, R14
|
|
ADDL R14, R9
|
|
ADDL R11, R9
|
|
ADDL $0xca62c1d6, R9
|
|
ADDL CX, R9
|
|
ROLL $0x1e, R8
|
|
|
|
// 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 R9, R11
|
|
ROLL $0x05, R11
|
|
MOVL R10, R14
|
|
XORL R8, R14
|
|
XORL R12, R14
|
|
ADDL R14, R11
|
|
ADDL R13, R11
|
|
ADDL $0xca62c1d6, R11
|
|
ADDL CX, R11
|
|
ROLL $0x1e, R10
|
|
|
|
// 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 R11, R13
|
|
ROLL $0x05, R13
|
|
MOVL R9, R14
|
|
XORL R10, R14
|
|
XORL R8, R14
|
|
ADDL R14, R13
|
|
ADDL R12, R13
|
|
ADDL $0xca62c1d6, R13
|
|
ADDL CX, R13
|
|
ROLL $0x1e, R9
|
|
|
|
// 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 R13, R12
|
|
ROLL $0x05, R12
|
|
MOVL R11, R14
|
|
XORL R9, R14
|
|
XORL R10, R14
|
|
ADDL R14, R12
|
|
ADDL R8, R12
|
|
ADDL $0xca62c1d6, R12
|
|
ADDL CX, R12
|
|
ROLL $0x1e, R11
|
|
|
|
// 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 R12, R8
|
|
ROLL $0x05, R8
|
|
MOVL R13, R14
|
|
XORL R11, R14
|
|
XORL R9, R14
|
|
ADDL R14, R8
|
|
ADDL R10, R8
|
|
ADDL $0xca62c1d6, R8
|
|
ADDL CX, R8
|
|
ROLL $0x1e, R13
|
|
|
|
// 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 R8, R10
|
|
ROLL $0x05, R10
|
|
MOVL R12, R14
|
|
XORL R13, R14
|
|
XORL R11, R14
|
|
ADDL R14, R10
|
|
ADDL R9, R10
|
|
ADDL $0xca62c1d6, R10
|
|
ADDL CX, R10
|
|
ROLL $0x1e, R12
|
|
|
|
// 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 R10, R9
|
|
ROLL $0x05, R9
|
|
MOVL R8, R14
|
|
XORL R12, R14
|
|
XORL R13, R14
|
|
ADDL R14, R9
|
|
ADDL R11, R9
|
|
ADDL $0xca62c1d6, R9
|
|
ADDL CX, R9
|
|
ROLL $0x1e, R8
|
|
|
|
// 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 R9, R11
|
|
ROLL $0x05, R11
|
|
MOVL R10, R14
|
|
XORL R8, R14
|
|
XORL R12, R14
|
|
ADDL R14, R11
|
|
ADDL R13, R11
|
|
ADDL $0xca62c1d6, R11
|
|
ADDL CX, R11
|
|
ROLL $0x1e, R10
|
|
|
|
// 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 R11, R13
|
|
ROLL $0x05, R13
|
|
MOVL R9, R14
|
|
XORL R10, R14
|
|
XORL R8, R14
|
|
ADDL R14, R13
|
|
ADDL R12, R13
|
|
ADDL $0xca62c1d6, R13
|
|
ADDL CX, R13
|
|
ROLL $0x1e, R9
|
|
|
|
// 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 R13, R12
|
|
ROLL $0x05, R12
|
|
MOVL R11, R14
|
|
XORL R9, R14
|
|
XORL R10, R14
|
|
ADDL R14, R12
|
|
ADDL R8, R12
|
|
ADDL $0xca62c1d6, R12
|
|
ADDL CX, R12
|
|
ROLL $0x1e, R11
|
|
|
|
// 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 R12, R8
|
|
ROLL $0x05, R8
|
|
MOVL R13, R14
|
|
XORL R11, R14
|
|
XORL R9, R14
|
|
ADDL R14, R8
|
|
ADDL R10, R8
|
|
ADDL $0xca62c1d6, R8
|
|
ADDL CX, R8
|
|
ROLL $0x1e, R13
|
|
|
|
// 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 R8, R10
|
|
ROLL $0x05, R10
|
|
MOVL R12, R14
|
|
XORL R13, R14
|
|
XORL R11, R14
|
|
ADDL R14, R10
|
|
ADDL R9, R10
|
|
ADDL $0xca62c1d6, R10
|
|
ADDL CX, R10
|
|
ROLL $0x1e, R12
|
|
|
|
// 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 R10, R9
|
|
ROLL $0x05, R9
|
|
MOVL R8, R14
|
|
XORL R12, R14
|
|
XORL R13, R14
|
|
ADDL R14, R9
|
|
ADDL R11, R9
|
|
ADDL $0xca62c1d6, R9
|
|
ADDL CX, R9
|
|
ROLL $0x1e, R8
|
|
|
|
// 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 R9, R11
|
|
ROLL $0x05, R11
|
|
MOVL R10, R14
|
|
XORL R8, R14
|
|
XORL R12, R14
|
|
ADDL R14, R11
|
|
ADDL R13, R11
|
|
ADDL $0xca62c1d6, R11
|
|
ADDL CX, R11
|
|
ROLL $0x1e, R10
|
|
|
|
// 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 R11, R13
|
|
ROLL $0x05, R13
|
|
MOVL R9, R14
|
|
XORL R10, R14
|
|
XORL R8, R14
|
|
ADDL R14, R13
|
|
ADDL R12, R13
|
|
ADDL $0xca62c1d6, R13
|
|
ADDL CX, R13
|
|
ROLL $0x1e, R9
|
|
|
|
// Final add.
|
|
ADDL R13, DX
|
|
ADDL R11, BX
|
|
ADDL R9, BP
|
|
ADDL R10, SI
|
|
ADDL R8, DI
|
|
|
|
// Store results back.
|
|
MOVL DX, (AX)
|
|
MOVL BX, 4(AX)
|
|
MOVL BP, 8(AX)
|
|
MOVL SI, 12(AX)
|
|
MOVL DI, 16(AX)
|
|
RET
|