########################################################################
# Implement fast SHA-256 with SSSE3 instructions. (x86_64)
#
# Copyright (C) 2013 Intel Corporation.
#
# Authors:
#     James Guilford <james.guilford@intel.com>
#     Kirk Yap <kirk.s.yap@intel.com>
#     Tim Chen <tim.c.chen@linux.intel.com>
#
# This software is available to you under a choice of one of two
# licenses.  You may choose to be licensed under the terms of the GNU
# General Public License (GPL) Version 2, available from the file
# COPYING in the main directory of this source tree, or the
# OpenIB.org BSD license below:
#
#     Redistribution and use in source and binary forms, with or
#     without modification, are permitted provided that the following
#     conditions are met:
#
#      - Redistributions of source code must retain the above
#        copyright notice, this list of conditions and the following
#        disclaimer.
#
#      - Redistributions in binary form must reproduce the above
#        copyright notice, this list of conditions and the following
#        disclaimer in the documentation and/or other materials
#        provided with the distribution.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
########################################################################
#
# This code is described in an Intel White-Paper:
# "Fast SHA-256 Implementations on Intel Architecture Processors"
#
# To find it, surf to http://www.intel.com/p/en_US/embedded
# and search for that title.
#
########################################################################

#include <linux/linkage.h>
#include <linux/cfi_types.h>

## assume buffers not aligned
#define    MOVDQ movdqu

################################ Define Macros

# addm [mem], reg
# Add reg to mem using reg-mem add and store
.macro addm p1 p2
        add     \p1, \p2
        mov     \p2, \p1
.endm

################################

# COPY_XMM_AND_BSWAP xmm, [mem], byte_flip_mask
# Load xmm with mem and byte swap each dword
.macro COPY_XMM_AND_BSWAP p1 p2 p3
        MOVDQ \p2, \p1
        pshufb \p3, \p1
.endm

################################

X0 = %xmm4
X1 = %xmm5
X2 = %xmm6
X3 = %xmm7

XTMP0 = %xmm0
XTMP1 = %xmm1
XTMP2 = %xmm2
XTMP3 = %xmm3
XTMP4 = %xmm8
XFER = %xmm9

SHUF_00BA = %xmm10      # shuffle xBxA -> 00BA
SHUF_DC00 = %xmm11      # shuffle xDxC -> DC00
BYTE_FLIP_MASK = %xmm12

NUM_BLKS = %rdx   # 3rd arg
INP = %rsi        # 2nd arg
CTX = %rdi        # 1st arg

SRND = %rsi       # clobbers INP
c = %ecx
d = %r8d
e = %edx
TBL = %r12
a = %eax
b = %ebx

f = %r9d
g = %r10d
h = %r11d

y0 = %r13d
y1 = %r14d
y2 = %r15d



_INP_END_SIZE = 8
_INP_SIZE = 8
_XFER_SIZE = 16
_XMM_SAVE_SIZE = 0

_INP_END = 0
_INP            = _INP_END  + _INP_END_SIZE
_XFER           = _INP      + _INP_SIZE
_XMM_SAVE       = _XFER     + _XFER_SIZE
STACK_SIZE      = _XMM_SAVE + _XMM_SAVE_SIZE

# rotate_Xs
# Rotate values of symbols X0...X3
.macro rotate_Xs
X_ = X0
X0 = X1
X1 = X2
X2 = X3
X3 = X_
.endm

# ROTATE_ARGS
# Rotate values of symbols a...h
.macro ROTATE_ARGS
TMP_ = h
h = g
g = f
f = e
e = d
d = c
c = b
b = a
a = TMP_
.endm

