podman

Форк
0
/x
/
keccakf_amd64.s 
390 строк · 14.2 Кб
1
// Copyright 2015 The Go Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style
3
// license that can be found in the LICENSE file.
4

5
//go:build amd64 && !purego && gc
6

7
// This code was translated into a form compatible with 6a from the public
8
// domain sources at https://github.com/gvanas/KeccakCodePackage
9

10
// Offsets in state
11
#define _ba  (0*8)
12
#define _be  (1*8)
13
#define _bi  (2*8)
14
#define _bo  (3*8)
15
#define _bu  (4*8)
16
#define _ga  (5*8)
17
#define _ge  (6*8)
18
#define _gi  (7*8)
19
#define _go  (8*8)
20
#define _gu  (9*8)
21
#define _ka (10*8)
22
#define _ke (11*8)
23
#define _ki (12*8)
24
#define _ko (13*8)
25
#define _ku (14*8)
26
#define _ma (15*8)
27
#define _me (16*8)
28
#define _mi (17*8)
29
#define _mo (18*8)
30
#define _mu (19*8)
31
#define _sa (20*8)
32
#define _se (21*8)
33
#define _si (22*8)
34
#define _so (23*8)
35
#define _su (24*8)
36

37
// Temporary registers
38
#define rT1  AX
39

40
// Round vars
41
#define rpState DI
42
#define rpStack SP
43

44
#define rDa BX
45
#define rDe CX
46
#define rDi DX
47
#define rDo R8
48
#define rDu R9
49

50
#define rBa R10
51
#define rBe R11
52
#define rBi R12
53
#define rBo R13
54
#define rBu R14
55

56
#define rCa SI
57
#define rCe BP
58
#define rCi rBi
59
#define rCo rBo
60
#define rCu R15
61

62
#define MOVQ_RBI_RCE MOVQ rBi, rCe
63
#define XORQ_RT1_RCA XORQ rT1, rCa
64
#define XORQ_RT1_RCE XORQ rT1, rCe
65
#define XORQ_RBA_RCU XORQ rBa, rCu
66
#define XORQ_RBE_RCU XORQ rBe, rCu
67
#define XORQ_RDU_RCU XORQ rDu, rCu
68
#define XORQ_RDA_RCA XORQ rDa, rCa
69
#define XORQ_RDE_RCE XORQ rDe, rCe
70

71
#define mKeccakRound(iState, oState, rc, B_RBI_RCE, G_RT1_RCA, G_RT1_RCE, G_RBA_RCU, K_RT1_RCA, K_RT1_RCE, K_RBA_RCU, M_RT1_RCA, M_RT1_RCE, M_RBE_RCU, S_RDU_RCU, S_RDA_RCA, S_RDE_RCE) \
72
	/* Prepare round */    \
73
	MOVQ rCe, rDa;         \
74
	ROLQ $1, rDa;          \
75
	                       \
76
	MOVQ _bi(iState), rCi; \
77
	XORQ _gi(iState), rDi; \
78
	XORQ rCu, rDa;         \
79
	XORQ _ki(iState), rCi; \
80
	XORQ _mi(iState), rDi; \
81
	XORQ rDi, rCi;         \
82
	                       \
83
	MOVQ rCi, rDe;         \
84
	ROLQ $1, rDe;          \
85
	                       \
86
	MOVQ _bo(iState), rCo; \
87
	XORQ _go(iState), rDo; \
88
	XORQ rCa, rDe;         \
89
	XORQ _ko(iState), rCo; \
90
	XORQ _mo(iState), rDo; \
91
	XORQ rDo, rCo;         \
92
	                       \
93
	MOVQ rCo, rDi;         \
94
	ROLQ $1, rDi;          \
95
	                       \
96
	MOVQ rCu, rDo;         \
97
	XORQ rCe, rDi;         \
98
	ROLQ $1, rDo;          \
99
	                       \
100
	MOVQ rCa, rDu;         \
101
	XORQ rCi, rDo;         \
102
	ROLQ $1, rDu;          \
103
	                       \
104
	/* Result b */         \
105
	MOVQ _ba(iState), rBa; \
106
	MOVQ _ge(iState), rBe; \
107
	XORQ rCo, rDu;         \
