// Code generated by command: go run asm.go -out stadtx.s -stubs stub.go. DO NOT EDIT. #include "textflag.h" // func Hash(state *State, key []byte) uint64 TEXT ·Hash(SB),0,$0-40 MOVQ state(FP), AX MOVQ key_base+8(FP), CX MOVQ key_len+16(FP), DX MOVQ (AX), BX MOVQ 8(AX), BP MOVQ DX, SI ADDQ $0x1, SI MOVQ $0xb89b0f8e1655514f, DI IMULQ DI, SI XORQ SI, BX MOVQ DX, SI ADDQ $0x2, SI MOVQ $0x8c6f736011bd5127, DI IMULQ DI, SI XORQ SI, BP CMPQ DX, $0x20 JGE coreLong MOVQ DX, SI SHRQ $0x3, SI CMPQ SI, $0x0 JE shortCore0 CMPQ SI, $0x1 JE shortCore1 CMPQ SI, $0x2 JE shortCore2 CMPQ SI, $0x3 JE shortCore3 shortCore3: MOVQ (CX), SI MOVQ $0x9c1b8e1e9628323f, DI IMULQ DI, SI ADDQ SI, BX RORQ $0x11, BX XORQ BP, BX RORQ $0x35, BP ADDQ BX, BP ADDQ $0x8, CX SUBQ $0x8, DX shortCore2: MOVQ (CX), SI MOVQ $0x9c1b8e1e9628323f, DI IMULQ DI, SI ADDQ SI, BX RORQ $0x11, BX XORQ BP, BX RORQ $0x35, BP ADDQ BX, BP ADDQ $0x8, CX SUBQ $0x8, DX shortCore1: MOVQ (CX), SI MOVQ $0x9c1b8e1e9628323f, DI IMULQ DI, SI ADDQ SI, BX RORQ $0x11, BX XORQ BP, BX RORQ $0x35, BP ADDQ BX, BP ADDQ $0x8, CX SUBQ $0x8, DX shortCore0: CMPQ DX, $0x0 JE shortTail0 CMPQ DX, $0x1 JE shortTail1 CMPQ DX, $0x2 JE shortTail2 CMPQ DX, $0x3 JE shortTail3 CMPQ DX, $0x4 JE shortTail4 CMPQ DX, $0x5 JE shortTail5 CMPQ DX, $0x6 JE shortTail6 CMPQ DX, $0x7 JE shortTail7 shortTail7: MOVBQZX 6(CX), SI SHLQ $0x20, SI ADDQ SI, BX shortTail6: MOVBQZX 5(CX), SI SHLQ $0x30, SI ADDQ SI, BP shortTail5: MOVBQZX 4(CX), SI SHLQ $0x10, SI ADDQ SI, BX shortTail4: MOVLQZX (CX), SI ADDQ SI, BP JMP shortAfter shortTail3: MOVBQZX 2(CX), SI SHLQ $0x30, SI ADDQ SI, BX shortTail2: MOVWQZX (CX), SI ADDQ SI, BP JMP shortAfter shortTail1: MOVBQZX (CX), SI ADDQ SI, BX shortTail0: RORQ $0x20, BP XORQ $0xff, BP shortAfter: XORQ BX, BP RORQ $0x21, BX ADDQ BP, BX ROLQ $0x11, BP XORQ BX, BP ROLQ $0x2b, BX ADDQ BP, BX ROLQ $0x1f, BP SUBQ BX, BP ROLQ $0xd, BX XORQ BP, BX SUBQ BX, BP ROLQ $0x29, BX ADDQ BP, BX ROLQ $0x25, BP XORQ BX, BP RORQ $0x27, BX ADDQ BP, BX RORQ $0xf, BP ADDQ BX, BP ROLQ $0xf, BX XORQ BP, BX RORQ $0x5, BP XORQ BP, BX MOVQ BX, ret+32(FP) RET coreLong: MOVQ 16(AX), DI MOVQ 24(AX), AX MOVQ DX, SI ADDQ $0x3, SI MOVQ $0x8f29bd94edce7b39, R8 IMULQ R8, SI XORQ SI, DI MOVQ DX, SI ADDQ $0x4, SI MOVQ $0x9c1b8e1e9628323f, R8 IMULQ R8, SI XORQ SI, AX block: MOVQ (CX), SI MOVQ $0x802910e3, R8 IMULQ R8, SI ADDQ SI, BX ROLQ $0x39, BX XORQ AX, BX MOVQ 8(CX), SI MOVQ $0x819b13af, R8 IMULQ R8, SI ADDQ SI, BP ROLQ $0x3f, BP XORQ DI, BP MOVQ 16(CX), SI MOVQ $0x91cb27e5, R8 IMULQ R8, SI ADDQ SI, DI RORQ $0x2f, DI ADDQ BX, DI MOVQ 24(CX), SI MOVQ $0xc1a269c1, R8 IMULQ R8, SI ADDQ SI, AX RORQ $0xb, AX SUBQ BP, AX ADDQ $0x20, CX SUBQ $0x20, DX CMPQ DX, $0x20 JGE block MOVQ DX, R8 MOVQ DX, SI SHRQ $0x3, SI CMPQ SI, $0x0 JE longCore0 CMPQ SI, $0x1 JE longCore1 CMPQ SI, $0x2 JE longCore2 CMPQ SI, $0x3 JE longCore3 longCore3: MOVQ (CX), SI MOVQ $0x802910e3, R9 IMULQ R9, SI ADDQ SI, BX ROLQ $0x39, BX XORQ AX, BX ADDQ $0x8, CX SUBQ $0x8, DX longCore2: MOVQ (CX), SI MOVQ $0x819b13af, R9 IMULQ R9, SI ADDQ SI, BP ROLQ $0x3f, BP XORQ DI, BP ADDQ $0x8, CX SUBQ $0x8, DX longCore1: MOVQ (CX), SI MOVQ $0x91cb27e5, R9 IMULQ R9, SI ADDQ SI, DI RORQ $0x2f, DI ADDQ BX, DI ADDQ $0x8, CX SUBQ $0x8, DX longCore0: RORQ $0xb, AX SUBQ BP, AX ADDQ $0x1, R8 MOVQ $0x9c1b8e1e9628323f, SI IMULQ SI, R8 XORQ R8, BX CMPQ DX, $0x0 JE longTail0 CMPQ DX, $0x1 JE longTail1 CMPQ DX, $0x2 JE longTail2 CMPQ DX, $0x3 JE longTail3 CMPQ DX, $0x4 JE longTail4 CMPQ DX, $0x5 JE longTail5 CMPQ DX, $0x6 JE longTail6 CMPQ DX, $0x7 JE longTail7 longTail7: MOVBQZX 6(CX), SI ADDQ SI, BP longTail6: MOVWQZX 4(CX), SI ADDQ SI, DI MOVLQZX (CX), SI ADDQ SI, AX JMP longAfter longTail5: MOVBQZX 4(CX), SI ADDQ SI, BP longTail4: MOVLQZX (CX), SI ADDQ SI, DI JMP longAfter longTail3: MOVBQZX 2(CX), SI ADDQ SI, AX longTail2: MOVWQZX (CX), SI ADDQ SI, BP JMP longAfter longTail1: MOVBQZX (CX), SI ADDQ SI, DI longTail0: ROLQ $0x20, AX XORQ $0xff, AX longAfter: SUBQ DI, BP RORQ $0x13, BX SUBQ BX, BP RORQ $0x35, BP XORQ BP, AX SUBQ AX, BX ROLQ $0x2b, AX ADDQ AX, BX RORQ $0x3, BX SUBQ BX, AX RORQ $0x2b, DI SUBQ AX, DI ROLQ $0x37, DI XORQ BX, DI SUBQ DI, BP RORQ $0x7, AX SUBQ DI, AX RORQ $0x1f, DI ADDQ DI, AX SUBQ BP, DI RORQ $0x27, AX XORQ AX, DI RORQ $0x11, AX XORQ DI, AX ADDQ AX, BP RORQ $0x9, BP XORQ BP, DI ROLQ $0x18, DI XORQ DI, AX RORQ $0x3b, AX RORQ $0x1, BX SUBQ BP, BX XORQ BP, BX XORQ AX, DI XORQ DI, BX MOVQ BX, ret+32(FP) RET