.macro FOUR_ROUNDS_AND_SCHED
	## compute s0 four at a time and s1 two at a time
	## compute W[-16] + W[-7] 4 at a time
	movdqa  X3, XTMP0
	mov     e, y0			# y0 = e
	ror     $(25-11), y0            # y0 = e >> (25-11)
	mov     a, y1                   # y1 = a
	palignr $4, X2, XTMP0           # XTMP0 = W[-7]
	ror     $(22-13), y1            # y1 = a >> (22-13)
	xor     e, y0                   # y0 = e ^ (e >> (25-11))
	mov     f, y2                   # y2 = f
	ror     $(11-6), y0             # y0 = (e >> (11-6)) ^ (e >> (25-6))
	movdqa  X1, XTMP1
	xor     a, y1                   # y1 = a ^ (a >> (22-13)
	xor     g, y2                   # y2 = f^g
	paddd   X0, XTMP0               # XTMP0 = W[-7] + W[-16]
	xor     e, y0                   # y0 = e ^ (e >> (11-6)) ^ (e >> (25-6))
	and     e, y2                   # y2 = (f^g)&e
	ror     $(13-2), y1             # y1 = (a >> (13-2)) ^ (a >> (22-2))
	## compute s0
	palignr $4, X0, XTMP1           # XTMP1 = W[-15]
	xor     a, y1                   # y1 = a ^ (a >> (13-2)) ^ (a >> (22-2))
	ror     $6, y0                  # y0 = S1 = (e>>6) & (e>>11) ^ (e>>25)
	xor     g, y2                   # y2 = CH = ((f^g)&e)^g
	movdqa  XTMP1, XTMP2            # XTMP2 = W[-15]
	ror     $2, y1                  # y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22)
	add     y0, y2                  # y2 = S1 + CH
	add     _XFER(%rsp) , y2        # y2 = k + w + S1 + CH
	movdqa  XTMP1, XTMP3            # XTMP3 = W[-15]
	mov     a, y0                   # y0 = a
	add     y2, h                   # h = h + S1 + CH + k + w
	mov     a, y2                   # y2 = a
	pslld   $(32-7), XTMP1          #
	or      c, y0                   # y0 = a|c
	add     h, d                    # d = d + h + S1 + CH + k + w
	and     c, y2                   # y2 = a&c
	psrld   $7, XTMP2               #
	and     b, y0                   # y0 = (a|c)&b
	add     y1, h                   # h = h + S1 + CH + k + w + S0
	por     XTMP2, XTMP1            # XTMP1 = W[-15] ror 7
	or      y2, y0                  # y0 = MAJ = (a|c)&b)|(a&c)
	add     y0, h                   # h = h + S1 + CH + k + w + S0 + MAJ
					#
	ROTATE_ARGS                     #
	movdqa  XTMP3, XTMP2            # XTMP2 = W[-15]
	mov     e, y0                   # y0 = e
	mov     a, y1                   # y1 = a
	movdqa  XTMP3, XTMP4            # XTMP4 = W[-15]
	ror     $(25-11), y0            # y0 = e >> (25-11)
	xor     e, y0                   # y0 = e ^ (e >> (25-11))
	mov     f, y2                   # y2 = f
	ror     $(22-13), y1            # y1 = a >> (22-13)
	pslld   $(32-18), XTMP3         #
	xor     a, y1                   # y1 = a ^ (a >> (22-13)
	ror     $(11-6), y0             # y0 = (e >> (11-6)) ^ (e >> (25-6))
	xor     g, y2                   # y2 = f^g
	psrld   $18, XTMP2              #
	ror     $(13-2), y1             # y1 = (a >> (13-2)) ^ (a >> (22-2))
	xor     e, y0                   # y0 = e ^ (e >> (11-6)) ^ (e >> (25-6))
	and     e, y2                   # y2 = (f^g)&e
	ror     $6, y0                  # y0 = S1 = (e>>6) & (e>>11) ^ (e>>25)
	pxor    XTMP3, XTMP1
	xor     a, y1                   # y1 = a ^ (a >> (13-2)) ^ (a >> (22-2))
	xor     g, y2                   # y2 = CH = ((f^g)&e)^g
	psrld   $3, XTMP4               # XTMP4 = W[-15] >> 3
	add     y0, y2                  # y2 = S1 + CH
	add     (1*4 + _XFER)(%rsp), y2 # y2 = k + w + S1 + CH
	ror     $2, y1                  # y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22)
	pxor    XTMP2, XTMP1            # XTMP1 = W[-15] ror 7 ^ W[-15] ror 18
	mov     a, y0                   # y0 = a
	add     y2, h                   # h = h + S1 + CH + k + w
	mov     a, y2                   # y2 = a
	pxor    XTMP4, XTMP1            # XTMP1 = s0
	or      c, y0                   # y0 = a|c
	add     h, d                    # d = d + h + S1 + CH + k + w
	and     c, y2                   # y2 = a&c
	## compute low s1
	pshufd  $0b11111010, X3, XTMP2   # XTMP2 = W[-2] {BBAA}
	and     b, y0			# y0 = (a|c)&b
	add     y1, h                   # h = h + S1 + CH + k + w + S0
	paddd   XTMP1, XTMP0            # XTMP0 = W[-16] + W[-7] + s0
	or      y2, y0                  # y0 = MAJ = (a|c)&b)|(a&c)
	add     y0, h                   # h = h + S1 + CH + k + w + S0 + MAJ

	ROTATE_ARGS
	movdqa  XTMP2, XTMP3            # XTMP3 = W[-2] {BBAA}
	mov     e, y0                   # y0 = e
	mov     a, y1                   # y1 = a
	ror     $(25-11), y0            # y0 = e >> (25-11)
	movdqa  XTMP2, XTMP4            # XTMP4 = W[-2] {BBAA}
	xor     e, y0                   # y0 = e ^ (e >> (25-11))
	ror     $(22-13), y1            # y1 = a >> (22-13)
	mov     f, y2                   # y2 = f
	xor     a, y1                   # y1 = a ^ (a >> (22-13)
	ror     $(11-6), y0             # y0 = (e >> (11-6)) ^ (e >> (25-6))
	psrlq   $17, XTMP2              # XTMP2 = W[-2] ror 17 {xBxA}
	xor     g, y2                   # y2 = f^g
	psrlq   $19, XTMP3              # XTMP3 = W[-2] ror 19 {xBxA}
	xor     e, y0                   # y0 = e ^ (e >> (11-6)) ^ (e >> (25-6))
	and     e, y2                   # y2 = (f^g)&e
	psrld   $10, XTMP4              # XTMP4 = W[-2] >> 10 {BBAA}
	ror     $(13-2), y1             # y1 = (a >> (13-2)) ^ (a >> (22-2))
	xor     a, y1                   # y1 = a ^ (a >> (13-2)) ^ (a >> (22-2))
	xor     g, y2                   # y2 = CH = ((f^g)&e)^g
	ror     $6, y0                  # y0 = S1 = (e>>6) & (e>>11) ^ (e>>25)
	pxor    XTMP3, XTMP2
	add     y0, y2                  # y2 = S1 + CH
	ror     $2, y1                  # y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22)
	add     (2*4 + _XFER)(%rsp), y2 # y2 = k + w + S1 + CH
	pxor    XTMP2, XTMP4            # XTMP4 = s1 {xBxA}
	mov     a, y0                   # y0 = a
	add     y2, h                   # h = h + S1 + CH + k + w
	mov     a, y2                   # y2 = a
	pshufb  SHUF_00BA, XTMP4        # XTMP4 = s1 {00BA}
	or      c, y0                   # y0 = a|c
	add     h, d                    # d = d + h + S1 + CH + k + w
	and     c, y2                   # y2 = a&c
	paddd   XTMP4, XTMP0            # XTMP0 = {..., ..., W[1], W[0]}
	and     b, y0                   # y0 = (a|c)&b
	add     y1, h                   # h = h + S1 + CH + k + w + S0
	## compute high s1
	pshufd  $0b01010000, XTMP0, XTMP2 # XTMP2 = W[-2] {BBAA}
	or      y2, y0                  # y0 = MAJ = (a|c)&b)|(a&c)
	add     y0, h                   # h = h + S1 + CH + k + w + S0 + MAJ
					#
	ROTATE_ARGS                     #
	movdqa  XTMP2, XTMP3            # XTMP3 = W[-2] {DDCC}
	mov     e, y0                   # y0 = e
	ror     $(25-11), y0            # y0 = e >> (25-11)
	mov     a, y1                   # y1 = a
	movdqa  XTMP2, X0               # X0    = W[-2] {DDCC}
	ror     $(22-13), y1            # y1 = a >> (22-13)
	xor     e, y0                   # y0 = e ^ (e >> (25-11))
	mov     f, y2                   # y2 = f
	ror     $(11-6), y0             # y0 = (e >> (11-6)) ^ (e >> (25-6))
	psrlq   $17, XTMP2              # XTMP2 = W[-2] ror 17 {xDxC}
	xor     a, y1                   # y1 = a ^ (a >> (22-13)
	xor     g, y2                   # y2 = f^g
	psrlq   $19, XTMP3              # XTMP3 = W[-2] ror 19 {xDxC}
	xor     e, y0                   # y0 = e ^ (e >> (11-6)) ^ (e >> (25
	and     e, y2                   # y2 = (f^g)&e
	ror     $(13-2), y1             # y1 = (a >> (13-2)) ^ (a >> (22-2))
	psrld   $10, X0                 # X0 = W[-2] >> 10 {DDCC}
	xor     a, y1                   # y1 = a ^ (a >> (13-2)) ^ (a >> (22
	ror     $6, y0                  # y0 = S1 = (e>>6) & (e>>11) ^ (e>>2
	xor     g, y2                   # y2 = CH = ((f^g)&e)^g
	pxor    XTMP3, XTMP2            #
	ror     $2, y1                  # y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>2
	add     y0, y2                  # y2 = S1 + CH
	add     (3*4 + _XFER)(%rsp), y2 # y2 = k + w + S1 + CH
	pxor    XTMP2, X0               # X0 = s1 {xDxC}
	mov     a, y0                   # y0 = a
	add     y2, h                   # h = h + S1 + CH + k + w
	mov     a, y2                   # y2 = a
	pshufb  SHUF_DC00, X0           # X0 = s1 {DC00}
	or      c, y0                   # y0 = a|c
	add     h, d                    # d = d + h + S1 + CH + k + w
	and     c, y2                   # y2 = a&c
	paddd   XTMP0, X0               # X0 = {W[3], W[2], W[1], W[0]}
	and     b, y0                   # y0 = (a|c)&b
	add     y1, h                   # h = h + S1 + CH + k + w + S0
	or      y2, y0                  # y0 = MAJ = (a|c)&b)|(a&c)
	add     y0, h                   # h = h + S1 + CH + k + w + S0 + MAJ

	ROTATE_ARGS
	rotate_Xs
