// Copyright 2012 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// This code was translated into a form compatible with 6a from the public
// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html

// +build amd64,!gccgo,!appengine

// func freeze(inout *[5]uint64)
TEXT ·freeze(SB),7,$96-8
	MOVQ inout+0(FP), DI

	MOVQ SP,R11
	MOVQ $31,CX
	NOTQ CX
	ANDQ CX,SP
	ADDQ $32,SP

	MOVQ R11,0(SP)
	MOVQ R12,8(SP)
	MOVQ R13,16(SP)
	MOVQ R14,24(SP)
	MOVQ R15,32(SP)
	MOVQ BX,40(SP)
	MOVQ BP,48(SP)
	MOVQ 0(DI),SI
	MOVQ 8(DI),DX
	MOVQ 16(DI),CX
	MOVQ 24(DI),R8
	MOVQ 32(DI),R9
	MOVQ ·REDMASK51(SB),AX
	MOVQ AX,R10
	SUBQ $18,R10
	MOVQ $3,R11
REDUCELOOP:
	MOVQ SI,R12
	SHRQ $51,R12
	ANDQ AX,SI
	ADDQ R12,DX
	MOVQ DX,R12
	SHRQ $51,R12
	ANDQ AX,DX
	ADDQ R12,CX
	MOVQ CX,R12
	SHRQ $51,R12
	ANDQ AX,CX
	ADDQ R12,R8
	MOVQ R8,R12
	SHRQ $51,R12
	ANDQ AX,R8
	ADDQ R12,R9
	MOVQ R9,R12
	SHRQ $51,R12
	ANDQ AX,R9
	IMUL3Q $19,R12,R12
	ADDQ R12,SI
	SUBQ $1,R11
	JA REDUCELOOP
	MOVQ $1,R12
	CMPQ R10,SI
	CMOVQLT R11,R12
	CMPQ AX,DX
	CMOVQNE R11,R12
	CMPQ AX,CX
	CMOVQNE R11,R12
	CMPQ AX,R8
	CMOVQNE R11,R12
	CMPQ AX,R9
	CMOVQNE R11,R12
	NEGQ R12
	ANDQ R12,AX
	ANDQ R12,R10
	SUBQ R10,SI
	SUBQ AX,DX
	SUBQ AX,CX
	SUBQ AX,R8
	SUBQ AX,R9
	MOVQ SI,0(DI)
	MOVQ DX,8(DI)
	MOVQ CX,16(DI)
	MOVQ R8,24(DI)
	MOVQ R9,32(DI)
	MOVQ 0(SP),R11
	MOVQ 8(SP),R12
	MOVQ 16(SP),R13
	MOVQ 24(SP),R14
	MOVQ 32(SP),R15
	MOVQ 40(SP),BX
	MOVQ 48(SP),BP
	MOVQ R11,SP
	MOVQ DI,AX
	MOVQ SI,DX
	RET
