| // Code generated by command: go run md5block_amd64_asm.go -out ../md5block_amd64.s -pkg md5. DO NOT EDIT. |
| |
| //go:build !purego |
| |
| #include "textflag.h" |
| |
| // func block(dig *digest, p []byte) |
| TEXT ·block(SB), NOSPLIT, $8-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 $0xffffffff, R11 |
| CMPQ SI, DI |
| JEQ end |
| |
| loop: |
| MOVL AX, R12 |
| MOVL BX, R13 |
| MOVL CX, R14 |
| MOVL DX, R15 |
| MOVL (SI), R8 |
| MOVL DX, R9 |
| XORL CX, R9 |
| ADDL $0xd76aa478, AX |
| ADDL R8, AX |
| ANDL BX, R9 |
| XORL DX, R9 |
| MOVL 4(SI), R8 |
| ADDL R9, AX |
| ROLL $0x07, AX |
| MOVL CX, R9 |
| ADDL BX, AX |
| XORL BX, R9 |
| ADDL $0xe8c7b756, DX |
| ADDL R8, DX |
| ANDL AX, R9 |
| XORL CX, R9 |
| MOVL 8(SI), R8 |
| ADDL R9, DX |
| ROLL $0x0c, DX |
| MOVL BX, R9 |
| ADDL AX, DX |
| XORL AX, R9 |
| ADDL $0x242070db, CX |
| ADDL R8, CX |
| ANDL DX, R9 |
| XORL BX, R9 |
| MOVL 12(SI), R8 |
| ADDL R9, CX |
| ROLL $0x11, CX |
| MOVL AX, R9 |
| ADDL DX, CX |
| XORL DX, R9 |
| ADDL $0xc1bdceee, BX |
| ADDL R8, BX |
| ANDL CX, R9 |
| XORL AX, R9 |
| MOVL 16(SI), R8 |
| ADDL R9, BX |
| ROLL $0x16, BX |
| MOVL DX, R9 |
| ADDL CX, BX |
| XORL CX, R9 |
| ADDL $0xf57c0faf, AX |
| ADDL R8, AX |
| ANDL BX, R9 |
| XORL DX, R9 |
| MOVL 20(SI), R8 |
| ADDL R9, AX |
| ROLL $0x07, AX |
| MOVL CX, R9 |
| ADDL BX, AX |
| XORL BX, R9 |
| ADDL $0x4787c62a, DX |
| ADDL R8, DX |
| ANDL AX, R9 |
| XORL CX, R9 |
| MOVL 24(SI), R8 |
| ADDL R9, DX |
| ROLL $0x0c, DX |
| MOVL BX, R9 |
| ADDL AX, DX |
| XORL AX, R9 |
| ADDL $0xa8304613, CX |
| ADDL R8, CX |
| ANDL DX, R9 |
| XORL BX, R9 |
| MOVL 28(SI), R8 |
| ADDL R9, CX |
| ROLL $0x11, CX |
| MOVL AX, R9 |
| ADDL DX, CX |
| XORL DX, R9 |
| ADDL $0xfd469501, BX |
| ADDL R8, BX |
| ANDL CX, R9 |
| XORL AX, R9 |
| MOVL 32(SI), R8 |
| ADDL R9, BX |
| ROLL $0x16, BX |
| MOVL DX, R9 |
| ADDL CX, BX |
| XORL CX, R9 |
| ADDL $0x698098d8, AX |
| ADDL R8, AX |
| ANDL BX, R9 |
| XORL DX, R9 |
| MOVL 36(SI), R8 |
| ADDL R9, AX |
| ROLL $0x07, AX |
| MOVL CX, R9 |
| ADDL BX, AX |
| XORL BX, R9 |
| ADDL $0x8b44f7af, DX |
| ADDL R8, DX |
| ANDL AX, R9 |
| XORL CX, R9 |
| MOVL 40(SI), R8 |
| ADDL R9, DX |
| ROLL $0x0c, DX |
| MOVL BX, R9 |
| ADDL AX, DX |
| XORL AX, R9 |
| ADDL $0xffff5bb1, CX |
| ADDL R8, CX |
| ANDL DX, R9 |
| XORL BX, R9 |
| MOVL 44(SI), R8 |
| ADDL R9, CX |
| ROLL $0x11, CX |
| MOVL AX, R9 |
| ADDL DX, CX |
| XORL DX, R9 |
| ADDL $0x895cd7be, BX |
| ADDL R8, BX |
| ANDL CX, R9 |
| XORL AX, R9 |
| MOVL 48(SI), R8 |
| ADDL R9, BX |
| ROLL $0x16, BX |
| MOVL DX, R9 |
| ADDL CX, BX |
| XORL CX, R9 |
| ADDL $0x6b901122, AX |
| ADDL R8, AX |
| ANDL BX, R9 |
| XORL DX, R9 |
| MOVL 52(SI), R8 |
| ADDL R9, AX |
| ROLL $0x07, AX |
| MOVL CX, R9 |
| ADDL BX, AX |
| XORL BX, R9 |
| ADDL $0xfd987193, DX |
| ADDL R8, DX |
| ANDL AX, R9 |
| XORL CX, R9 |
| MOVL 56(SI), R8 |
| ADDL R9, DX |
| ROLL $0x0c, DX |
| MOVL BX, R9 |
| ADDL AX, DX |
| XORL AX, R9 |
| ADDL $0xa679438e, CX |
| ADDL R8, CX |
| ANDL DX, R9 |
| XORL BX, R9 |
| MOVL 60(SI), R8 |
| ADDL R9, CX |
| ROLL $0x11, CX |
| MOVL AX, R9 |
| ADDL DX, CX |
| XORL DX, R9 |
| ADDL $0x49b40821, BX |
| ADDL R8, BX |
| ANDL CX, R9 |
| XORL AX, R9 |
| MOVL 4(SI), R8 |
| ADDL R9, BX |
| ROLL $0x16, BX |
| MOVL DX, R9 |
| ADDL CX, BX |
| MOVL DX, R9 |
| MOVL DX, R10 |
| XORL R11, R9 |
| ADDL $0xf61e2562, AX |
| ADDL R8, AX |
| ANDL BX, R10 |
| ANDL CX, R9 |
| MOVL 24(SI), R8 |
| ADDL R9, AX |
| ADDL R10, AX |
| MOVL CX, R9 |
| MOVL CX, R10 |
| ROLL $0x05, AX |
| ADDL BX, AX |
| XORL R11, R9 |
| ADDL $0xc040b340, DX |
| ADDL R8, DX |
| ANDL AX, R10 |
| ANDL BX, R9 |
| MOVL 44(SI), R8 |
| ADDL R9, DX |
| ADDL R10, DX |
| MOVL BX, R9 |
| MOVL BX, R10 |
| ROLL $0x09, DX |
| ADDL AX, DX |
| XORL R11, R9 |
| ADDL $0x265e5a51, CX |
| ADDL R8, CX |
| ANDL DX, R10 |
| ANDL AX, R9 |
| MOVL (SI), R8 |
| ADDL R9, CX |
| ADDL R10, CX |
| MOVL AX, R9 |
| MOVL AX, R10 |
| ROLL $0x0e, CX |
| ADDL DX, CX |
| XORL R11, R9 |
| ADDL $0xe9b6c7aa, BX |
| ADDL R8, BX |
| ANDL CX, R10 |
| ANDL DX, R9 |
| MOVL 20(SI), R8 |
| ADDL R9, BX |
| ADDL R10, BX |
| MOVL DX, R9 |
| MOVL DX, R10 |
| ROLL $0x14, BX |
| ADDL CX, BX |
| XORL R11, R9 |
| ADDL $0xd62f105d, AX |
| ADDL R8, AX |
| ANDL BX, R10 |
| ANDL CX, R9 |
| MOVL 40(SI), R8 |
| ADDL R9, AX |
| ADDL R10, AX |
| MOVL CX, R9 |
| MOVL CX, R10 |
| ROLL $0x05, AX |
| ADDL BX, AX |
| XORL R11, R9 |
| ADDL $0x02441453, DX |
| ADDL R8, DX |
| ANDL AX, R10 |
| ANDL BX, R9 |
| MOVL 60(SI), R8 |
| ADDL R9, DX |
| ADDL R10, DX |
| MOVL BX, R9 |
| MOVL BX, R10 |
| ROLL $0x09, DX |
| ADDL AX, DX |
| XORL R11, R9 |
| ADDL $0xd8a1e681, CX |
| ADDL R8, CX |
| ANDL DX, R10 |
| ANDL AX, R9 |
| MOVL 16(SI), R8 |
| ADDL R9, CX |
| ADDL R10, CX |
| MOVL AX, R9 |
| MOVL AX, R10 |
| ROLL $0x0e, CX |
| ADDL DX, CX |
| XORL R11, R9 |
| ADDL $0xe7d3fbc8, BX |
| ADDL R8, BX |
| ANDL CX, R10 |
| ANDL DX, R9 |
| MOVL 36(SI), R8 |
| ADDL R9, BX |
| ADDL R10, BX |
| MOVL DX, R9 |
| MOVL DX, R10 |
| ROLL $0x14, BX |
| ADDL CX, BX |
| XORL R11, R9 |
| ADDL $0x21e1cde6, AX |
| ADDL R8, AX |
| ANDL BX, R10 |
| ANDL CX, R9 |
| MOVL 56(SI), R8 |
| ADDL R9, AX |
| ADDL R10, AX |
| MOVL CX, R9 |
| MOVL CX, R10 |
| ROLL $0x05, AX |
| ADDL BX, AX |
| XORL R11, R9 |
| ADDL $0xc33707d6, DX |
| ADDL R8, DX |
| ANDL AX, R10 |
| ANDL BX, R9 |
| MOVL 12(SI), R8 |
| ADDL R9, DX |
| ADDL R10, DX |
| MOVL BX, R9 |
| MOVL BX, R10 |
| ROLL $0x09, DX |
| ADDL AX, DX |
| XORL R11, R9 |
| ADDL $0xf4d50d87, CX |
| ADDL R8, CX |
| ANDL DX, R10 |
| ANDL AX, R9 |
| MOVL 32(SI), R8 |
| ADDL R9, CX |
| ADDL R10, CX |
| MOVL AX, R9 |
| MOVL AX, R10 |
| ROLL $0x0e, CX |
| ADDL DX, CX |
| XORL R11, R9 |
| ADDL $0x455a14ed, BX |
| ADDL R8, BX |
| ANDL CX, R10 |
| ANDL DX, R9 |
| MOVL 52(SI), R8 |
| ADDL R9, BX |
| ADDL R10, BX |
| MOVL DX, R9 |
| MOVL DX, R10 |
| ROLL $0x14, BX |
| ADDL CX, BX |
| XORL R11, R9 |
| ADDL $0xa9e3e905, AX |
| ADDL R8, AX |
| ANDL BX, R10 |
| ANDL CX, R9 |
| MOVL 8(SI), R8 |
| ADDL R9, AX |
| ADDL R10, AX |
| MOVL CX, R9 |
| MOVL CX, R10 |
| ROLL $0x05, AX |
| ADDL BX, AX |
| XORL R11, R9 |
| ADDL $0xfcefa3f8, DX |
| ADDL R8, DX |
| ANDL AX, R10 |
| ANDL BX, R9 |
| MOVL 28(SI), R8 |
| ADDL R9, DX |
| ADDL R10, DX |
| MOVL BX, R9 |
| MOVL BX, R10 |
| ROLL $0x09, DX |
| ADDL AX, DX |
| XORL R11, R9 |
| ADDL $0x676f02d9, CX |
| ADDL R8, CX |
| ANDL DX, R10 |
| ANDL AX, R9 |
| MOVL 48(SI), R8 |
| ADDL R9, CX |
| ADDL R10, CX |
| MOVL AX, R9 |
| MOVL AX, R10 |
| ROLL $0x0e, CX |
| ADDL DX, CX |
| XORL R11, R9 |
| ADDL $0x8d2a4c8a, BX |
| ADDL R8, BX |
| ANDL CX, R10 |
| ANDL DX, R9 |
| MOVL 20(SI), R8 |
| ADDL R9, BX |
| ADDL R10, BX |
| MOVL DX, R9 |
| MOVL DX, R10 |
| ROLL $0x14, BX |
| ADDL CX, BX |
| MOVL CX, R9 |
| MOVL DX, R9 |
| XORL CX, R9 |
| XORL BX, R9 |
| ADDL $0xfffa3942, AX |
| ADDL R8, AX |
| MOVL 32(SI), R8 |
| ADDL R9, AX |
| ROLL $0x04, AX |
| ADDL BX, AX |
| XORL DX, R9 |
| XORL AX, R9 |
| ADDL $0x8771f681, DX |
| ADDL R8, DX |
| MOVL 44(SI), R8 |
| ADDL R9, DX |
| ROLL $0x0b, DX |
| ADDL AX, DX |
| XORL CX, R9 |
| XORL DX, R9 |
| ADDL $0x6d9d6122, CX |
| ADDL R8, CX |
| MOVL 56(SI), R8 |
| ADDL R9, CX |
| ROLL $0x10, CX |
| ADDL DX, CX |
| XORL BX, R9 |
| XORL CX, R9 |
| ADDL $0xfde5380c, BX |
| ADDL R8, BX |
| MOVL 4(SI), R8 |
| ADDL R9, BX |
| ROLL $0x17, BX |
| ADDL CX, BX |
| XORL AX, R9 |
| XORL BX, R9 |
| ADDL $0xa4beea44, AX |
| ADDL R8, AX |
| MOVL 16(SI), R8 |
| ADDL R9, AX |
| ROLL $0x04, AX |
| ADDL BX, AX |
| XORL DX, R9 |
| XORL AX, R9 |
| ADDL $0x4bdecfa9, DX |
| ADDL R8, DX |
| MOVL 28(SI), R8 |
| ADDL R9, DX |
| ROLL $0x0b, DX |
| ADDL AX, DX |
| XORL CX, R9 |
| XORL DX, R9 |
| ADDL $0xf6bb4b60, CX |
| ADDL R8, CX |
| MOVL 40(SI), R8 |
| ADDL R9, CX |
| ROLL $0x10, CX |
| ADDL DX, CX |
| XORL BX, R9 |
| XORL CX, R9 |
| ADDL $0xbebfbc70, BX |
| ADDL R8, BX |
| MOVL 52(SI), R8 |
| ADDL R9, BX |
| ROLL $0x17, BX |
| ADDL CX, BX |
| XORL AX, R9 |
| XORL BX, R9 |
| ADDL $0x289b7ec6, AX |
| ADDL R8, AX |
| MOVL (SI), R8 |
| ADDL R9, AX |
| ROLL $0x04, AX |
| ADDL BX, AX |
| XORL DX, R9 |
| XORL AX, R9 |
| ADDL $0xeaa127fa, DX |
| ADDL R8, DX |
| MOVL 12(SI), R8 |
| ADDL R9, DX |
| ROLL $0x0b, DX |
| ADDL AX, DX |
| XORL CX, R9 |
| XORL DX, R9 |
| ADDL $0xd4ef3085, CX |
| ADDL R8, CX |
| MOVL 24(SI), R8 |
| ADDL R9, CX |
| ROLL $0x10, CX |
| ADDL DX, CX |
| XORL BX, R9 |
| XORL CX, R9 |
| ADDL $0x04881d05, BX |
| ADDL R8, BX |
| MOVL 36(SI), R8 |
| ADDL R9, BX |
| ROLL $0x17, BX |
| ADDL CX, BX |
| XORL AX, R9 |
| XORL BX, R9 |
| ADDL $0xd9d4d039, AX |
| ADDL R8, AX |
| MOVL 48(SI), R8 |
| ADDL R9, AX |
| ROLL $0x04, AX |
| ADDL BX, AX |
| XORL DX, R9 |
| XORL AX, R9 |
| ADDL $0xe6db99e5, DX |
| ADDL R8, DX |
| MOVL 60(SI), R8 |
| ADDL R9, DX |
| ROLL $0x0b, DX |
| ADDL AX, DX |
| XORL CX, R9 |
| XORL DX, R9 |
| ADDL $0x1fa27cf8, CX |
| ADDL R8, CX |
| MOVL 8(SI), R8 |
| ADDL R9, CX |
| ROLL $0x10, CX |
| ADDL DX, CX |
| XORL BX, R9 |
| XORL CX, R9 |
| ADDL $0xc4ac5665, BX |
| ADDL R8, BX |
| MOVL (SI), R8 |
| ADDL R9, BX |
| ROLL $0x17, BX |
| ADDL CX, BX |
| MOVL R11, R9 |
| XORL DX, R9 |
| ADDL $0xf4292244, AX |
| ADDL R8, AX |
| ORL BX, R9 |
| XORL CX, R9 |
| ADDL R9, AX |
| MOVL 28(SI), R8 |
| MOVL $0xffffffff, R9 |
| ROLL $0x06, AX |
| XORL CX, R9 |
| ADDL BX, AX |
| ADDL $0x432aff97, DX |
| ADDL R8, DX |
| ORL AX, R9 |
| XORL BX, R9 |
| ADDL R9, DX |
| MOVL 56(SI), R8 |
| MOVL $0xffffffff, R9 |
| ROLL $0x0a, DX |
| XORL BX, R9 |
| ADDL AX, DX |
| ADDL $0xab9423a7, CX |
| ADDL R8, CX |
| ORL DX, R9 |
| XORL AX, R9 |
| ADDL R9, CX |
| MOVL 20(SI), R8 |
| MOVL $0xffffffff, R9 |
| ROLL $0x0f, CX |
| XORL AX, R9 |
| ADDL DX, CX |
| ADDL $0xfc93a039, BX |
| ADDL R8, BX |
| ORL CX, R9 |
| XORL DX, R9 |
| ADDL R9, BX |
| MOVL 48(SI), R8 |
| MOVL $0xffffffff, R9 |
| ROLL $0x15, BX |
| XORL DX, R9 |
| ADDL CX, BX |
| ADDL $0x655b59c3, AX |
| ADDL R8, AX |
| ORL BX, R9 |
| XORL CX, R9 |
| ADDL R9, AX |
| MOVL 12(SI), R8 |
| MOVL $0xffffffff, R9 |
| ROLL $0x06, AX |
| XORL CX, R9 |
| ADDL BX, AX |
| ADDL $0x8f0ccc92, DX |
| ADDL R8, DX |
| ORL AX, R9 |
| XORL BX, R9 |
| ADDL R9, DX |
| MOVL 40(SI), R8 |
| MOVL $0xffffffff, R9 |
| ROLL $0x0a, DX |
| XORL BX, R9 |
| ADDL AX, DX |
| ADDL $0xffeff47d, CX |
| ADDL R8, CX |
| ORL DX, R9 |
| XORL AX, R9 |
| ADDL R9, CX |
| MOVL 4(SI), R8 |
| MOVL $0xffffffff, R9 |
| ROLL $0x0f, CX |
| XORL AX, R9 |
| ADDL DX, CX |
| ADDL $0x85845dd1, BX |
| ADDL R8, BX |
| ORL CX, R9 |
| XORL DX, R9 |
| ADDL R9, BX |
| MOVL 32(SI), R8 |
| MOVL $0xffffffff, R9 |
| ROLL $0x15, BX |
| XORL DX, R9 |
| ADDL CX, BX |
| ADDL $0x6fa87e4f, AX |
| ADDL R8, AX |
| ORL BX, R9 |
| XORL CX, R9 |
| ADDL R9, AX |
| MOVL 60(SI), R8 |
| MOVL $0xffffffff, R9 |
| ROLL $0x06, AX |
| XORL CX, R9 |
| ADDL BX, AX |
| ADDL $0xfe2ce6e0, DX |
| ADDL R8, DX |
| ORL AX, R9 |
| XORL BX, R9 |
| ADDL R9, DX |
| MOVL 24(SI), R8 |
| MOVL $0xffffffff, R9 |
| ROLL $0x0a, DX |
| XORL BX, R9 |
| ADDL AX, DX |
| ADDL $0xa3014314, CX |
| ADDL R8, CX |
| ORL DX, R9 |
| XORL AX, R9 |
| ADDL R9, CX |
| MOVL 52(SI), R8 |
| MOVL $0xffffffff, R9 |
| ROLL $0x0f, CX |
| XORL AX, R9 |
| ADDL DX, CX |
| ADDL $0x4e0811a1, BX |
| ADDL R8, BX |
| ORL CX, R9 |
| XORL DX, R9 |
| ADDL R9, BX |
| MOVL 16(SI), R8 |
| MOVL $0xffffffff, R9 |
| ROLL $0x15, BX |
| XORL DX, R9 |
| ADDL CX, BX |
| ADDL $0xf7537e82, AX |
| ADDL R8, AX |
| ORL BX, R9 |
| XORL CX, R9 |
| ADDL R9, AX |
| MOVL 44(SI), R8 |
| MOVL $0xffffffff, R9 |
| ROLL $0x06, AX |
| XORL CX, R9 |
| ADDL BX, AX |
| ADDL $0xbd3af235, DX |
| ADDL R8, DX |
| ORL AX, R9 |
| XORL BX, R9 |
| ADDL R9, DX |
| MOVL 8(SI), R8 |
| MOVL $0xffffffff, R9 |
| ROLL $0x0a, DX |
| XORL BX, R9 |
| ADDL AX, DX |
| ADDL $0x2ad7d2bb, CX |
| ADDL R8, CX |
| ORL DX, R9 |
| XORL AX, R9 |
| ADDL R9, CX |
| MOVL 36(SI), R8 |
| MOVL $0xffffffff, R9 |
| ROLL $0x0f, CX |
| XORL AX, R9 |
| ADDL DX, CX |
| ADDL $0xeb86d391, BX |
| ADDL R8, BX |
| ORL CX, R9 |
| XORL DX, R9 |
| ADDL R9, BX |
| MOVL (SI), R8 |
| MOVL $0xffffffff, R9 |
| ROLL $0x15, BX |
| XORL DX, R9 |
| ADDL CX, BX |
| ADDL R12, AX |
| ADDL R13, BX |
| ADDL R14, CX |
| ADDL R15, DX |
| ADDQ $0x40, SI |
| CMPQ SI, DI |
| JB loop |
| |
| end: |
| MOVL AX, (BP) |
| MOVL BX, 4(BP) |
| MOVL CX, 8(BP) |
| MOVL DX, 12(BP) |
| RET |