.endm

## input is [rsp + _XFER + %1 * 4]
.macro DO_ROUND round
	mov     e, y0                 # y0 = e
	ror     $(25-11), y0          # y0 = e >> (25-11)
	mov     a, y1                 # y1 = a
	xor     e, y0                 # y0 = e ^ (e >> (25-11))
	ror     $(22-13), y1          # y1 = a >> (22-13)
	mov     f, y2                 # y2 = f
	xor     a, y1                 # y1 = a ^ (a >> (22-13)
	ror     $(11-6), y0           # y0 = (e >> (11-6)) ^ (e >> (25-6))
	xor     g, y2                 # y2 = f^g
	xor     e, y0                 # y0 = e ^ (e >> (11-6)) ^ (e >> (25-6))
	ror     $(13-2), y1           # y1 = (a >> (13-2)) ^ (a >> (22-2))
	and     e, y2                 # y2 = (f^g)&e
	xor     a, y1                 # y1 = a ^ (a >> (13-2)) ^ (a >> (22-2))
	ror     $6, y0                # y0 = S1 = (e>>6) & (e>>11) ^ (e>>25)
	xor     g, y2                 # y2 = CH = ((f^g)&e)^g
	add     y0, y2                # y2 = S1 + CH
	ror     $2, y1                # y1 = S0 = (a>>2) ^ (a>>13) ^ (a>>22)
	offset = \round * 4 + _XFER
	add     offset(%rsp), y2      # y2 = k + w + S1 + CH
	mov     a, y0                 # y0 = a
	add     y2, h                 # h = h + S1 + CH + k + w
	mov     a, y2                 # y2 = a
	or      c, y0                 # y0 = a|c
	add     h, d                  # d = d + h + S1 + CH + k + w
	and     c, y2                 # y2 = a&c
	and     b, y0                 # y0 = (a|c)&b
	add     y1, h                 # h = h + S1 + CH + k + w + S0
	or      y2, y0		      # y0 = MAJ = (a|c)&b)|(a&c)
	add     y0, h		      # h = h + S1 + CH + k + w + S0 + MAJ
	ROTATE_ARGS
