ppc64x: sm4/zuc reduce VAND

This commit is contained in:
Sun Yimin 2024-11-07 17:19:53 +08:00 committed by GitHub
parent 1924799006
commit 16219eef8a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 9 additions and 12 deletions

View File

@ -86,8 +86,7 @@
#define AFFINE_TRANSFORM(L, H, V_FOUR, x, y, z) \
VAND NIBBLE_MASK, x, z; \
VPERM L, L, z, y; \
VSRD x, V_FOUR, x; \
VAND NIBBLE_MASK, x, z; \
VSRB x, V_FOUR, z; \
VPERM H, H, z, x; \
VXOR y, x, x
@ -102,8 +101,7 @@
VNOR x, x, z; \ // z = NOT(x)
VAND NIBBLE_MASK, z, z; \
VPERM L, L, z, y; \
VSRD x, V_FOUR, x; \
VAND NIBBLE_MASK, x, z; \
VSRB x, V_FOUR, z; \
VPERM H, H, z, x; \
VXOR y, x, x

View File

@ -60,7 +60,7 @@ GLOBL ·rcon(SB), RODATA, $112
// func expandKeyAsm(key *byte, ck, enc, dec *uint32, inst int)
TEXT ·expandKeyAsm(SB),NOSPLIT,$0
// prepare/load constants
VSPLTISW $4, V_FOUR;
VSPLTISB $4, V_FOUR;
#ifdef NEEDS_PERMW
MOVD $·rcon(SB), R4
LVX (R4), ESPERMW
@ -115,7 +115,7 @@ ksLoop:
// func encryptBlockAsm(xk *uint32, dst, src *byte, inst int)
TEXT ·encryptBlockAsm(SB),NOSPLIT,$0
// prepare/load constants
VSPLTISW $4, V_FOUR;
VSPLTISB $4, V_FOUR;
#ifdef NEEDS_PERMW
MOVD $·rcon(SB), R4
LVX (R4), ESPERMW
@ -156,7 +156,7 @@ encryptBlockLoop:
// func encryptBlocksAsm(xk *uint32, dst, src []byte, inst int)
TEXT ·encryptBlocksAsm(SB),NOSPLIT,$0
// prepare/load constants
VSPLTISW $4, V_FOUR;
VSPLTISB $4, V_FOUR;
#ifdef NEEDS_PERMW
MOVD $·rcon(SB), R4
LVX (R4), ESPERMW

View File

@ -45,7 +45,7 @@ TEXT ·decryptBlocksChain(SB),NOSPLIT,$0
#define rk R5
#define srcLen R6
// prepare/load constants
VSPLTISW $4, V_FOUR;
VSPLTISB $4, V_FOUR;
#ifdef NEEDS_PERMW
MOVD $·rcon(SB), R4
LVX (R4), ESPERMW

View File

@ -30,7 +30,7 @@ TEXT ·encryptSm4Ecb(SB),NOSPLIT,$0
#define rk R5
#define srcLen R6
// prepare/load constants
VSPLTISW $4, V_FOUR;
VSPLTISB $4, V_FOUR;
#ifdef NEEDS_PERMW
MOVD $·rcon(SB), R4
LVX (R4), ESPERMW

View File

@ -42,7 +42,7 @@ GLOBL rcon<>(SB), RODATA, $160
#define P3 V30
#define LOAD_CONSTS \
VSPLTISW $4, V_FOUR \
VSPLTISB $4, V_FOUR \
MOVD $rcon<>+0x00(SB), R4 \
LXVD2X (R4)(R0), NIBBLE_MASK \
MOVD $0x10, R5 \
@ -89,8 +89,7 @@ GLOBL rcon<>(SB), RODATA, $160
#define AFFINE_TRANSFORM(L, H, V_FOUR, x, y, z) \
VAND NIBBLE_MASK, x, z; \
VPERM L, L, z, y; \
VSRD x, V_FOUR, x; \
VAND NIBBLE_MASK, x, z; \
VSRB x, V_FOUR, z; \
VPERM H, H, z, x; \
VXOR y, x, x