mirror of
https://github.com/emmansun/gmsm.git
synced 2025-04-26 04:06:18 +08:00
sm4: gcm init use PALIGNR to reduce instructions
This commit is contained in:
parent
d3e6412258
commit
f10b09f5a2
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user