mirror of
https://github.com/emmansun/gmsm.git
synced 2025-04-26 04:06:18 +08:00
sm4: xts sm4ni arm64, fix bug
This commit is contained in:
parent
9cc53170df
commit
d28883e2c7
@ -48,7 +48,16 @@
|
|||||||
VEOR T4.B16, B4.B16, B4.B16; \
|
VEOR T4.B16, B4.B16, B4.B16; \
|
||||||
VEOR T5.B16, B5.B16, B5.B16; \
|
VEOR T5.B16, B5.B16, B5.B16; \
|
||||||
VEOR T6.B16, B6.B16, B6.B16; \
|
VEOR T6.B16, B6.B16, B6.B16; \
|
||||||
VEOR T7.B16, B7.B16, B7.B16
|
VEOR T7.B16, B7.B16, B7.B16; \
|
||||||
|
\
|
||||||
|
VREV32 B0.B16, B0.B16; \
|
||||||
|
VREV32 B1.B16, B1.B16; \
|
||||||
|
VREV32 B2.B16, B2.B16; \
|
||||||
|
VREV32 B3.B16, B3.B16; \
|
||||||
|
VREV32 B4.B16, B4.B16; \
|
||||||
|
VREV32 B5.B16, B5.B16; \
|
||||||
|
VREV32 B6.B16, B6.B16; \
|
||||||
|
VREV32 B7.B16, B7.B16
|
||||||
|
|
||||||
#define store8blocks \
|
#define store8blocks \
|
||||||
VEOR T0.B16, B0.B16, B0.B16; \
|
VEOR T0.B16, B0.B16, B0.B16; \
|
||||||
@ -108,6 +117,7 @@ xtsSm4EncSingles:
|
|||||||
|
|
||||||
VLD1.P 16(srcPtr), [B0.S4]
|
VLD1.P 16(srcPtr), [B0.S4]
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
|
VREV32 B0.B16, B0.B16
|
||||||
sm4eEnc1block()
|
sm4eEnc1block()
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
VST1.P [B0.S4], 16(dstPtr)
|
VST1.P [B0.S4], 16(dstPtr)
|
||||||
@ -153,6 +163,7 @@ less_than2:
|
|||||||
xtsSm4EncTailEnc:
|
xtsSm4EncTailEnc:
|
||||||
VLD1 (RSP), [B0.B16]
|
VLD1 (RSP), [B0.B16]
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
|
VREV32 B0.B16, B0.B16
|
||||||
sm4eEnc1block()
|
sm4eEnc1block()
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
VST1 [B0.B16], (R9)
|
VST1 [B0.B16], (R9)
|
||||||
@ -200,6 +211,7 @@ xtsSm4EncSingles:
|
|||||||
|
|
||||||
VLD1.P 16(srcPtr), [B0.S4]
|
VLD1.P 16(srcPtr), [B0.S4]
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
|
VREV32 B0.B16, B0.B16
|
||||||
sm4eEnc1block()
|
sm4eEnc1block()
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
VST1.P [B0.S4], 16(dstPtr)
|
VST1.P [B0.S4], 16(dstPtr)
|
||||||
@ -245,6 +257,7 @@ less_than2:
|
|||||||
xtsSm4EncTailEnc:
|
xtsSm4EncTailEnc:
|
||||||
VLD1 (RSP), [B0.B16]
|
VLD1 (RSP), [B0.B16]
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
|
VREV32 B0.B16, B0.B16
|
||||||
sm4eEnc1block()
|
sm4eEnc1block()
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
VST1 [B0.B16], (R9)
|
VST1 [B0.B16], (R9)
|
||||||
@ -292,6 +305,7 @@ xtsSm4DecSingles:
|
|||||||
|
|
||||||
VLD1.P 16(srcPtr), [B0.S4]
|
VLD1.P 16(srcPtr), [B0.S4]
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
|
VREV32 B0.B16, B0.B16
|
||||||
sm4eEnc1block()
|
sm4eEnc1block()
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
VST1.P [B0.S4], 16(dstPtr)
|
VST1.P [B0.S4], 16(dstPtr)
|
||||||
@ -309,6 +323,7 @@ xtsSm4DecTail:
|
|||||||
mul2Inline
|
mul2Inline
|
||||||
VLD1.P 16(srcPtr), [B0.S4]
|
VLD1.P 16(srcPtr), [B0.S4]
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
|
VREV32 B0.B16, B0.B16
|
||||||
sm4eEnc1block()
|
sm4eEnc1block()
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
VST1.P [B0.S4], 16(dstPtr)
|
VST1.P [B0.S4], 16(dstPtr)
|
||||||
@ -349,6 +364,7 @@ less_than2:
|
|||||||
xtsSm4DecTailDec:
|
xtsSm4DecTailDec:
|
||||||
VLD1 (RSP), [B0.B16]
|
VLD1 (RSP), [B0.B16]
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
|
VREV32 B0.B16, B0.B16
|
||||||
sm4eEnc1block()
|
sm4eEnc1block()
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
VST1 [B0.B16], (R9)
|
VST1 [B0.B16], (R9)
|
||||||
@ -358,6 +374,7 @@ xtsSm4DecTailDec:
|
|||||||
xtsSm4DecLastBlock:
|
xtsSm4DecLastBlock:
|
||||||
VLD1.P 16(srcPtr), [B0.S4]
|
VLD1.P 16(srcPtr), [B0.S4]
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
|
VREV32 B0.B16, B0.B16
|
||||||
sm4eEnc1block()
|
sm4eEnc1block()
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
VST1.P [B0.S4], 16(dstPtr)
|
VST1.P [B0.S4], 16(dstPtr)
|
||||||
@ -407,6 +424,7 @@ xtsSm4DecSingles:
|
|||||||
|
|
||||||
VLD1.P 16(srcPtr), [B0.S4]
|
VLD1.P 16(srcPtr), [B0.S4]
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
|
VREV32 B0.B16, B0.B16
|
||||||
sm4eEnc1block()
|
sm4eEnc1block()
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
VST1.P [B0.S4], 16(dstPtr)
|
VST1.P [B0.S4], 16(dstPtr)
|
||||||
@ -424,6 +442,7 @@ xtsSm4DecTail:
|
|||||||
mul2GBInline
|
mul2GBInline
|
||||||
VLD1.P 16(srcPtr), [B0.S4]
|
VLD1.P 16(srcPtr), [B0.S4]
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
|
VREV32 B0.B16, B0.B16
|
||||||
sm4eEnc1block()
|
sm4eEnc1block()
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
VST1.P [B0.S4], 16(dstPtr)
|
VST1.P [B0.S4], 16(dstPtr)
|
||||||
@ -464,6 +483,7 @@ less_than2:
|
|||||||
xtsSm4DecTailDec:
|
xtsSm4DecTailDec:
|
||||||
VLD1 (RSP), [B0.B16]
|
VLD1 (RSP), [B0.B16]
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
|
VREV32 B0.B16, B0.B16
|
||||||
sm4eEnc1block()
|
sm4eEnc1block()
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
VST1 [B0.B16], (R9)
|
VST1 [B0.B16], (R9)
|
||||||
@ -473,6 +493,7 @@ xtsSm4DecTailDec:
|
|||||||
xtsSm4DecLastBlock:
|
xtsSm4DecLastBlock:
|
||||||
VLD1.P 16(srcPtr), [B0.S4]
|
VLD1.P 16(srcPtr), [B0.S4]
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
|
VREV32 B0.B16, B0.B16
|
||||||
sm4eEnc1block()
|
sm4eEnc1block()
|
||||||
VEOR TW.B16, B0.B16, B0.B16
|
VEOR TW.B16, B0.B16, B0.B16
|
||||||
VST1.P [B0.S4], 16(dstPtr)
|
VST1.P [B0.S4], 16(dstPtr)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user