mirror of
https://github.com/42wim/matterbridge
synced 2024-11-03 15:40:24 +00:00
715 lines
10 KiB
ArmAsm
715 lines
10 KiB
ArmAsm
// Code generated by command: go run gen.go -out ../md5block_amd64.s -stubs ../md5block_amd64.go -pkg=md5simd. DO NOT EDIT.
|
|
|
|
// +build !appengine
|
|
// +build !noasm
|
|
// +build gc
|
|
|
|
// func blockScalar(dig *[4]uint32, p []byte)
|
|
TEXT ·blockScalar(SB), $0-32
|
|
MOVQ p_len+16(FP), AX
|
|
MOVQ dig+0(FP), CX
|
|
MOVQ p_base+8(FP), DX
|
|
SHRQ $0x06, AX
|
|
SHLQ $0x06, AX
|
|
LEAQ (DX)(AX*1), AX
|
|
CMPQ DX, AX
|
|
JEQ end
|
|
MOVL (CX), BX
|
|
MOVL 4(CX), BP
|
|
MOVL 8(CX), SI
|
|
MOVL 12(CX), CX
|
|
MOVL $0xffffffff, DI
|
|
|
|
loop:
|
|
MOVL (DX), R8
|
|
MOVL CX, R9
|
|
MOVL BX, R10
|
|
MOVL BP, R11
|
|
MOVL SI, R12
|
|
MOVL CX, R13
|
|
|
|
// ROUND1
|
|
XORL SI, R9
|
|
ADDL $0xd76aa478, BX
|
|
ADDL R8, BX
|
|
ANDL BP, R9
|
|
XORL CX, R9
|
|
MOVL 4(DX), R8
|
|
ADDL R9, BX
|
|
ROLL $0x07, BX
|
|
MOVL SI, R9
|
|
ADDL BP, BX
|
|
XORL BP, R9
|
|
ADDL $0xe8c7b756, CX
|
|
ADDL R8, CX
|
|
ANDL BX, R9
|
|
XORL SI, R9
|
|
MOVL 8(DX), R8
|
|
ADDL R9, CX
|
|
ROLL $0x0c, CX
|
|
MOVL BP, R9
|
|
ADDL BX, CX
|
|
XORL BX, R9
|
|
ADDL $0x242070db, SI
|
|
ADDL R8, SI
|
|
ANDL CX, R9
|
|
XORL BP, R9
|
|
MOVL 12(DX), R8
|
|
ADDL R9, SI
|
|
ROLL $0x11, SI
|
|
MOVL BX, R9
|
|
ADDL CX, SI
|
|
XORL CX, R9
|
|
ADDL $0xc1bdceee, BP
|
|
ADDL R8, BP
|
|
ANDL SI, R9
|
|
XORL BX, R9
|
|
MOVL 16(DX), R8
|
|
ADDL R9, BP
|
|
ROLL $0x16, BP
|
|
MOVL CX, R9
|
|
ADDL SI, BP
|
|
XORL SI, R9
|
|
ADDL $0xf57c0faf, BX
|
|
ADDL R8, BX
|
|
ANDL BP, R9
|
|
XORL CX, R9
|
|
MOVL 20(DX), R8
|
|
ADDL R9, BX
|
|
ROLL $0x07, BX
|
|
MOVL SI, R9
|
|
ADDL BP, BX
|
|
XORL BP, R9
|
|
ADDL $0x4787c62a, CX
|
|
ADDL R8, CX
|
|
ANDL BX, R9
|
|
XORL SI, R9
|
|
MOVL 24(DX), R8
|
|
ADDL R9, CX
|
|
ROLL $0x0c, CX
|
|
MOVL BP, R9
|
|
ADDL BX, CX
|
|
XORL BX, R9
|
|
ADDL $0xa8304613, SI
|
|
ADDL R8, SI
|
|
ANDL CX, R9
|
|
XORL BP, R9
|
|
MOVL 28(DX), R8
|
|
ADDL R9, SI
|
|
ROLL $0x11, SI
|
|
MOVL BX, R9
|
|
ADDL CX, SI
|
|
XORL CX, R9
|
|
ADDL $0xfd469501, BP
|
|
ADDL R8, BP
|
|
ANDL SI, R9
|
|
XORL BX, R9
|
|
MOVL 32(DX), R8
|
|
ADDL R9, BP
|
|
ROLL $0x16, BP
|
|
MOVL CX, R9
|
|
ADDL SI, BP
|
|
XORL SI, R9
|
|
ADDL $0x698098d8, BX
|
|
ADDL R8, BX
|
|
ANDL BP, R9
|
|
XORL CX, R9
|
|
MOVL 36(DX), R8
|
|
ADDL R9, BX
|
|
ROLL $0x07, BX
|
|
MOVL SI, R9
|
|
ADDL BP, BX
|
|
XORL BP, R9
|
|
ADDL $0x8b44f7af, CX
|
|
ADDL R8, CX
|
|
ANDL BX, R9
|
|
XORL SI, R9
|
|
MOVL 40(DX), R8
|
|
ADDL R9, CX
|
|
ROLL $0x0c, CX
|
|
MOVL BP, R9
|
|
ADDL BX, CX
|
|
XORL BX, R9
|
|
ADDL $0xffff5bb1, SI
|
|
ADDL R8, SI
|
|
ANDL CX, R9
|
|
XORL BP, R9
|
|
MOVL 44(DX), R8
|
|
ADDL R9, SI
|
|
ROLL $0x11, SI
|
|
MOVL BX, R9
|
|
ADDL CX, SI
|
|
XORL CX, R9
|
|
ADDL $0x895cd7be, BP
|
|
ADDL R8, BP
|
|
ANDL SI, R9
|
|
XORL BX, R9
|
|
MOVL 48(DX), R8
|
|
ADDL R9, BP
|
|
ROLL $0x16, BP
|
|
MOVL CX, R9
|
|
ADDL SI, BP
|
|
XORL SI, R9
|
|
ADDL $0x6b901122, BX
|
|
ADDL R8, BX
|
|
ANDL BP, R9
|
|
XORL CX, R9
|
|
MOVL 52(DX), R8
|
|
ADDL R9, BX
|
|
ROLL $0x07, BX
|
|
MOVL SI, R9
|
|
ADDL BP, BX
|
|
XORL BP, R9
|
|
ADDL $0xfd987193, CX
|
|
ADDL R8, CX
|
|
ANDL BX, R9
|
|
XORL SI, R9
|
|
MOVL 56(DX), R8
|
|
ADDL R9, CX
|
|
ROLL $0x0c, CX
|
|
MOVL BP, R9
|
|
ADDL BX, CX
|
|
XORL BX, R9
|
|
ADDL $0xa679438e, SI
|
|
ADDL R8, SI
|
|
ANDL CX, R9
|
|
XORL BP, R9
|
|
MOVL 60(DX), R8
|
|
ADDL R9, SI
|
|
ROLL $0x11, SI
|
|
MOVL BX, R9
|
|
ADDL CX, SI
|
|
XORL CX, R9
|
|
ADDL $0x49b40821, BP
|
|
ADDL R8, BP
|
|
ANDL SI, R9
|
|
XORL BX, R9
|
|
MOVL 4(DX), R8
|
|
ADDL R9, BP
|
|
ROLL $0x16, BP
|
|
MOVL CX, R9
|
|
ADDL SI, BP
|
|
|
|
// ROUND2
|
|
MOVL CX, R9
|
|
MOVL CX, R14
|
|
XORL DI, R9
|
|
ADDL $0xf61e2562, BX
|
|
ADDL R8, BX
|
|
ANDL BP, R14
|
|
ANDL SI, R9
|
|
MOVL 24(DX), R8
|
|
ORL R9, R14
|
|
MOVL SI, R9
|
|
ADDL R14, BX
|
|
MOVL SI, R14
|
|
ROLL $0x05, BX
|
|
ADDL BP, BX
|
|
XORL DI, R9
|
|
ADDL $0xc040b340, CX
|
|
ADDL R8, CX
|
|
ANDL BX, R14
|
|
ANDL BP, R9
|
|
MOVL 44(DX), R8
|
|
ORL R9, R14
|
|
MOVL BP, R9
|
|
ADDL R14, CX
|
|
MOVL BP, R14
|
|
ROLL $0x09, CX
|
|
ADDL BX, CX
|
|
XORL DI, R9
|
|
ADDL $0x265e5a51, SI
|
|
ADDL R8, SI
|
|
ANDL CX, R14
|
|
ANDL BX, R9
|
|
MOVL (DX), R8
|
|
ORL R9, R14
|
|
MOVL BX, R9
|
|
ADDL R14, SI
|
|
MOVL BX, R14
|
|
ROLL $0x0e, SI
|
|
ADDL CX, SI
|
|
XORL DI, R9
|
|
ADDL $0xe9b6c7aa, BP
|
|
ADDL R8, BP
|
|
ANDL SI, R14
|
|
ANDL CX, R9
|
|
MOVL 20(DX), R8
|
|
ORL R9, R14
|
|
MOVL CX, R9
|
|
ADDL R14, BP
|
|
MOVL CX, R14
|
|
ROLL $0x14, BP
|
|
ADDL SI, BP
|
|
XORL DI, R9
|
|
ADDL $0xd62f105d, BX
|
|
ADDL R8, BX
|
|
ANDL BP, R14
|
|
ANDL SI, R9
|
|
MOVL 40(DX), R8
|
|
ORL R9, R14
|
|
MOVL SI, R9
|
|
ADDL R14, BX
|
|
MOVL SI, R14
|
|
ROLL $0x05, BX
|
|
ADDL BP, BX
|
|
XORL DI, R9
|
|
ADDL $0x02441453, CX
|
|
ADDL R8, CX
|
|
ANDL BX, R14
|
|
ANDL BP, R9
|
|
MOVL 60(DX), R8
|
|
ORL R9, R14
|
|
MOVL BP, R9
|
|
ADDL R14, CX
|
|
MOVL BP, R14
|
|
ROLL $0x09, CX
|
|
ADDL BX, CX
|
|
XORL DI, R9
|
|
ADDL $0xd8a1e681, SI
|
|
ADDL R8, SI
|
|
ANDL CX, R14
|
|
ANDL BX, R9
|
|
MOVL 16(DX), R8
|
|
ORL R9, R14
|
|
MOVL BX, R9
|
|
ADDL R14, SI
|
|
MOVL BX, R14
|
|
ROLL $0x0e, SI
|
|
ADDL CX, SI
|
|
XORL DI, R9
|
|
ADDL $0xe7d3fbc8, BP
|
|
ADDL R8, BP
|
|
ANDL SI, R14
|
|
ANDL CX, R9
|
|
MOVL 36(DX), R8
|
|
ORL R9, R14
|
|
MOVL CX, R9
|
|
ADDL R14, BP
|
|
MOVL CX, R14
|
|
ROLL $0x14, BP
|
|
ADDL SI, BP
|
|
XORL DI, R9
|
|
ADDL $0x21e1cde6, BX
|
|
ADDL R8, BX
|
|
ANDL BP, R14
|
|
ANDL SI, R9
|
|
MOVL 56(DX), R8
|
|
ORL R9, R14
|
|
MOVL SI, R9
|
|
ADDL R14, BX
|
|
MOVL SI, R14
|
|
ROLL $0x05, BX
|
|
ADDL BP, BX
|
|
XORL DI, R9
|
|
ADDL $0xc33707d6, CX
|
|
ADDL R8, CX
|
|
ANDL BX, R14
|
|
ANDL BP, R9
|
|
MOVL 12(DX), R8
|
|
ORL R9, R14
|
|
MOVL BP, R9
|
|
ADDL R14, CX
|
|
MOVL BP, R14
|
|
ROLL $0x09, CX
|
|
ADDL BX, CX
|
|
XORL DI, R9
|
|
ADDL $0xf4d50d87, SI
|
|
ADDL R8, SI
|
|
ANDL CX, R14
|
|
ANDL BX, R9
|
|
MOVL 32(DX), R8
|
|
ORL R9, R14
|
|
MOVL BX, R9
|
|
ADDL R14, SI
|
|
MOVL BX, R14
|
|
ROLL $0x0e, SI
|
|
ADDL CX, SI
|
|
XORL DI, R9
|
|
ADDL $0x455a14ed, BP
|
|
ADDL R8, BP
|
|
ANDL SI, R14
|
|
ANDL CX, R9
|
|
MOVL 52(DX), R8
|
|
ORL R9, R14
|
|
MOVL CX, R9
|
|
ADDL R14, BP
|
|
MOVL CX, R14
|
|
ROLL $0x14, BP
|
|
ADDL SI, BP
|
|
XORL DI, R9
|
|
ADDL $0xa9e3e905, BX
|
|
ADDL R8, BX
|
|
ANDL BP, R14
|
|
ANDL SI, R9
|
|
MOVL 8(DX), R8
|
|
ORL R9, R14
|
|
MOVL SI, R9
|
|
ADDL R14, BX
|
|
MOVL SI, R14
|
|
ROLL $0x05, BX
|
|
ADDL BP, BX
|
|
XORL DI, R9
|
|
ADDL $0xfcefa3f8, CX
|
|
ADDL R8, CX
|
|
ANDL BX, R14
|
|
ANDL BP, R9
|
|
MOVL 28(DX), R8
|
|
ORL R9, R14
|
|
MOVL BP, R9
|
|
ADDL R14, CX
|
|
MOVL BP, R14
|
|
ROLL $0x09, CX
|
|
ADDL BX, CX
|
|
XORL DI, R9
|
|
ADDL $0x676f02d9, SI
|
|
ADDL R8, SI
|
|
ANDL CX, R14
|
|
ANDL BX, R9
|
|
MOVL 48(DX), R8
|
|
ORL R9, R14
|
|
MOVL BX, R9
|
|
ADDL R14, SI
|
|
MOVL BX, R14
|
|
ROLL $0x0e, SI
|
|
ADDL CX, SI
|
|
XORL DI, R9
|
|
ADDL $0x8d2a4c8a, BP
|
|
ADDL R8, BP
|
|
ANDL SI, R14
|
|
ANDL CX, R9
|
|
MOVL 20(DX), R8
|
|
ORL R9, R14
|
|
MOVL CX, R9
|
|
ADDL R14, BP
|
|
MOVL CX, R14
|
|
ROLL $0x14, BP
|
|
ADDL SI, BP
|
|
|
|
// ROUND3
|
|
MOVL SI, R9
|
|
ADDL $0xfffa3942, BX
|
|
ADDL R8, BX
|
|
MOVL 32(DX), R8
|
|
XORL CX, R9
|
|
XORL BP, R9
|
|
ADDL R9, BX
|
|
ROLL $0x04, BX
|
|
MOVL BP, R9
|
|
ADDL BP, BX
|
|
ADDL $0x8771f681, CX
|
|
ADDL R8, CX
|
|
MOVL 44(DX), R8
|
|
XORL SI, R9
|
|
XORL BX, R9
|
|
ADDL R9, CX
|
|
ROLL $0x0b, CX
|
|
MOVL BX, R9
|
|
ADDL BX, CX
|
|
ADDL $0x6d9d6122, SI
|
|
ADDL R8, SI
|
|
MOVL 56(DX), R8
|
|
XORL BP, R9
|
|
XORL CX, R9
|
|
ADDL R9, SI
|
|
ROLL $0x10, SI
|
|
MOVL CX, R9
|
|
ADDL CX, SI
|
|
ADDL $0xfde5380c, BP
|
|
ADDL R8, BP
|
|
MOVL 4(DX), R8
|
|
XORL BX, R9
|
|
XORL SI, R9
|
|
ADDL R9, BP
|
|
ROLL $0x17, BP
|
|
MOVL SI, R9
|
|
ADDL SI, BP
|
|
ADDL $0xa4beea44, BX
|
|
ADDL R8, BX
|
|
MOVL 16(DX), R8
|
|
XORL CX, R9
|
|
XORL BP, R9
|
|
ADDL R9, BX
|
|
ROLL $0x04, BX
|
|
MOVL BP, R9
|
|
ADDL BP, BX
|
|
ADDL $0x4bdecfa9, CX
|
|
ADDL R8, CX
|
|
MOVL 28(DX), R8
|
|
XORL SI, R9
|
|
XORL BX, R9
|
|
ADDL R9, CX
|
|
ROLL $0x0b, CX
|
|
MOVL BX, R9
|
|
ADDL BX, CX
|
|
ADDL $0xf6bb4b60, SI
|
|
ADDL R8, SI
|
|
MOVL 40(DX), R8
|
|
XORL BP, R9
|
|
XORL CX, R9
|
|
ADDL R9, SI
|
|
ROLL $0x10, SI
|
|
MOVL CX, R9
|
|
ADDL CX, SI
|
|
ADDL $0xbebfbc70, BP
|
|
ADDL R8, BP
|
|
MOVL 52(DX), R8
|
|
XORL BX, R9
|
|
XORL SI, R9
|
|
ADDL R9, BP
|
|
ROLL $0x17, BP
|
|
MOVL SI, R9
|
|
ADDL SI, BP
|
|
ADDL $0x289b7ec6, BX
|
|
ADDL R8, BX
|
|
MOVL (DX), R8
|
|
XORL CX, R9
|
|
XORL BP, R9
|
|
ADDL R9, BX
|
|
ROLL $0x04, BX
|
|
MOVL BP, R9
|
|
ADDL BP, BX
|
|
ADDL $0xeaa127fa, CX
|
|
ADDL R8, CX
|
|
MOVL 12(DX), R8
|
|
XORL SI, R9
|
|
XORL BX, R9
|
|
ADDL R9, CX
|
|
ROLL $0x0b, CX
|
|
MOVL BX, R9
|
|
ADDL BX, CX
|
|
ADDL $0xd4ef3085, SI
|
|
ADDL R8, SI
|
|
MOVL 24(DX), R8
|
|
XORL BP, R9
|
|
XORL CX, R9
|
|
ADDL R9, SI
|
|
ROLL $0x10, SI
|
|
MOVL CX, R9
|
|
ADDL CX, SI
|
|
ADDL $0x04881d05, BP
|
|
ADDL R8, BP
|
|
MOVL 36(DX), R8
|
|
XORL BX, R9
|
|
XORL SI, R9
|
|
ADDL R9, BP
|
|
ROLL $0x17, BP
|
|
MOVL SI, R9
|
|
ADDL SI, BP
|
|
ADDL $0xd9d4d039, BX
|
|
ADDL R8, BX
|
|
MOVL 48(DX), R8
|
|
XORL CX, R9
|
|
XORL BP, R9
|
|
ADDL R9, BX
|
|
ROLL $0x04, BX
|
|
MOVL BP, R9
|
|
ADDL BP, BX
|
|
ADDL $0xe6db99e5, CX
|
|
ADDL R8, CX
|
|
MOVL 60(DX), R8
|
|
XORL SI, R9
|
|
XORL BX, R9
|
|
ADDL R9, CX
|
|
ROLL $0x0b, CX
|
|
MOVL BX, R9
|
|
ADDL BX, CX
|
|
ADDL $0x1fa27cf8, SI
|
|
ADDL R8, SI
|
|
MOVL 8(DX), R8
|
|
XORL BP, R9
|
|
XORL CX, R9
|
|
ADDL R9, SI
|
|
ROLL $0x10, SI
|
|
MOVL CX, R9
|
|
ADDL CX, SI
|
|
ADDL $0xc4ac5665, BP
|
|
ADDL R8, BP
|
|
MOVL (DX), R8
|
|
XORL BX, R9
|
|
XORL SI, R9
|
|
ADDL R9, BP
|
|
ROLL $0x17, BP
|
|
MOVL SI, R9
|
|
ADDL SI, BP
|
|
|
|
// ROUND4
|
|
MOVL DI, R9
|
|
XORL CX, R9
|
|
ADDL $0xf4292244, BX
|
|
ADDL R8, BX
|
|
ORL BP, R9
|
|
XORL SI, R9
|
|
ADDL R9, BX
|
|
MOVL 28(DX), R8
|
|
MOVL DI, R9
|
|
ROLL $0x06, BX
|
|
XORL SI, R9
|
|
ADDL BP, BX
|
|
ADDL $0x432aff97, CX
|
|
ADDL R8, CX
|
|
ORL BX, R9
|
|
XORL BP, R9
|
|
ADDL R9, CX
|
|
MOVL 56(DX), R8
|
|
MOVL DI, R9
|
|
ROLL $0x0a, CX
|
|
XORL BP, R9
|
|
ADDL BX, CX
|
|
ADDL $0xab9423a7, SI
|
|
ADDL R8, SI
|
|
ORL CX, R9
|
|
XORL BX, R9
|
|
ADDL R9, SI
|
|
MOVL 20(DX), R8
|
|
MOVL DI, R9
|
|
ROLL $0x0f, SI
|
|
XORL BX, R9
|
|
ADDL CX, SI
|
|
ADDL $0xfc93a039, BP
|
|
ADDL R8, BP
|
|
ORL SI, R9
|
|
XORL CX, R9
|
|
ADDL R9, BP
|
|
MOVL 48(DX), R8
|
|
MOVL DI, R9
|
|
ROLL $0x15, BP
|
|
XORL CX, R9
|
|
ADDL SI, BP
|
|
ADDL $0x655b59c3, BX
|
|
ADDL R8, BX
|
|
ORL BP, R9
|
|
XORL SI, R9
|
|
ADDL R9, BX
|
|
MOVL 12(DX), R8
|
|
MOVL DI, R9
|
|
ROLL $0x06, BX
|
|
XORL SI, R9
|
|
ADDL BP, BX
|
|
ADDL $0x8f0ccc92, CX
|
|
ADDL R8, CX
|
|
ORL BX, R9
|
|
XORL BP, R9
|
|
ADDL R9, CX
|
|
MOVL 40(DX), R8
|
|
MOVL DI, R9
|
|
ROLL $0x0a, CX
|
|
XORL BP, R9
|
|
ADDL BX, CX
|
|
ADDL $0xffeff47d, SI
|
|
ADDL R8, SI
|
|
ORL CX, R9
|
|
XORL BX, R9
|
|
ADDL R9, SI
|
|
MOVL 4(DX), R8
|
|
MOVL DI, R9
|
|
ROLL $0x0f, SI
|
|
XORL BX, R9
|
|
ADDL CX, SI
|
|
ADDL $0x85845dd1, BP
|
|
ADDL R8, BP
|
|
ORL SI, R9
|
|
XORL CX, R9
|
|
ADDL R9, BP
|
|
MOVL 32(DX), R8
|
|
MOVL DI, R9
|
|
ROLL $0x15, BP
|
|
XORL CX, R9
|
|
ADDL SI, BP
|
|
ADDL $0x6fa87e4f, BX
|
|
ADDL R8, BX
|
|
ORL BP, R9
|
|
XORL SI, R9
|
|
ADDL R9, BX
|
|
MOVL 60(DX), R8
|
|
MOVL DI, R9
|
|
ROLL $0x06, BX
|
|
XORL SI, R9
|
|
ADDL BP, BX
|
|
ADDL $0xfe2ce6e0, CX
|
|
ADDL R8, CX
|
|
ORL BX, R9
|
|
XORL BP, R9
|
|
ADDL R9, CX
|
|
MOVL 24(DX), R8
|
|
MOVL DI, R9
|
|
ROLL $0x0a, CX
|
|
XORL BP, R9
|
|
ADDL BX, CX
|
|
ADDL $0xa3014314, SI
|
|
ADDL R8, SI
|
|
ORL CX, R9
|
|
XORL BX, R9
|
|
ADDL R9, SI
|
|
MOVL 52(DX), R8
|
|
MOVL DI, R9
|
|
ROLL $0x0f, SI
|
|
XORL BX, R9
|
|
ADDL CX, SI
|
|
ADDL $0x4e0811a1, BP
|
|
ADDL R8, BP
|
|
ORL SI, R9
|
|
XORL CX, R9
|
|
ADDL R9, BP
|
|
MOVL 16(DX), R8
|
|
MOVL DI, R9
|
|
ROLL $0x15, BP
|
|
XORL CX, R9
|
|
ADDL SI, BP
|
|
ADDL $0xf7537e82, BX
|
|
ADDL R8, BX
|
|
ORL BP, R9
|
|
XORL SI, R9
|
|
ADDL R9, BX
|
|
MOVL 44(DX), R8
|
|
MOVL DI, R9
|
|
ROLL $0x06, BX
|
|
XORL SI, R9
|
|
ADDL BP, BX
|
|
ADDL $0xbd3af235, CX
|
|
ADDL R8, CX
|
|
ORL BX, R9
|
|
XORL BP, R9
|
|
ADDL R9, CX
|
|
MOVL 8(DX), R8
|
|
MOVL DI, R9
|
|
ROLL $0x0a, CX
|
|
XORL BP, R9
|
|
ADDL BX, CX
|
|
ADDL $0x2ad7d2bb, SI
|
|
ADDL R8, SI
|
|
ORL CX, R9
|
|
XORL BX, R9
|
|
ADDL R9, SI
|
|
MOVL 36(DX), R8
|
|
MOVL DI, R9
|
|
ROLL $0x0f, SI
|
|
XORL BX, R9
|
|
ADDL CX, SI
|
|
ADDL $0xeb86d391, BP
|
|
ADDL R8, BP
|
|
ORL SI, R9
|
|
XORL CX, R9
|
|
ADDL R9, BP
|
|
ROLL $0x15, BP
|
|
ADDL SI, BP
|
|
ADDL R10, BX
|
|
ADDL R11, BP
|
|
ADDL R12, SI
|
|
ADDL R13, CX
|
|
|
|
// Prepare next loop
|
|
ADDQ $0x40, DX
|
|
CMPQ DX, AX
|
|
JB loop
|
|
|
|
// Write output
|
|
MOVQ dig+0(FP), AX
|
|
MOVL BX, (AX)
|
|
MOVL BP, 4(AX)
|
|
MOVL SI, 8(AX)
|
|
MOVL CX, 12(AX)
|
|
|
|
end:
|
|
RET
|