Lines Matching full:mi
292 // MI = (a_L * b_H) + ((a*x^64)_L * b_L)
309 // Fold MI into HI.
310 pshufd $0x4e, \t0, \t1 // Swap halves of MI
328 // GHASH-multiply \a by \b and add the unreduced product to \lo, \mi, and \hi.
330 // the first call, \lo, \mi, and \hi must be zero. \a_xored must contain the
332 .macro _ghash_mul_noreduce a, a_xored, b, lo, mi, hi, t0
346 // MI += (a_L + a_H) * (b_L + b_H)
348 pxor \t0, \mi
351 // Reduce the product from \lo, \mi, and \hi, and store the result in \dst.
353 .macro _ghash_reduce lo, mi, hi, dst, t0
357 // MI += LO + HI (needed because we used Karatsuba multiplication)
358 pxor \lo, \mi
359 pxor \hi, \mi
361 // Fold LO into MI.
364 pxor \dst, \mi
365 pxor \lo, \mi
367 // Fold MI into HI.
368 pshufd $0x4e, \mi, \dst
369 pclmulqdq $0x00, \t0, \mi
371 pxor \mi, \dst
383 // registers LO, MI, and GHASH_ACC a.k.a. HI. It also zero-initializes the
416 pshufd $0x4e, GHASH_ACC, MI
417 pxor GHASH_ACC, MI
425 // MI = (a_L + a_H) * (b_L + b_H)
426 pclmulqdq $0x00, OFFSETOF_H_POWERS_XORED(KEY), MI
431 // key power and accumulating the result into LO, MI, and GHASH_ACC a.k.a. HI.
458 // MI += (a_L + a_H) * (b_L + b_H)
461 pxor TMP2, MI
464 // Reduce LO, MI, and GHASH_ACC a.k.a. HI into GHASH_ACC. This is similar to
469 // One pshufd could be saved by shuffling MI and XOR'ing LO into it, instead of
470 // shuffling LO, XOR'ing LO into MI, and shuffling MI. However, this would
475 pxor LO, MI
476 pxor GHASH_ACC, MI
479 pxor TMP2, MI
480 pxor LO, MI
482 pshufd $0x4e, MI, TMP2
483 pclmulqdq $0x00, TMP1, MI
485 pxor MI, GHASH_ACC
710 .set MI, %xmm4 // Middle part of unreduced product define
849 // Start collecting the unreduced GHASH intermediate value LO, MI, HI.
851 pxor MI, MI
912 _ghash_mul_noreduce H_POW, H_POW_XORED, GHASH_ACC, LO, MI, HI, TMP0
966 _ghash_mul_noreduce H_POW, H_POW_XORED, GHASH_ACC, LO, MI, HI, TMP0
970 _ghash_reduce LO, MI, HI, GHASH_ACC, TMP0