diff --git a/sm4/asm_ppc64x.s b/sm4/asm_ppc64x.s index 8e0d1cc..5e35f81 100644 --- a/sm4/asm_ppc64x.s +++ b/sm4/asm_ppc64x.s @@ -183,6 +183,16 @@ TEXT ·expandKeyAsm(SB),NOSPLIT,$0 VSLDOI $4, V1, V1, V2 VSLDOI $4, V2, V2, V3 + VOR ESPERMW, ESPERMW, V5 + SM4_SBOX(V5, V7, V8) + STXVW4X V5, (R5) + + VOR ESPERMW, ESPERMW, V5 + VSRW V5, V_FOUR, V5 + VAND NIBBLE_MASK, V5, V5 + STXVW4X V5, (R6) + +/* ksLoop: LXVW4X (R4), V4 SM4_EXPANDKEY_ROUND(V4, V7, V8, V9, V0, V1, V2, V3, V5) @@ -200,7 +210,7 @@ ksLoop: ADD $16, R4 ADD $-16, R6 BDNZ ksLoop - +*/ RET // func encryptBlocksAsm(xk *uint32, dst, src []byte, inst int)