Skip to content

Commit a33c2ae

Browse files
authored
zuc: eia256 ppc64x use VPERXOR for bit reverse #262
1 parent 9057b79 commit a33c2ae

File tree

1 file changed

+11
-28
lines changed

1 file changed

+11
-28
lines changed

zuc/eia256_asm_ppc64x.s

Lines changed: 11 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
#define KS_H V11
2121
#define BIT_REV_TAB_L V12
2222
#define BIT_REV_TAB_H V13
23-
#define BIT_REV_AND_TAB V14
2423
#define ZERO V15
2524
#define PTR R7
2625

@@ -43,26 +42,18 @@ TEXT ·eia256RoundTag8(SB),NOSPLIT,$0
4342
VPERM XDATA, XDATA, XTMP1, XDATA
4443
#endif
4544

46-
LXVD2X (PTR)(R0), BIT_REV_AND_TAB
47-
VAND BIT_REV_AND_TAB, XDATA, XTMP3
4845
VSPLTISB $4, XTMP2;
49-
VSRW XDATA, XTMP2, XTMP1
50-
VAND BIT_REV_AND_TAB, XTMP1, XTMP1
51-
52-
MOVD $0x10, R8
53-
LXVD2X (PTR)(R8), BIT_REV_TAB_L
46+
LXVD2X (PTR)(R0), BIT_REV_TAB_L
5447
VSLB BIT_REV_TAB_L, XTMP2, BIT_REV_TAB_H
55-
VPERM BIT_REV_TAB_L, BIT_REV_TAB_L, XTMP1, XTMP1
56-
VPERM BIT_REV_TAB_H, BIT_REV_TAB_H, XTMP3, XTMP3
57-
VXOR XTMP1, XTMP3, XTMP3 // XTMP3 - bit reverse data bytes
58-
48+
VPERMXOR BIT_REV_TAB_L, BIT_REV_TAB_H, XDATA, XTMP3 // XTMP3 - bit reverse data bytes
49+
5950
// ZUC authentication part, 4x32 data bits
6051
// setup data
6152
VSPLTISB $0, ZERO
62-
MOVD $0x20, R8
53+
MOVD $0x10, R8
6354
LXVD2X (PTR)(R8), XTMP4
6455
VPERM ZERO, XTMP3, XTMP4, XTMP1
65-
MOVD $0x30, R8
56+
MOVD $0x20, R8
6657
LXVD2X (PTR)(R8), XTMP4
6758
VPERM ZERO, XTMP3, XTMP4, XTMP2
6859

@@ -72,7 +63,7 @@ TEXT ·eia256RoundTag8(SB),NOSPLIT,$0
7263
LXVW4X (R8)(R4), KS_M1
7364
MOVD $16, R8
7465
LXVW4X (R8)(R4), KS_M2
75-
MOVD $0x40, R8
66+
MOVD $0x30, R8
7667
LXVD2X (PTR)(R8), XTMP4
7768
VPERM KS_L, KS_L, XTMP4, KS_L
7869
VPERM KS_M1, KS_M1, XTMP4, KS_M1
@@ -131,26 +122,18 @@ TEXT ·eia256RoundTag16(SB),NOSPLIT,$0
131122
VPERM XDATA, XDATA, XTMP1, XDATA
132123
#endif
133124

134-
LXVD2X (PTR)(R0), BIT_REV_AND_TAB
135-
VAND BIT_REV_AND_TAB, XDATA, XTMP3
136125
VSPLTISB $4, XTMP2;
137-
VSRW XDATA, XTMP2, XTMP1
138-
VAND BIT_REV_AND_TAB, XTMP1, XTMP1
139-
140-
MOVD $0x10, R8
141-
LXVD2X (PTR)(R8), BIT_REV_TAB_L
126+
LXVD2X (PTR)(R0), BIT_REV_TAB_L
142127
VSLB BIT_REV_TAB_L, XTMP2, BIT_REV_TAB_H
143-
VPERM BIT_REV_TAB_L, BIT_REV_TAB_L, XTMP1, XTMP1
144-
VPERM BIT_REV_TAB_H, BIT_REV_TAB_H, XTMP3, XTMP3
145-
VXOR XTMP1, XTMP3, XTMP3 // XTMP3 - bit reverse data bytes
128+
VPERMXOR BIT_REV_TAB_L, BIT_REV_TAB_H, XDATA, XTMP3 // XTMP3 - bit reverse data bytes
146129

147130
// ZUC authentication part, 4x32 data bits
148131
// setup data
149132
VSPLTISB $0, ZERO
150-
MOVD $0x20, R8
133+
MOVD $0x10, R8
151134
LXVD2X (PTR)(R8), XTMP4
152135
VPERM ZERO, XTMP3, XTMP4, XTMP1
153-
MOVD $0x30, R8
136+
MOVD $0x20, R8
154137
LXVD2X (PTR)(R8), XTMP4
155138
VPERM ZERO, XTMP3, XTMP4, XTMP2
156139

@@ -161,7 +144,7 @@ TEXT ·eia256RoundTag16(SB),NOSPLIT,$0
161144
MOVD $16, R8
162145
LXVW4X (R8)(R4), KS_M2
163146
VOR KS_M2, KS_M2, KS_H
164-
MOVD $0x40, R8
147+
MOVD $0x30, R8
165148
LXVD2X (PTR)(R8), XTMP4
166149
VPERM KS_L, KS_L, XTMP4, KS_L
167150
VPERM KS_M1, KS_M1, XTMP4, KS_M1

0 commit comments

Comments
 (0)