108
	MOVQ _ki(iState), rBi; \
109
	MOVQ _mo(iState), rBo; \
110
	MOVQ _su(iState), rBu; \
111
	XORQ rDe, rBe;         \
112
	ROLQ $44, rBe;         \
113
	XORQ rDi, rBi;         \
114
	XORQ rDa, rBa;         \
115
	ROLQ $43, rBi;         \
116
	                       \
117
	MOVQ rBe, rCa;         \
118
	MOVQ rc, rT1;          \
119
	ORQ  rBi, rCa;         \
120
	XORQ rBa, rT1;         \
121
	XORQ rT1, rCa;         \
122
	MOVQ rCa, _ba(oState); \
123
	                       \
124
	XORQ rDu, rBu;         \
125
	ROLQ $14, rBu;         \
126
	MOVQ rBa, rCu;         \
127
	ANDQ rBe, rCu;         \
128
	XORQ rBu, rCu;         \
129
	MOVQ rCu, _bu(oState); \
130
	                       \
131
	XORQ rDo, rBo;         \
132
	ROLQ $21, rBo;         \
133
	MOVQ rBo, rT1;         \
134
	ANDQ rBu, rT1;         \
135
	XORQ rBi, rT1;         \
136
	MOVQ rT1, _bi(oState); \
137
	                       \
138
	NOTQ rBi;              \
139
	ORQ  rBa, rBu;         \
140
	ORQ  rBo, rBi;         \
141
	XORQ rBo, rBu;         \
142
	XORQ rBe, rBi;         \
143
	MOVQ rBu, _bo(oState); \
144
	MOVQ rBi, _be(oState); \
145
	B_RBI_RCE;             \
146
	                       \
147
	/* Result g */         \
148
	MOVQ _gu(iState), rBe; \
149
	XORQ rDu, rBe;         \
150
	MOVQ _ka(iState), rBi; \
151
	ROLQ $20, rBe;         \
152
	XORQ rDa, rBi;         \
153
	ROLQ $3, rBi;          \
154
	MOVQ _bo(iState), rBa; \
155
	MOVQ rBe, rT1;         \
156
	ORQ  rBi, rT1;         \
157
	XORQ rDo, rBa;         \
158
	MOVQ _me(iState), rBo; \
159
	MOVQ _si(iState), rBu; \
160
	ROLQ $28, rBa;         \
161
	XORQ rBa, rT1;         \
162
	MOVQ rT1, _ga(oState); \
163
	G_RT1_RCA;             \
164
	                       \
165
	XORQ rDe, rBo;         \
166
	ROLQ $45, rBo;         \
167
	MOVQ rBi, rT1;         \
168
	ANDQ rBo, rT1;         \
169
	XORQ rBe, rT1;         \
170
	MOVQ rT1, _ge(oState); \
171
	G_RT1_RCE;             \
172
	                       \
173
	XORQ rDi, rBu;         \
174
	ROLQ $61, rBu;         \
175
	MOVQ rBu, rT1;         \
176
	ORQ  rBa, rT1;         \
177
	XORQ rBo, rT1;         \
178
	MOVQ rT1, _go(oState); \
179
	                       \
180
	ANDQ rBe, rBa;         \
181
	XORQ rBu, rBa;         \
182
	MOVQ rBa, _gu(oState); \
183
	NOTQ rBu;              \
184
	G_RBA_RCU;             \
185
	                       \
186
	ORQ  rBu, rBo;         \
187
	XORQ rBi, rBo;         \
188
	MOVQ rBo, _gi(oState); \
189
	                       \
190
	/* Result k */         \
191
	MOVQ _be(iState), rBa; \
192
	MOVQ _gi(iState), rBe; \
193
	MOVQ _ko(iState), rBi; \
194
	MOVQ _mu(iState), rBo; \
195
	MOVQ _sa(iState), rBu; \
196
	XORQ rDi, rBe;         \
197
	ROLQ $6, rBe;          \
198
	XORQ rDo, rBi;         \
199
	ROLQ $25, rBi;         \
200
	MOVQ rBe, rT1;         \
201
	ORQ  rBi, rT1;         \
202
	XORQ rDe, rBa;         \
203
	ROLQ $1, rBa;          \
