20
20
#define KS_H V11
21
21
#define BIT_REV_TAB_L V12
22
22
#define BIT_REV_TAB_H V13
23
- #define BIT_REV_AND_TAB V14
24
23
#define ZERO V15
25
24
#define PTR R7
26
25
@@ -43,26 +42,18 @@ TEXT ·eia256RoundTag8(SB),NOSPLIT,$0
43
42
VPERM XDATA, XDATA, XTMP1, XDATA
44
43
#endif
45
44
46
- LXVD2X (PTR)(R0), BIT_REV_AND_TAB
47
- VAND BIT_REV_AND_TAB, XDATA, XTMP3
48
45
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
54
47
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
+
59
50
// ZUC authentication part, 4x32 data bits
60
51
// setup data
61
52
VSPLTISB $0 , ZERO
62
- MOVD $0x20 , R8
53
+ MOVD $0x10 , R8
63
54
LXVD2X (PTR)(R8), XTMP4
64
55
VPERM ZERO, XTMP3, XTMP4, XTMP1
65
- MOVD $0x30 , R8
56
+ MOVD $0x20 , R8
66
57
LXVD2X (PTR)(R8), XTMP4
67
58
VPERM ZERO, XTMP3, XTMP4, XTMP2
68
59
@@ -72,7 +63,7 @@ TEXT ·eia256RoundTag8(SB),NOSPLIT,$0
72
63
LXVW4X (R8)(R4), KS_M1
73
64
MOVD $16 , R8
74
65
LXVW4X (R8)(R4), KS_M2
75
- MOVD $0x40 , R8
66
+ MOVD $0x30 , R8
76
67
LXVD2X (PTR)(R8), XTMP4
77
68
VPERM KS_L, KS_L, XTMP4, KS_L
78
69
VPERM KS_M1, KS_M1, XTMP4, KS_M1
@@ -131,26 +122,18 @@ TEXT ·eia256RoundTag16(SB),NOSPLIT,$0
131
122
VPERM XDATA, XDATA, XTMP1, XDATA
132
123
#endif
133
124
134
- LXVD2X (PTR)(R0), BIT_REV_AND_TAB
135
- VAND BIT_REV_AND_TAB, XDATA, XTMP3
136
125
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
142
127
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
146
129
147
130
// ZUC authentication part, 4x32 data bits
148
131
// setup data
149
132
VSPLTISB $0 , ZERO
150
- MOVD $0x20 , R8
133
+ MOVD $0x10 , R8
151
134
LXVD2X (PTR)(R8), XTMP4
152
135
VPERM ZERO, XTMP3, XTMP4, XTMP1
153
- MOVD $0x30 , R8
136
+ MOVD $0x20 , R8
154
137
LXVD2X (PTR)(R8), XTMP4
155
138
VPERM ZERO, XTMP3, XTMP4, XTMP2
156
139
@@ -161,7 +144,7 @@ TEXT ·eia256RoundTag16(SB),NOSPLIT,$0
161
144
MOVD $16 , R8
162
145
LXVW4X (R8)(R4), KS_M2
163
146
VOR KS_M2, KS_M2, KS_H
164
- MOVD $0x40 , R8
147
+ MOVD $0x30 , R8
165
148
LXVD2X (PTR)(R8), XTMP4
166
149
VPERM KS_L, KS_L, XTMP4, KS_L
167
150
VPERM KS_M1, KS_M1, XTMP4, KS_M1
0 commit comments