.endm

########################################################################
## void sha256_transform_ssse3(struct sha256_state *state, const u8 *data,
##			       int blocks);
## arg 1 : pointer to state
##	   (struct sha256_state is assumed to begin with u32 state[8])
## arg 2 : pointer to input data
## arg 3 : Num blocks
########################################################################
.text
SYM_TYPED_FUNC_START(sha256_transform_ssse3)
	pushq   %rbx
	pushq   %r12
	pushq   %r13
	pushq   %r14
	pushq   %r15
	pushq   %rbp
	mov	%rsp, %rbp

	subq    $STACK_SIZE, %rsp
	and	$~15, %rsp

	shl     $6, NUM_BLKS		 # convert to bytes
	jz      done_hash
	add     INP, NUM_BLKS
	mov     NUM_BLKS, _INP_END(%rsp) # pointer to end of data

	## load initial digest
	mov     4*0(CTX), a
	mov     4*1(CTX), b
	mov     4*2(CTX), c
	mov     4*3(CTX), d
	mov     4*4(CTX), e
	mov     4*5(CTX), f
	mov     4*6(CTX), g
	mov     4*7(CTX), h

	movdqa  PSHUFFLE_BYTE_FLIP_MASK(%rip), BYTE_FLIP_MASK
	movdqa  _SHUF_00BA(%rip), SHUF_00BA
	movdqa  _SHUF_DC00(%rip), SHUF_DC00

