Lines Matching +full:4 +full:x
34 # operations, X[16] values are *maintained* with copies of lower
96 $SZ=4;
167 { .mmi; $LDW A_=[r8],4*$SZ
168 $LDW B_=[r9],4*$SZ
170 { .mmi; $LDW C_=[r10],4*$SZ
171 $LDW D_=[r11],4*$SZ
186 cmp.eq p12,p0=4,r8 }
193 .rotr R[8],X[16]
194 A=R[0]; B=R[1]; C=R[2]; D=R[3]; E=R[4]; F=R[5]; G=R[6]; H=R[7]
195 { .mmi; ld1 X[15]=[input],$SZ // eliminated in sha512
212 // in sha512 case I load whole X[16] at once and take care of alignment...
216 { .mmb; $LDW X[15]=[input],4*$SZ
217 $LDW X[14]=[r8],4*$SZ
219 { .mmb; $LDW X[13]=[r9],4*$SZ
220 $LDW X[12]=[r10],4*$SZ
222 { .mmb; $LDW X[11]=[input],4*$SZ
223 $LDW X[10]=[r8],4*$SZ
225 { .mmb; $LDW X[ 9]=[r9],4*$SZ
226 $LDW X[ 8]=[r10],4*$SZ
228 { .mmb; $LDW X[ 7]=[input],4*$SZ
229 $LDW X[ 6]=[r8],4*$SZ
231 { .mmb; $LDW X[ 5]=[r9],4*$SZ
232 $LDW X[ 4]=[r10],4*$SZ
234 { .mmb; $LDW X[ 3]=[input],4*$SZ
235 $LDW X[ 2]=[r8],4*$SZ
237 { .mmb; $LDW X[ 1]=[r9],4*$SZ
238 $LDW X[ 0]=[r10],4*$SZ }
240 mux1 X[15]=X[15],\@rev // eliminated on big-endian
243 { .mmi; $LDW X[13]=[r9],4*$SZ
244 $LDW X[12]=[r10],4*$SZ
245 shrp X[15]=X[15],X[14],56 };;
246 { .mmi; $LDW X[11]=[input],4*$SZ
247 $LDW X[10]=[r8],4*$SZ
248 shrp X[14]=X[14],X[13],56 }
249 { .mmi; $LDW X[ 9]=[r9],4*$SZ
250 $LDW X[ 8]=[r10],4*$SZ
251 shrp X[13]=X[13],X[12],56 };;
252 { .mmi; $LDW X[ 7]=[input],4*$SZ
253 $LDW X[ 6]=[r8],4*$SZ
254 shrp X[12]=X[12],X[11],56 }
255 { .mmi; $LDW X[ 5]=[r9],4*$SZ
256 $LDW X[ 4]=[r10],4*$SZ
257 shrp X[11]=X[11],X[10],56 };;
258 { .mmi; $LDW X[ 3]=[input],4*$SZ
259 $LDW X[ 2]=[r8],4*$SZ
260 shrp X[10]=X[10],X[ 9],56 }
261 { .mmi; $LDW X[ 1]=[r9],4*$SZ
262 $LDW X[ 0]=[r10],4*$SZ
263 shrp X[ 9]=X[ 9],X[ 8],56 };;
265 shrp X[ 8]=X[ 8],X[ 7],56
266 shrp X[ 7]=X[ 7],X[ 6],56 }
267 { .mii; shrp X[ 6]=X[ 6],X[ 5],56
268 shrp X[ 5]=X[ 5],X[ 4],56 };;
269 { .mii; shrp X[ 4]=X[ 4],X[ 3],56
270 shrp X[ 3]=X[ 3],X[ 2],56 }
271 { .mii; shrp X[ 2]=X[ 2],X[ 1],56
272 shrp X[ 1]=X[ 1],X[ 0],56 }
273 { .mib; shrp X[ 0]=X[ 0],T1,56 }
275 mux1 X[15]=X[15],\@rev // eliminated on big-endian
278 { .mmi; $LDW X[11]=[input],4*$SZ
279 $LDW X[10]=[r8],4*$SZ
280 shrp X[15]=X[15],X[14],48 }
281 { .mmi; $LDW X[ 9]=[r9],4*$SZ
282 $LDW X[ 8]=[r10],4*$SZ
283 shrp X[14]=X[14],X[13],48 };;
284 { .mmi; $LDW X[ 7]=[input],4*$SZ
285 $LDW X[ 6]=[r8],4*$SZ
286 shrp X[13]=X[13],X[12],48 }
287 { .mmi; $LDW X[ 5]=[r9],4*$SZ
288 $LDW X[ 4]=[r10],4*$SZ
289 shrp X[12]=X[12],X[11],48 };;
290 { .mmi; $LDW X[ 3]=[input],4*$SZ
291 $LDW X[ 2]=[r8],4*$SZ
292 shrp X[11]=X[11],X[10],48 }
293 { .mmi; $LDW X[ 1]=[r9],4*$SZ
294 $LDW X[ 0]=[r10],4*$SZ
295 shrp X[10]=X[10],X[ 9],48 };;
297 shrp X[ 9]=X[ 9],X[ 8],48
298 shrp X[ 8]=X[ 8],X[ 7],48 }
299 { .mii; shrp X[ 7]=X[ 7],X[ 6],48
300 shrp X[ 6]=X[ 6],X[ 5],48 };;
301 { .mii; shrp X[ 5]=X[ 5],X[ 4],48
302 shrp X[ 4]=X[ 4],X[ 3],48 }
303 { .mii; shrp X[ 3]=X[ 3],X[ 2],48
304 shrp X[ 2]=X[ 2],X[ 1],48 }
305 { .mii; shrp X[ 1]=X[ 1],X[ 0],48
306 shrp X[ 0]=X[ 0],T1,48 }
308 mux1 X[15]=X[15],\@rev // eliminated on big-endian
311 { .mmi; $LDW X[ 9]=[r9],4*$SZ
312 $LDW X[ 8]=[r10],4*$SZ
313 shrp X[15]=X[15],X[14],40 };;
314 { .mmi; $LDW X[ 7]=[input],4*$SZ
315 $LDW X[ 6]=[r8],4*$SZ
316 shrp X[14]=X[14],X[13],40 }
317 { .mmi; $LDW X[ 5]=[r9],4*$SZ
318 $LDW X[ 4]=[r10],4*$SZ
319 shrp X[13]=X[13],X[12],40 };;
320 { .mmi; $LDW X[ 3]=[input],4*$SZ
321 $LDW X[ 2]=[r8],4*$SZ
322 shrp X[12]=X[12],X[11],40 }
323 { .mmi; $LDW X[ 1]=[r9],4*$SZ
324 $LDW X[ 0]=[r10],4*$SZ
325 shrp X[11]=X[11],X[10],40 };;
327 shrp X[10]=X[10],X[ 9],40
328 shrp X[ 9]=X[ 9],X[ 8],40 }
329 { .mii; shrp X[ 8]=X[ 8],X[ 7],40
330 shrp X[ 7]=X[ 7],X[ 6],40 };;
331 { .mii; shrp X[ 6]=X[ 6],X[ 5],40
332 shrp X[ 5]=X[ 5],X[ 4],40 }
333 { .mii; shrp X[ 4]=X[ 4],X[ 3],40
334 shrp X[ 3]=X[ 3],X[ 2],40 }
335 { .mii; shrp X[ 2]=X[ 2],X[ 1],40
336 shrp X[ 1]=X[ 1],X[ 0],40 }
337 { .mib; shrp X[ 0]=X[ 0],T1,40 }
339 mux1 X[15]=X[15],\@rev // eliminated on big-endian
342 { .mmi; $LDW X[ 7]=[input],4*$SZ
343 $LDW X[ 6]=[r8],4*$SZ
344 shrp X[15]=X[15],X[14],32 }
345 { .mmi; $LDW X[ 5]=[r9],4*$SZ
346 $LDW X[ 4]=[r10],4*$SZ
347 shrp X[14]=X[14],X[13],32 };;
348 { .mmi; $LDW X[ 3]=[input],4*$SZ
349 $LDW X[ 2]=[r8],4*$SZ
350 shrp X[13]=X[13],X[12],32 }
351 { .mmi; $LDW X[ 1]=[r9],4*$SZ
352 $LDW X[ 0]=[r10],4*$SZ
353 shrp X[12]=X[12],X[11],32 };;
355 shrp X[11]=X[11],X[10],32
356 shrp X[10]=X[10],X[ 9],32 }
357 { .mii; shrp X[ 9]=X[ 9],X[ 8],32
358 shrp X[ 8]=X[ 8],X[ 7],32 };;
359 { .mii; shrp X[ 7]=X[ 7],X[ 6],32
360 shrp X[ 6]=X[ 6],X[ 5],32 }
361 { .mii; shrp X[ 5]=X[ 5],X[ 4],32
362 shrp X[ 4]=X[ 4],X[ 3],32 }
363 { .mii; shrp X[ 3]=X[ 3],X[ 2],32
364 shrp X[ 2]=X[ 2],X[ 1],32 }
365 { .mii; shrp X[ 1]=X[ 1],X[ 0],32
366 shrp X[ 0]=X[ 0],T1,32 }
368 mux1 X[15]=X[15],\@rev // eliminated on big-endian
371 { .mmi; $LDW X[ 5]=[r9],4*$SZ
372 $LDW X[ 4]=[r10],4*$SZ
373 shrp X[15]=X[15],X[14],24 };;
374 { .mmi; $LDW X[ 3]=[input],4*$SZ
375 $LDW X[ 2]=[r8],4*$SZ
376 shrp X[14]=X[14],X[13],24 }
377 { .mmi; $LDW X[ 1]=[r9],4*$SZ
378 $LDW X[ 0]=[r10],4*$SZ
379 shrp X[13]=X[13],X[12],24 };;
381 shrp X[12]=X[12],X[11],24
382 shrp X[11]=X[11],X[10],24 }
383 { .mii; shrp X[10]=X[10],X[ 9],24
384 shrp X[ 9]=X[ 9],X[ 8],24 };;
385 { .mii; shrp X[ 8]=X[ 8],X[ 7],24
386 shrp X[ 7]=X[ 7],X[ 6],24 }
387 { .mii; shrp X[ 6]=X[ 6],X[ 5],24
388 shrp X[ 5]=X[ 5],X[ 4],24 }
389 { .mii; shrp X[ 4]=X[ 4],X[ 3],24
390 shrp X[ 3]=X[ 3],X[ 2],24 }
391 { .mii; shrp X[ 2]=X[ 2],X[ 1],24
392 shrp X[ 1]=X[ 1],X[ 0],24 }
393 { .mib; shrp X[ 0]=X[ 0],T1,24 }
395 mux1 X[15]=X[15],\@rev // eliminated on big-endian
398 { .mmi; $LDW X[ 3]=[input],4*$SZ
399 $LDW X[ 2]=[r8],4*$SZ
400 shrp X[15]=X[15],X[14],16 }
401 { .mmi; $LDW X[ 1]=[r9],4*$SZ
402 $LDW X[ 0]=[r10],4*$SZ
403 shrp X[14]=X[14],X[13],16 };;
405 shrp X[13]=X[13],X[12],16
406 shrp X[12]=X[12],X[11],16 }
407 { .mii; shrp X[11]=X[11],X[10],16
408 shrp X[10]=X[10],X[ 9],16 };;
409 { .mii; shrp X[ 9]=X[ 9],X[ 8],16
410 shrp X[ 8]=X[ 8],X[ 7],16 }
411 { .mii; shrp X[ 7]=X[ 7],X[ 6],16
412 shrp X[ 6]=X[ 6],X[ 5],16 }
413 { .mii; shrp X[ 5]=X[ 5],X[ 4],16
414 shrp X[ 4]=X[ 4],X[ 3],16 }
415 { .mii; shrp X[ 3]=X[ 3],X[ 2],16
416 shrp X[ 2]=X[ 2],X[ 1],16 }
417 { .mii; shrp X[ 1]=X[ 1],X[ 0],16
418 shrp X[ 0]=X[ 0],T1,16 }
420 mux1 X[15]=X[15],\@rev // eliminated on big-endian
423 { .mmi; $LDW X[ 1]=[r9],4*$SZ
424 $LDW X[ 0]=[r10],4*$SZ
425 shrp X[15]=X[15],X[14],8 };;
427 shrp X[14]=X[14],X[13],8
428 shrp X[13]=X[13],X[12],8 }
429 { .mii; shrp X[12]=X[12],X[11],8
430 shrp X[11]=X[11],X[10],8 };;
431 { .mii; shrp X[10]=X[10],X[ 9],8
432 shrp X[ 9]=X[ 9],X[ 8],8 }
433 { .mii; shrp X[ 8]=X[ 8],X[ 7],8
434 shrp X[ 7]=X[ 7],X[ 6],8 }
435 { .mii; shrp X[ 6]=X[ 6],X[ 5],8
436 shrp X[ 5]=X[ 5],X[ 4],8 }
437 { .mii; shrp X[ 4]=X[ 4],X[ 3],8
438 shrp X[ 3]=X[ 3],X[ 2],8 }
439 { .mii; shrp X[ 2]=X[ 2],X[ 1],8
440 shrp X[ 1]=X[ 1],X[ 0],8 }
441 { .mib; shrp X[ 0]=X[ 0],T1,8 }
443 mux1 X[15]=X[15],\@rev };; // eliminated on big-endian
452 (p16) mux1 X[14]=X[14],\@rev };; // eliminated on big-endian
472 dep X[15]=X[15],r9,8,8
479 dep X[15]=X[15],r11,16,16 };;
480 { .mmi; (p16) ld1 X[15-1]=[input],$SZ // prefetch
491 add K=K,X[15] };;
492 { .mmi; add T1=T1,K // T1+=K[i]+X[i]
502 mux2 H=X[15],0x44 } // mov H=X[15] in sha512
504 add X[15]=T1,T2 // H=T1+Maj(a,b,c)
517 _rotr r8=X[15-1],$sigma0[0] } // ROTR(s0,1)
518 { .mmi; add X[15]=X[15],X[15-9] // X[i&0xF]+=X[(i+9)&0xF]
519 $SHRU s0=X[15-1],sgm0 };; // s0=X[(i+1)&0xF]>>7
521 _rotr r9=X[15-1],$sigma0[1] } // ROTR(s0,8)
523 $SHRU s1=X[15-14],sgm1 };; // s1=X[(i+14)&0xF]>>6
528 _rotr r10=X[15-14],$sigma1[0] }// ROTR(s1,19)
531 _rotr r11=X[15-14],$sigma1[1] };;// ROTR(s1,61)
534 { .mib; xor s0=s0,r9 // s0=sigma0(X[(i+1)&0xF])
538 { .mii; xor s1=s1,r10 // s1=sigma1(X[(i+14)&0xF])
550 { .mib; xor s0=s0,r9 // s0=sigma0(X[(i+1)&0xF])
554 { .mib; xor s1=s1,r10 // s1=sigma1(X[(i+14)&0xF])
563 add X[15]=X[15],s0 };; // X[i]+=sigma0(X[i+1])
565 add X[15]=X[15],s1 // X[i]+=sigma0(X[i+14])
567 { .mmi; add K=K,X[15]
570 { .mmi; add T1=T1,K // T1+=K[i]+X[i]
574 mux2 H=X[15],0x44 } // mov H=X[15] in sha512
576 add X[15]=T1,T2 // H=T1+Maj(a,b,c)
598 { .mmi; $STW [r8]=A_,4*$SZ
599 $STW [r9]=B_,4*$SZ
601 { .mmi; $STW [r10]=C_,4*$SZ
602 $STW [r11]=D_,4*$SZ
614 s/_rotr(\s+)([^=]+)=([^,]+),([0-9]+)/shrp$1$2=$3,$3,$4/gm;
618 s/(shrp\s+X\[[^=]+)=([^,]+),([^,]+),([1-9]+)/$1=$3,$2,64-$4/gm
620 s/ld1(\s+)X\[\S+/nop.m$1 0x0/gm;