204
	XORQ rBa, rT1;         \
205
	MOVQ rT1, _ka(oState); \
206
	K_RT1_RCA;             \
207
	                       \
208
	XORQ rDu, rBo;         \
209
	ROLQ $8, rBo;          \
210
	MOVQ rBi, rT1;         \
211
	ANDQ rBo, rT1;         \
212
	XORQ rBe, rT1;         \
213
	MOVQ rT1, _ke(oState); \
214
	K_RT1_RCE;             \
215
	                       \
216
	XORQ rDa, rBu;         \
217
	ROLQ $18, rBu;         \
218
	NOTQ rBo;              \
219
	MOVQ rBo, rT1;         \
220
	ANDQ rBu, rT1;         \
221
	XORQ rBi, rT1;         \
222
	MOVQ rT1, _ki(oState); \
223
	                       \
224
	MOVQ rBu, rT1;         \
225
	ORQ  rBa, rT1;         \
226
	XORQ rBo, rT1;         \
227
	MOVQ rT1, _ko(oState); \
228
	                       \
229
	ANDQ rBe, rBa;         \
230
	XORQ rBu, rBa;         \
231
	MOVQ rBa, _ku(oState); \
232
	K_RBA_RCU;             \
233
	                       \
234
	/* Result m */         \
235
	MOVQ _ga(iState), rBe; \
236
	XORQ rDa, rBe;         \
237
	MOVQ _ke(iState), rBi; \
238
	ROLQ $36, rBe;         \
239
	XORQ rDe, rBi;         \
240
	MOVQ _bu(iState), rBa; \
241
	ROLQ $10, rBi;         \
242
	MOVQ rBe, rT1;         \
243
	MOVQ _mi(iState), rBo; \
244
	ANDQ rBi, rT1;         \
245
	XORQ rDu, rBa;         \
246
	MOVQ _so(iState), rBu; \
247
	ROLQ $27, rBa;         \
248
	XORQ rBa, rT1;         \
249
	MOVQ rT1, _ma(oState); \
250
	M_RT1_RCA;             \
251
	                       \
252
	XORQ rDi, rBo;         \
253
	ROLQ $15, rBo;         \
254
	MOVQ rBi, rT1;         \
255
	ORQ  rBo, rT1;         \
256
	XORQ rBe, rT1;         \
257
	MOVQ rT1, _me(oState); \
258
	M_RT1_RCE;             \
259
	                       \
260
	XORQ rDo, rBu;         \
261
	ROLQ $56, rBu;         \
262
	NOTQ rBo;              \
263
	MOVQ rBo, rT1;         \
264
	ORQ  rBu, rT1;         \
265
	XORQ rBi, rT1;         \
266
	MOVQ rT1, _mi(oState); \
267
	                       \
268
	ORQ  rBa, rBe;         \
269
	XORQ rBu, rBe;         \
270
	MOVQ rBe, _mu(oState); \
271
	                       \
272
	ANDQ rBa, rBu;         \
273
	XORQ rBo, rBu;         \
274
	MOVQ rBu, _mo(oState); \
275
	M_RBE_RCU;             \
276
	                       \
277
	/* Result s */         \
278
	MOVQ _bi(iState), rBa; \
279
	MOVQ _go(iState), rBe; \
280
	MOVQ _ku(iState), rBi; \
281
	XORQ rDi, rBa;         \
282
	MOVQ _ma(iState), rBo; \
283
	ROLQ $62, rBa;         \
284
	XORQ rDo, rBe;         \
285
	MOVQ _se(iState), rBu; \
286
	ROLQ $55, rBe;         \
287
	                       \
288
	XORQ rDu, rBi;         \
289
	MOVQ rBa, rDu;         \
290
	XORQ rDe, rBu;         \
291
	ROLQ $2, rBu;          \
292
	ANDQ rBe, rDu;         \
293
	XORQ rBu, rDu;         \
294
	MOVQ rDu, _su(oState); \
295
	                       \
296
	ROLQ $39, rBi;         \
297
	S_RDU_RCU;             \
298
	NOTQ rBe;              \
299
	XORQ rDa, rBo;         \
300
	MOVQ rBe, rDa;         \
301
	ANDQ rBi, rDa;         \