loop0:
	lea     K256(%rip), TBL

	## byte swap first 16 dwords
	COPY_XMM_AND_BSWAP      X0, 0*16(INP), BYTE_FLIP_MASK
	COPY_XMM_AND_BSWAP      X1, 1*16(INP), BYTE_FLIP_MASK
	COPY_XMM_AND_BSWAP      X2, 2*16(INP), BYTE_FLIP_MASK
	COPY_XMM_AND_BSWAP      X3, 3*16(INP), BYTE_FLIP_MASK

	mov     INP, _INP(%rsp)

	## schedule 48 input dwords, by doing 3 rounds of 16 each
	mov     $3, SRND
.align 16
loop1:
	movdqa  (TBL), XFER
	paddd   X0, XFER
	movdqa  XFER, _XFER(%rsp)
	FOUR_ROUNDS_AND_SCHED

	movdqa  1*16(TBL), XFER
	paddd   X0, XFER
	movdqa  XFER, _XFER(%rsp)
	FOUR_ROUNDS_AND_SCHED

	movdqa  2*16(TBL), XFER
	paddd   X0, XFER
	movdqa  XFER, _XFER(%rsp)
	FOUR_ROUNDS_AND_SCHED

	movdqa  3*16(TBL), XFER
	paddd   X0, XFER
	movdqa  XFER, _XFER(%rsp)
	add     $4*16, TBL
	FOUR_ROUNDS_AND_SCHED

	sub     $1, SRND
	jne     loop1

	mov     $2, SRND
loop2:
	paddd   (TBL), X0
	movdqa  X0, _XFER(%rsp)
	DO_ROUND        0
	DO_ROUND        1
	DO_ROUND        2
	DO_ROUND        3
	paddd   1*16(TBL), X1
	movdqa  X1, _XFER(%rsp)
	add     $2*16, TBL
	DO_ROUND        0
	DO_ROUND        1
	DO_ROUND        2
	DO_ROUND        3

	movdqa  X2, X0
	movdqa  X3, X1

	sub     $1, SRND
	jne     loop2

	addm    (4*0)(CTX),a
	addm    (4*1)(CTX),b
	addm    (4*2)(CTX),c
	addm    (4*3)(CTX),d
	addm    (4*4)(CTX),e
	addm    (4*5)(CTX),f
	addm    (4*6)(CTX),g
	addm    (4*7)(CTX),h

	mov     _INP(%rsp), INP
	add     $64, INP
	cmp     _INP_END(%rsp), INP
	jne     loop0

done_hash:

	mov	%rbp, %rsp
	popq	%rbp
	popq    %r15
	popq    %r14
	popq    %r13
	popq    %r12
	popq    %rbx

	RET
SYM_FUNC_END(sha256_transform_ssse3)

.section	.rodata.cst256.K256, "aM", @progbits, 256
.align 64
K256:
        .long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
        .long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
        .long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
        .long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
        .long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
        .long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
        .long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
        .long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
        .long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
        .long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
        .long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
        .long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
        .long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
        .long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
        .long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
        .long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2

.section	.rodata.cst16.PSHUFFLE_BYTE_FLIP_MASK, "aM", @progbits, 16
.align 16
PSHUFFLE_BYTE_FLIP_MASK:
	.octa 0x0c0d0e0f08090a0b0405060700010203

.section	.rodata.cst16._SHUF_00BA, "aM", @progbits, 16
.align 16
# shuffle xBxA -> 00BA
_SHUF_00BA:
	.octa 0xFFFFFFFFFFFFFFFF0b0a090803020100

.section	.rodata.cst16._SHUF_DC00, "aM", @progbits, 16
.align 16
# shuffle xDxC -> DC00
_SHUF_DC00:
	.octa 0x0b0a090803020100FFFFFFFFFFFFFFFF
