Lines Matching +full:1 +full:- +full:v0
1 /* Do not modify. This file is auto-generated from ghashv8-armx.pl. */
5 .arch armv8-a+crypto
17 dup v17.4s,v17.s[1]
22 shl v3.2d,v3.2d,#1
25 orr v3.16b,v3.16b,v18.16b //H<<<=1
30 ext v16.16b,v20.16b,v20.16b,#8 //Karatsuba pre-processing
31 pmull v0.1q,v20.1d,v20.1d
33 pmull2 v2.1q,v20.2d,v20.2d
34 pmull v1.1q,v16.1d,v16.1d
36 ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
37 eor v18.16b,v0.16b,v2.16b
40 pmull v18.1q,v0.1d,v19.1d //1st phase
42 ins v2.d[0],v1.d[1]
43 ins v1.d[1],v0.d[0]
44 eor v0.16b,v1.16b,v18.16b
46 ext v18.16b,v0.16b,v0.16b,#8 //2nd phase
47 pmull v0.1q,v0.1d,v19.1d
49 eor v22.16b,v0.16b,v18.16b
51 ext v17.16b,v22.16b,v22.16b,#8 //Karatsuba pre-processing
53 ext v21.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed
54 st1 {v21.2d,v22.2d},[x0],#32 //store Htable[1..2]
56 pmull v0.1q,v20.1d, v22.1d
57 pmull v5.1q,v22.1d,v22.1d
58 pmull2 v2.1q,v20.2d, v22.2d
59 pmull2 v7.1q,v22.2d,v22.2d
60 pmull v1.1q,v16.1d,v17.1d
61 pmull v6.1q,v17.1d,v17.1d
63 ext v16.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
65 eor v18.16b,v0.16b,v2.16b
70 pmull v18.1q,v0.1d,v19.1d //1st phase
72 pmull v4.1q,v5.1d,v19.1d
74 ins v2.d[0],v1.d[1]
75 ins v7.d[0],v6.d[1]
76 ins v1.d[1],v0.d[0]
77 ins v6.d[1],v5.d[0]
78 eor v0.16b,v1.16b,v18.16b
81 ext v18.16b,v0.16b,v0.16b,#8 //2nd phase
83 pmull v0.1q,v0.1d,v19.1d
84 pmull v5.1q,v5.1d,v19.1d
87 eor v20.16b, v0.16b,v18.16b //H^3
90 ext v16.16b,v20.16b, v20.16b,#8 //Karatsuba pre-processing
94 ext v21.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed
97 .size gcm_init_v8,.-gcm_init_v8
112 pmull v0.1q,v20.1d,v3.1d //H.lo·Xi.lo
113 eor v17.16b,v17.16b,v3.16b //Karatsuba pre-processing
114 pmull2 v2.1q,v20.2d,v3.2d //H.hi·Xi.hi
115 pmull v1.1q,v21.1d,v17.1d //(H.lo+H.hi)·(Xi.lo+Xi.hi)
117 ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
118 eor v18.16b,v0.16b,v2.16b
121 pmull v18.1q,v0.1d,v19.1d //1st phase of reduction
123 ins v2.d[0],v1.d[1]
124 ins v1.d[1],v0.d[0]
125 eor v0.16b,v1.16b,v18.16b
127 ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction
128 pmull v0.1q,v0.1d,v19.1d
130 eor v0.16b,v0.16b,v18.16b
133 rev64 v0.16b,v0.16b
135 ext v0.16b,v0.16b,v0.16b,#8
136 st1 {v0.2d},[x0] //write out Xi
139 .size gcm_gmult_v8,.-gcm_gmult_v8
147 ld1 {v0.2d},[x0] //load [rotated] Xi
154 mov x12,#16 //x12 is used as post-
156 //as loop is modulo-scheduled
167 ext v0.16b,v0.16b,v0.16b,#8 //rotate Xi
172 rev64 v0.16b,v0.16b
176 ld1 {v17.2d},[x2],x12 //load [rotated] I[1]
181 eor v3.16b,v3.16b,v0.16b //I[i]^=Xi
182 pmull v4.1q,v20.1d,v7.1d //H·Ii+1
183 eor v17.16b,v17.16b,v7.16b //Karatsuba pre-processing
184 pmull2 v6.1q,v20.2d,v7.2d
191 pmull v0.1q,v22.1d,v3.1d //H^2.lo·Xi.lo
194 pmull v5.1q,v21.1d,v17.1d
195 eor v18.16b,v18.16b,v3.16b //Karatsuba pre-processing
196 pmull2 v2.1q,v22.2d,v3.2d //H^2.hi·Xi.hi
197 eor v0.16b,v0.16b,v4.16b //accumulate
198 pmull2 v1.1q,v21.2d,v18.2d //(H^2.lo+H^2.hi)·(Xi.lo+Xi.hi)
205 ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
206 eor v18.16b,v0.16b,v2.16b
213 pmull v18.1q,v0.1d,v19.1d //1st phase of reduction
218 ins v2.d[0],v1.d[1]
219 ins v1.d[1],v0.d[0]
222 eor v0.16b,v1.16b,v18.16b
223 pmull v4.1q,v20.1d,v7.1d //H·Ii+1
226 ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction
227 pmull v0.1q,v0.1d,v19.1d
229 eor v17.16b,v17.16b,v7.16b //Karatsuba pre-processing
230 eor v3.16b,v3.16b,v0.16b
231 pmull2 v6.1q,v20.2d,v7.2d
235 ext v3.16b,v16.16b,v16.16b,#8 //re-construct v3.16b
236 adds x3,x3,#32 //re-construct x3
237 eor v0.16b,v0.16b,v2.16b //re-construct v0.16b
240 ext v18.16b,v0.16b,v0.16b,#8
241 eor v3.16b,v3.16b,v0.16b //inp^=Xi
244 pmull v0.1q,v20.1d,v3.1d //H.lo·Xi.lo
245 eor v17.16b,v17.16b,v3.16b //Karatsuba pre-processing
246 pmull2 v2.1q,v20.2d,v3.2d //H.hi·Xi.hi
247 pmull v1.1q,v21.1d,v17.1d //(H.lo+H.hi)·(Xi.lo+Xi.hi)
249 ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
250 eor v18.16b,v0.16b,v2.16b
253 pmull v18.1q,v0.1d,v19.1d //1st phase of reduction
255 ins v2.d[0],v1.d[1]
256 ins v1.d[1],v0.d[0]
257 eor v0.16b,v1.16b,v18.16b
259 ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction
260 pmull v0.1q,v0.1d,v19.1d
262 eor v0.16b,v0.16b,v18.16b
266 rev64 v0.16b,v0.16b
268 ext v0.16b,v0.16b,v0.16b,#8
269 st1 {v0.2d},[x0] //write out Xi
272 .size gcm_ghash_v8,.-gcm_ghash_v8
277 ld1 {v0.2d},[x0] //load [rotated] Xi
285 rev64 v0.16b,v0.16b
295 pmull v29.1q,v20.1d,v25.1d //H·Ii+3
297 pmull2 v31.1q,v20.2d,v25.2d
298 pmull v30.1q,v21.1d,v7.1d
300 pmull v16.1q,v22.1d,v24.1d //H^2·Ii+2
302 pmull2 v24.1q,v22.2d,v24.2d
303 pmull2 v6.1q,v21.2d,v6.2d
309 pmull v7.1q,v26.1d,v23.1d //H^3·Ii+1
311 pmull2 v23.1q,v26.2d,v23.2d
312 pmull v5.1q,v27.1d,v5.1d
325 eor v16.16b,v4.16b,v0.16b
335 pmull v0.1q,v28.1d,v3.1d //H^4·(Xi+Ii)
337 pmull2 v2.1q,v28.2d,v3.2d
339 pmull2 v1.1q,v27.2d,v16.2d
341 eor v0.16b,v0.16b,v29.16b
347 ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
348 eor v18.16b,v0.16b,v2.16b
349 pmull v29.1q,v20.1d,v25.1d //H·Ii+3
352 pmull2 v31.1q,v20.2d,v25.2d
354 pmull v30.1q,v21.1d,v7.1d
356 pmull v18.1q,v0.1d,v19.1d //1st phase of reduction
357 ins v2.d[0],v1.d[1]
358 ins v1.d[1],v0.d[0]
359 pmull v16.1q,v22.1d,v24.1d //H^2·Ii+2
361 pmull2 v24.1q,v22.2d,v24.2d
362 eor v0.16b,v1.16b,v18.16b
363 pmull2 v6.1q,v21.2d,v6.2d
369 ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction
370 pmull v0.1q,v0.1d,v19.1d
371 pmull v7.1q,v26.1d,v23.1d //H^3·Ii+1
374 pmull2 v23.1q,v26.2d,v23.2d
375 pmull v5.1q,v27.1d,v5.1d
377 eor v0.16b,v0.16b,v18.16b
380 ext v0.16b,v0.16b,v0.16b,#8
387 eor v16.16b,v4.16b,v0.16b
390 pmull v0.1q,v28.1d,v3.1d //H^4·(Xi+Ii)
392 pmull2 v2.1q,v28.2d,v3.2d
393 pmull2 v1.1q,v27.2d,v16.2d
395 eor v0.16b,v0.16b,v29.16b
406 ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
407 eor v18.16b,v0.16b,v2.16b
417 pmull v18.1q,v0.1d,v19.1d //1st phase of reduction
418 ins v2.d[0],v1.d[1]
419 ins v1.d[1],v0.d[0]
422 eor v0.16b,v1.16b,v18.16b
424 pmull v29.1q,v20.1d,v24.1d //H·Ii+2
427 ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction
428 pmull v0.1q,v0.1d,v19.1d
430 pmull2 v31.1q,v20.2d,v24.2d
431 pmull v30.1q,v21.1d,v6.1d
432 eor v0.16b,v0.16b,v18.16b
433 pmull v7.1q,v22.1d,v23.1d //H^2·Ii+1
435 ext v0.16b,v0.16b,v0.16b,#8
437 pmull2 v23.1q,v22.2d,v23.2d
438 eor v16.16b,v4.16b,v0.16b
439 pmull2 v5.1q,v21.2d,v5.2d
446 pmull v0.1q,v26.1d,v3.1d //H^3·(Xi+Ii)
448 pmull2 v2.1q,v26.2d,v3.2d
449 pmull v1.1q,v27.1d,v16.1d
451 eor v0.16b,v0.16b,v29.16b
458 ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
459 eor v18.16b,v0.16b,v2.16b
468 pmull v18.1q,v0.1d,v19.1d //1st phase of reduction
469 ins v2.d[0],v1.d[1]
470 ins v1.d[1],v0.d[0]
472 eor v0.16b,v1.16b,v18.16b
474 ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction
475 pmull v0.1q,v0.1d,v19.1d
477 eor v0.16b,v0.16b,v18.16b
478 ext v0.16b,v0.16b,v0.16b,#8
480 pmull v29.1q,v20.1d,v23.1d //H·Ii+1
483 eor v16.16b,v4.16b,v0.16b
486 pmull2 v31.1q,v20.2d,v23.2d
487 pmull v30.1q,v21.1d,v5.1d
489 pmull v0.1q,v22.1d,v3.1d //H^2·(Xi+Ii)
491 pmull2 v2.1q,v22.2d,v3.2d
492 pmull2 v1.1q,v21.2d,v16.2d
494 eor v0.16b,v0.16b,v29.16b
501 ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
502 eor v18.16b,v0.16b,v2.16b
510 pmull v18.1q,v0.1d,v19.1d //1st phase of reduction
511 ins v2.d[0],v1.d[1]
512 ins v1.d[1],v0.d[0]
513 eor v0.16b,v1.16b,v18.16b
515 ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction
516 pmull v0.1q,v0.1d,v19.1d
518 eor v0.16b,v0.16b,v18.16b
519 ext v0.16b,v0.16b,v0.16b,#8
521 eor v16.16b,v4.16b,v0.16b
524 pmull v0.1q,v20.1d,v3.1d
526 pmull2 v2.1q,v20.2d,v3.2d
527 pmull v1.1q,v21.1d,v16.1d
530 ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing
531 eor v18.16b,v0.16b,v2.16b
535 pmull v18.1q,v0.1d,v19.1d //1st phase of reduction
536 ins v2.d[0],v1.d[1]
537 ins v1.d[1],v0.d[0]
538 eor v0.16b,v1.16b,v18.16b
540 ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction
541 pmull v0.1q,v0.1d,v19.1d
543 eor v0.16b,v0.16b,v18.16b
544 ext v0.16b,v0.16b,v0.16b,#8
547 rev64 v0.16b,v0.16b
549 st1 {v0.2d},[x0] //write out Xi
552 .size gcm_ghash_v8_4x,.-gcm_ghash_v8_4x