mirror of
https://github.com/emmansun/gmsm.git
synced 2025-04-26 12:16:20 +08:00
zuc: eia256 ppc64x use VPERXOR for bit reverse #262
This commit is contained in:
parent
9057b79253
commit
a33c2ae118
@ -20,7 +20,6 @@
|
|||||||
#define KS_H V11
|
#define KS_H V11
|
||||||
#define BIT_REV_TAB_L V12
|
#define BIT_REV_TAB_L V12
|
||||||
#define BIT_REV_TAB_H V13
|
#define BIT_REV_TAB_H V13
|
||||||
#define BIT_REV_AND_TAB V14
|
|
||||||
#define ZERO V15
|
#define ZERO V15
|
||||||
#define PTR R7
|
#define PTR R7
|
||||||
|
|
||||||
@ -43,26 +42,18 @@ TEXT ·eia256RoundTag8(SB),NOSPLIT,$0
|
|||||||
VPERM XDATA, XDATA, XTMP1, XDATA
|
VPERM XDATA, XDATA, XTMP1, XDATA
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
LXVD2X (PTR)(R0), BIT_REV_AND_TAB
|
|
||||||
VAND BIT_REV_AND_TAB, XDATA, XTMP3
|
|
||||||
VSPLTISB $4, XTMP2;
|
VSPLTISB $4, XTMP2;
|
||||||
VSRW XDATA, XTMP2, XTMP1
|
LXVD2X (PTR)(R0), BIT_REV_TAB_L
|
||||||
VAND BIT_REV_AND_TAB, XTMP1, XTMP1
|
|
||||||
|
|
||||||
MOVD $0x10, R8
|
|
||||||
LXVD2X (PTR)(R8), BIT_REV_TAB_L
|
|
||||||
VSLB BIT_REV_TAB_L, XTMP2, BIT_REV_TAB_H
|
VSLB BIT_REV_TAB_L, XTMP2, BIT_REV_TAB_H
|
||||||
VPERM BIT_REV_TAB_L, BIT_REV_TAB_L, XTMP1, XTMP1
|
VPERMXOR BIT_REV_TAB_L, BIT_REV_TAB_H, XDATA, XTMP3 // XTMP3 - bit reverse data bytes
|
||||||
VPERM BIT_REV_TAB_H, BIT_REV_TAB_H, XTMP3, XTMP3
|
|
||||||
VXOR XTMP1, XTMP3, XTMP3 // XTMP3 - bit reverse data bytes
|
|
||||||
|
|
||||||
// ZUC authentication part, 4x32 data bits
|
// ZUC authentication part, 4x32 data bits
|
||||||
// setup data
|
// setup data
|
||||||
VSPLTISB $0, ZERO
|
VSPLTISB $0, ZERO
|
||||||
MOVD $0x20, R8
|
MOVD $0x10, R8
|
||||||
LXVD2X (PTR)(R8), XTMP4
|
LXVD2X (PTR)(R8), XTMP4
|
||||||
VPERM ZERO, XTMP3, XTMP4, XTMP1
|
VPERM ZERO, XTMP3, XTMP4, XTMP1
|
||||||
MOVD $0x30, R8
|
MOVD $0x20, R8
|
||||||
LXVD2X (PTR)(R8), XTMP4
|
LXVD2X (PTR)(R8), XTMP4
|
||||||
VPERM ZERO, XTMP3, XTMP4, XTMP2
|
VPERM ZERO, XTMP3, XTMP4, XTMP2
|
||||||
|
|
||||||
@ -72,7 +63,7 @@ TEXT ·eia256RoundTag8(SB),NOSPLIT,$0
|
|||||||
LXVW4X (R8)(R4), KS_M1
|
LXVW4X (R8)(R4), KS_M1
|
||||||
MOVD $16, R8
|
MOVD $16, R8
|
||||||
LXVW4X (R8)(R4), KS_M2
|
LXVW4X (R8)(R4), KS_M2
|
||||||
MOVD $0x40, R8
|
MOVD $0x30, R8
|
||||||
LXVD2X (PTR)(R8), XTMP4
|
LXVD2X (PTR)(R8), XTMP4
|
||||||
VPERM KS_L, KS_L, XTMP4, KS_L
|
VPERM KS_L, KS_L, XTMP4, KS_L
|
||||||
VPERM KS_M1, KS_M1, XTMP4, KS_M1
|
VPERM KS_M1, KS_M1, XTMP4, KS_M1
|
||||||
@ -131,26 +122,18 @@ TEXT ·eia256RoundTag16(SB),NOSPLIT,$0
|
|||||||
VPERM XDATA, XDATA, XTMP1, XDATA
|
VPERM XDATA, XDATA, XTMP1, XDATA
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
LXVD2X (PTR)(R0), BIT_REV_AND_TAB
|
|
||||||
VAND BIT_REV_AND_TAB, XDATA, XTMP3
|
|
||||||
VSPLTISB $4, XTMP2;
|
VSPLTISB $4, XTMP2;
|
||||||
VSRW XDATA, XTMP2, XTMP1
|
LXVD2X (PTR)(R0), BIT_REV_TAB_L
|
||||||
VAND BIT_REV_AND_TAB, XTMP1, XTMP1
|
|
||||||
|
|
||||||
MOVD $0x10, R8
|
|
||||||
LXVD2X (PTR)(R8), BIT_REV_TAB_L
|
|
||||||
VSLB BIT_REV_TAB_L, XTMP2, BIT_REV_TAB_H
|
VSLB BIT_REV_TAB_L, XTMP2, BIT_REV_TAB_H
|
||||||
VPERM BIT_REV_TAB_L, BIT_REV_TAB_L, XTMP1, XTMP1
|
VPERMXOR BIT_REV_TAB_L, BIT_REV_TAB_H, XDATA, XTMP3 // XTMP3 - bit reverse data bytes
|
||||||
VPERM BIT_REV_TAB_H, BIT_REV_TAB_H, XTMP3, XTMP3
|
|
||||||
VXOR XTMP1, XTMP3, XTMP3 // XTMP3 - bit reverse data bytes
|
|
||||||
|
|
||||||
// ZUC authentication part, 4x32 data bits
|
// ZUC authentication part, 4x32 data bits
|
||||||
// setup data
|
// setup data
|
||||||
VSPLTISB $0, ZERO
|
VSPLTISB $0, ZERO
|
||||||
MOVD $0x20, R8
|
MOVD $0x10, R8
|
||||||
LXVD2X (PTR)(R8), XTMP4
|
LXVD2X (PTR)(R8), XTMP4
|
||||||
VPERM ZERO, XTMP3, XTMP4, XTMP1
|
VPERM ZERO, XTMP3, XTMP4, XTMP1
|
||||||
MOVD $0x30, R8
|
MOVD $0x20, R8
|
||||||
LXVD2X (PTR)(R8), XTMP4
|
LXVD2X (PTR)(R8), XTMP4
|
||||||
VPERM ZERO, XTMP3, XTMP4, XTMP2
|
VPERM ZERO, XTMP3, XTMP4, XTMP2
|
||||||
|
|
||||||
@ -161,7 +144,7 @@ TEXT ·eia256RoundTag16(SB),NOSPLIT,$0
|
|||||||
MOVD $16, R8
|
MOVD $16, R8
|
||||||
LXVW4X (R8)(R4), KS_M2
|
LXVW4X (R8)(R4), KS_M2
|
||||||
VOR KS_M2, KS_M2, KS_H
|
VOR KS_M2, KS_M2, KS_H
|
||||||
MOVD $0x40, R8
|
MOVD $0x30, R8
|
||||||
LXVD2X (PTR)(R8), XTMP4
|
LXVD2X (PTR)(R8), XTMP4
|
||||||
VPERM KS_L, KS_L, XTMP4, KS_L
|
VPERM KS_L, KS_L, XTMP4, KS_L
|
||||||
VPERM KS_M1, KS_M1, XTMP4, KS_M1
|
VPERM KS_M1, KS_M1, XTMP4, KS_M1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user