302
	XORQ rBa, rDa;         \
303
	MOVQ rDa, _sa(oState); \
304
	S_RDA_RCA;             \
305
	                       \
306
	ROLQ $41, rBo;         \
307
	MOVQ rBi, rDe;         \
308
	ORQ  rBo, rDe;         \
309
	XORQ rBe, rDe;         \
310
	MOVQ rDe, _se(oState); \
311
	S_RDE_RCE;             \
312
	                       \
313
	MOVQ rBo, rDi;         \
314
	MOVQ rBu, rDo;         \
315
	ANDQ rBu, rDi;         \
316
	ORQ  rBa, rDo;         \
317
	XORQ rBi, rDi;         \
318
	XORQ rBo, rDo;         \
319
	MOVQ rDi, _si(oState); \
320
	MOVQ rDo, _so(oState)  \
321

322
// func keccakF1600(a *[25]uint64)
323
TEXT ·keccakF1600(SB), 0, $200-8
324
	MOVQ a+0(FP), rpState
325

326
	// Convert the user state into an internal state
327
	NOTQ _be(rpState)
328
	NOTQ _bi(rpState)
329
	NOTQ _go(rpState)
330
	NOTQ _ki(rpState)
331
	NOTQ _mi(rpState)
332
	NOTQ _sa(rpState)
333

334
	// Execute the KeccakF permutation
335
	MOVQ _ba(rpState), rCa
336
	MOVQ _be(rpState), rCe
337
	MOVQ _bu(rpState), rCu
338

339
	XORQ _ga(rpState), rCa
340
	XORQ _ge(rpState), rCe
341
	XORQ _gu(rpState), rCu
342

343
	XORQ _ka(rpState), rCa
344
	XORQ _ke(rpState), rCe
345
	XORQ _ku(rpState), rCu
346

347
	XORQ _ma(rpState), rCa
348
	XORQ _me(rpState), rCe
349
	XORQ _mu(rpState), rCu
350

351
	XORQ _sa(rpState), rCa
352
	XORQ _se(rpState), rCe
353
	MOVQ _si(rpState), rDi
354
	MOVQ _so(rpState), rDo
355
	XORQ _su(rpState), rCu
356

357
	mKeccakRound(rpState, rpStack, $0x0000000000000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
358
	mKeccakRound(rpStack, rpState, $0x0000000000008082, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
359
	mKeccakRound(rpState, rpStack, $0x800000000000808a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
360
	mKeccakRound(rpStack, rpState, $0x8000000080008000, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
361
	mKeccakRound(rpState, rpStack, $0x000000000000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
362
	mKeccakRound(rpStack, rpState, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
363
	mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
364
	mKeccakRound(rpStack, rpState, $0x8000000000008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
365
	mKeccakRound(rpState, rpStack, $0x000000000000008a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
366
	mKeccakRound(rpStack, rpState, $0x0000000000000088, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
367
	mKeccakRound(rpState, rpStack, $0x0000000080008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
368
	mKeccakRound(rpStack, rpState, $0x000000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
369
	mKeccakRound(rpState, rpStack, $0x000000008000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
370
	mKeccakRound(rpStack, rpState, $0x800000000000008b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
371
	mKeccakRound(rpState, rpStack, $0x8000000000008089, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
372
	mKeccakRound(rpStack, rpState, $0x8000000000008003, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
373
	mKeccakRound(rpState, rpStack, $0x8000000000008002, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
374
	mKeccakRound(rpStack, rpState, $0x8000000000000080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
375
	mKeccakRound(rpState, rpStack, $0x000000000000800a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
376
	mKeccakRound(rpStack, rpState, $0x800000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
377
	mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
378
	mKeccakRound(rpStack, rpState, $0x8000000000008080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
379
	mKeccakRound(rpState, rpStack, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
380
	mKeccakRound(rpStack, rpState, $0x8000000080008008, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP)
381

382
	// Revert the internal state to the user state
383
	NOTQ _be(rpState)
384
	NOTQ _bi(rpState)
385
	NOTQ _go(rpState)
386
	NOTQ _ki(rpState)
387
	NOTQ _mi(rpState)
388
	NOTQ _sa(rpState)
389

390
	RET
391

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.