sm4: gcm init use PALIGNR to reduce instructions

This commit is contained in:
emmansun 2023-07-03 15:41:05 +08:00
parent d3e6412258
commit f10b09f5a2

View File

@ -297,21 +297,19 @@ TEXT ·gcmSm4Init(SB),NOSPLIT,$0
XORL CX, CX XORL CX, CX
sm4InitEncLoop: sm4InitEncLoop:
SM4_SINGLE_ROUND(0, RK, CX, T0, T1, T2, B0, B1, B2, B3) SM4_SINGLE_ROUND(0, RK, CX, T0, T1, T2, B3, B2, B1, B0)
SM4_SINGLE_ROUND(1, RK, CX, T0, T1, T2, B1, B2, B3, B0) SM4_SINGLE_ROUND(1, RK, CX, T0, T1, T2, B2, B1, B0, B3)
SM4_SINGLE_ROUND(2, RK, CX, T0, T1, T2, B2, B3, B0, B1) SM4_SINGLE_ROUND(2, RK, CX, T0, T1, T2, B1, B0, B3, B2)
SM4_SINGLE_ROUND(3, RK, CX, T0, T1, T2, B3, B0, B1, B2) SM4_SINGLE_ROUND(3, RK, CX, T0, T1, T2, B0, B3, B2, B1)
ADDL $16, CX ADDL $16, CX
CMPL CX, $4*32 CMPL CX, $4*32
JB sm4InitEncLoop JB sm4InitEncLoop
PEXTRD $0, B1, R8 PALIGNR $4, B3, B3
PINSRD $1, R8, B0 PALIGNR $4, B3, B2
PEXTRD $0, B2, R8 PALIGNR $4, B2, B1
PINSRD $2, R8, B0 PALIGNR $4, B1, B0
PEXTRD $0, B3, R8
PINSRD $3, R8, B0
// H * 2 // H * 2
PSHUFD $0xff, B0, T0 PSHUFD $0xff, B0, T0