Lines Matching refs:XMM
112 my @XMM=map("%xmm$_",(15,0..14)); # best on Atom, +10% over (0..15)
653 movdqa @t[0],@XMM[0]
654 movdqa @t[1],@XMM[1]
655 movdqa @t[2],@XMM[2]
656 movdqa @t[3],@XMM[3]
657 movdqa @t[4],@XMM[4]
658 movdqa @t[5],@XMM[5]
659 movdqa @t[6],@XMM[6]
660 movdqa @t[7],@XMM[7]
757 movdqa ($key), @XMM[9] # round 0 key
759 movdqa 0x50($const), @XMM[8] # .LM0SR
760 pxor @XMM[9], @XMM[0] # xor with round0 key
761 pxor @XMM[9], @XMM[1]
762 pshufb @XMM[8], @XMM[0]
763 pxor @XMM[9], @XMM[2]
764 pshufb @XMM[8], @XMM[1]
765 pxor @XMM[9], @XMM[3]
766 pshufb @XMM[8], @XMM[2]
767 pxor @XMM[9], @XMM[4]
768 pshufb @XMM[8], @XMM[3]
769 pxor @XMM[9], @XMM[5]
770 pshufb @XMM[8], @XMM[4]
771 pxor @XMM[9], @XMM[6]
772 pshufb @XMM[8], @XMM[5]
773 pxor @XMM[9], @XMM[7]
774 pshufb @XMM[8], @XMM[6]
775 pshufb @XMM[8], @XMM[7]
778 &bitslice (@XMM[0..7, 8..11]);
785 &ShiftRows (@XMM[0..7, 8]);
787 &Sbox (@XMM[0..7, 8..15]);
792 &MixColumns (@XMM[0,1,4,6,3,7,2,5, 8..15]);
794 movdqa 0x30($const), @XMM[8] # .LSR
796 movdqa 0x40($const), @XMM[8] # .LSRM0
802 &bitslice (@XMM[0,1,4,6,3,7,2,5, 8..11]);
804 movdqa ($key), @XMM[8] # last round key
805 pxor @XMM[8], @XMM[4]
806 pxor @XMM[8], @XMM[6]
807 pxor @XMM[8], @XMM[3]
808 pxor @XMM[8], @XMM[7]
809 pxor @XMM[8], @XMM[2]
810 pxor @XMM[8], @XMM[5]
811 pxor @XMM[8], @XMM[0]
812 pxor @XMM[8], @XMM[1]
821 movdqa ($key), @XMM[9] # round 0 key
823 movdqa -0x30($const), @XMM[8] # .LM0ISR
824 pxor @XMM[9], @XMM[0] # xor with round0 key
825 pxor @XMM[9], @XMM[1]
826 pshufb @XMM[8], @XMM[0]
827 pxor @XMM[9], @XMM[2]
828 pshufb @XMM[8], @XMM[1]
829 pxor @XMM[9], @XMM[3]
830 pshufb @XMM[8], @XMM[2]
831 pxor @XMM[9], @XMM[4]
832 pshufb @XMM[8], @XMM[3]
833 pxor @XMM[9], @XMM[5]
834 pshufb @XMM[8], @XMM[4]
835 pxor @XMM[9], @XMM[6]
836 pshufb @XMM[8], @XMM[5]
837 pxor @XMM[9], @XMM[7]
838 pshufb @XMM[8], @XMM[6]
839 pshufb @XMM[8], @XMM[7]
841 &bitslice (@XMM[0..7, 8..11]);
848 &ShiftRows (@XMM[0..7, 8]);
850 &InvSbox (@XMM[0..7, 8..15]);
855 &InvMixColumns (@XMM[0,1,6,4,2,7,3,5, 8..15]);
857 movdqa -0x10($const), @XMM[8] # .LISR
859 movdqa -0x20($const), @XMM[8] # .LISRM0
864 &bitslice (@XMM[0,1,6,4,2,7,3,5, 8..11]);
866 movdqa ($key), @XMM[8] # last round key
867 pxor @XMM[8], @XMM[6]
868 pxor @XMM[8], @XMM[4]
869 pxor @XMM[8], @XMM[2]
870 pxor @XMM[8], @XMM[7]
871 pxor @XMM[8], @XMM[3]
872 pxor @XMM[8], @XMM[5]
873 pxor @XMM[8], @XMM[0]
874 pxor @XMM[8], @XMM[1]
1013 movdqu 0x00($inp), @XMM[0] # load input
1014 movdqu 0x10($inp), @XMM[1]
1015 movdqu 0x20($inp), @XMM[2]
1016 movdqu 0x30($inp), @XMM[3]
1017 movdqu 0x40($inp), @XMM[4]
1018 movdqu 0x50($inp), @XMM[5]
1019 movdqu 0x60($inp), @XMM[6]
1020 movdqu 0x70($inp), @XMM[7]
1027 movdqu @XMM[0], 0x00($out) # write output
1028 movdqu @XMM[1], 0x10($out)
1029 movdqu @XMM[4], 0x20($out)
1030 movdqu @XMM[6], 0x30($out)
1031 movdqu @XMM[3], 0x40($out)
1032 movdqu @XMM[7], 0x50($out)
1033 movdqu @XMM[2], 0x60($out)
1034 movdqu @XMM[5], 0x70($out)
1060 movdqu 0x00($inp), @XMM[0] # load input
1061 movdqu 0x10($inp), @XMM[1]
1062 movdqu 0x20($inp), @XMM[2]
1063 movdqu 0x30($inp), @XMM[3]
1064 movdqu 0x40($inp), @XMM[4]
1065 movdqu 0x50($inp), @XMM[5]
1066 movdqu 0x60($inp), @XMM[6]
1067 movdqu 0x70($inp), @XMM[7]
1074 movdqu @XMM[0], 0x00($out) # write output
1075 movdqu @XMM[1], 0x10($out)
1076 movdqu @XMM[6], 0x20($out)
1077 movdqu @XMM[4], 0x30($out)
1078 movdqu @XMM[2], 0x40($out)
1079 movdqu @XMM[7], 0x50($out)
1080 movdqu @XMM[3], 0x60($out)
1081 movdqu @XMM[5], 0x70($out)
1151 movdqu 0x00($inp), @XMM[0] # load input
1152 movdqu 0x10($inp), @XMM[1]
1153 movdqu 0x20($inp), @XMM[2]
1154 movdqu 0x30($inp), @XMM[3]
1155 movdqu 0x40($inp), @XMM[4]
1156 movdqu 0x50($inp), @XMM[5]
1158 movdqu 0x60($inp), @XMM[6]
1160 movdqu 0x70($inp), @XMM[7]
1165 movdqu @XMM[0], 0x00($out) # write output
1166 movdqu @XMM[1], 0x10($out)
1167 movdqu @XMM[4], 0x20($out)
1168 movdqu @XMM[6], 0x30($out)
1169 movdqu @XMM[3], 0x40($out)
1170 movdqu @XMM[7], 0x50($out)
1171 movdqu @XMM[2], 0x60($out)
1172 movdqu @XMM[5], 0x70($out)
1180 movdqu 0x00($inp), @XMM[0] # load input
1185 movdqu 0x10($inp), @XMM[1]
1187 movdqu 0x20($inp), @XMM[2]
1190 movdqu 0x30($inp), @XMM[3]
1192 movdqu 0x40($inp), @XMM[4]
1195 movdqu 0x50($inp), @XMM[5]
1197 movdqu 0x60($inp), @XMM[6]
1199 movdqu @XMM[0], 0x00($out) # write output
1200 movdqu @XMM[1], 0x10($out)
1201 movdqu @XMM[4], 0x20($out)
1202 movdqu @XMM[6], 0x30($out)
1203 movdqu @XMM[3], 0x40($out)
1204 movdqu @XMM[7], 0x50($out)
1205 movdqu @XMM[2], 0x60($out)
1210 movdqu @XMM[0], 0x00($out) # write output
1211 movdqu @XMM[1], 0x10($out)
1212 movdqu @XMM[4], 0x20($out)
1213 movdqu @XMM[6], 0x30($out)
1214 movdqu @XMM[3], 0x40($out)
1215 movdqu @XMM[7], 0x50($out)
1220 movdqu @XMM[0], 0x00($out) # write output
1221 movdqu @XMM[1], 0x10($out)
1222 movdqu @XMM[4], 0x20($out)
1223 movdqu @XMM[6], 0x30($out)
1224 movdqu @XMM[3], 0x40($out)
1229 movdqu @XMM[0], 0x00($out) # write output
1230 movdqu @XMM[1], 0x10($out)
1231 movdqu @XMM[4], 0x20($out)
1232 movdqu @XMM[6], 0x30($out)
1237 movdqu @XMM[0], 0x00($out) # write output
1238 movdqu @XMM[1], 0x10($out)
1239 movdqu @XMM[4], 0x20($out)
1244 movdqu @XMM[0], 0x00($out) # write output
1245 movdqu @XMM[1], 0x10($out)
1250 movdqu @XMM[0], 0x00($out) # write output
1353 movdqu 0x00($inp), @XMM[0] # load input
1354 movdqu 0x10($inp), @XMM[1]
1355 movdqu 0x20($inp), @XMM[2]
1356 movdqu 0x30($inp), @XMM[3]
1357 movdqu 0x40($inp), @XMM[4]
1358 movdqu 0x50($inp), @XMM[5]
1360 movdqu 0x60($inp), @XMM[6]
1362 movdqu 0x70($inp), @XMM[7]
1367 movdqu @XMM[0], 0x00($out) # write output
1368 movdqu @XMM[1], 0x10($out)
1369 movdqu @XMM[6], 0x20($out)
1370 movdqu @XMM[4], 0x30($out)
1371 movdqu @XMM[2], 0x40($out)
1372 movdqu @XMM[7], 0x50($out)
1373 movdqu @XMM[3], 0x60($out)
1374 movdqu @XMM[5], 0x70($out)
1382 movdqu 0x00($inp), @XMM[0] # load input
1387 movdqu 0x10($inp), @XMM[1]
1389 movdqu 0x20($inp), @XMM[2]
1392 movdqu 0x30($inp), @XMM[3]
1394 movdqu 0x40($inp), @XMM[4]
1397 movdqu 0x50($inp), @XMM[5]
1399 movdqu 0x60($inp), @XMM[6]
1401 movdqu @XMM[0], 0x00($out) # write output
1402 movdqu @XMM[1], 0x10($out)
1403 movdqu @XMM[6], 0x20($out)
1404 movdqu @XMM[4], 0x30($out)
1405 movdqu @XMM[2], 0x40($out)
1406 movdqu @XMM[7], 0x50($out)
1407 movdqu @XMM[3], 0x60($out)
1412 movdqu @XMM[0], 0x00($out) # write output
1413 movdqu @XMM[1], 0x10($out)
1414 movdqu @XMM[6], 0x20($out)
1415 movdqu @XMM[4], 0x30($out)
1416 movdqu @XMM[2], 0x40($out)
1417 movdqu @XMM[7], 0x50($out)
1422 movdqu @XMM
1423 movdqu @XMM[1], 0x10($out)
1424 movdqu @XMM[6], 0x20($out)
1425 movdqu @XMM[4], 0x30($out)
1426 movdqu @XMM[2], 0x40($out)
1431 movdqu @XMM[0], 0x00($out) # write output
1432 movdqu @XMM[1], 0x10($out)
1433 movdqu @XMM[6], 0x20($out)
1434 movdqu @XMM[4], 0x30($out)
1439 movdqu @XMM[0], 0x00($out) # write output
1440 movdqu @XMM[1], 0x10($out)
1441 movdqu @XMM[6], 0x20($out)
1446 movdqu @XMM[0], 0x00($out) # write output
1447 movdqu @XMM[1], 0x10($out)
1452 movdqu @XMM[0], 0x00($out) # write output
1568 movdqu (%rbx), @XMM[15] # load IV
1571 movdqu 0x00($inp), @XMM[0] # load input
1572 movdqu 0x10($inp), @XMM[1]
1573 movdqu 0x20($inp), @XMM[2]
1574 movdqu 0x30($inp), @XMM[3]
1575 movdqu 0x40($inp), @XMM[4]
1576 movdqu 0x50($inp), @XMM[5]
1578 movdqu 0x60($inp), @XMM[6]
1580 movdqu 0x70($inp), @XMM[7]
1581 movdqa @XMM[15], 0x20(%rbp) # put aside IV
1585 pxor 0x20(%rbp), @XMM[0] # ^= IV
1586 movdqu 0x00($inp), @XMM[8] # re-load input
1587 movdqu 0x10($inp), @XMM[9]
1588 pxor @XMM[8], @XMM[1]
1589 movdqu 0x20($inp), @XMM[10]
1590 pxor @XMM[9], @XMM[6]
1591 movdqu 0x30($inp), @XMM[11]
1592 pxor @XMM[10], @XMM[4]
1593 movdqu 0x40($inp), @XMM[12]
1594 pxor @XMM[11], @XMM[2]
1595 movdqu 0x50($inp), @XMM[13]
1596 pxor @XMM[12], @XMM[7]
1597 movdqu 0x60($inp), @XMM[14]
1598 pxor @XMM[13], @XMM[3]
1599 movdqu 0x70($inp), @XMM[15] # IV
1600 pxor @XMM[14], @XMM[5]
1601 movdqu @XMM[0], 0x00($out) # write output
1603 movdqu @XMM[1], 0x10($out)
1604 movdqu @XMM[6], 0x20($out)
1605 movdqu @XMM[4], 0x30($out)
1606 movdqu @XMM[2], 0x40($out)
1607 movdqu @XMM[7], 0x50($out)
1608 movdqu @XMM[3], 0x60($out)
1609 movdqu @XMM[5], 0x70($out)
1617 movdqu 0x00($inp), @XMM[0] # load input
1622 movdqu 0x10($inp), @XMM[1]
1624 movdqu 0x20($inp), @XMM[2]
1627 movdqu 0x30($inp), @XMM[3]
1629 movdqu 0x40($inp), @XMM[4]
1632 movdqu 0x50($inp), @XMM[5]
1634 movdqu 0x60($inp), @XMM[6]
1635 movdqa @XMM[15], 0x20(%rbp) # put aside IV
1637 pxor 0x20(%rbp), @XMM[0] # ^= IV
1638 movdqu 0x00($inp), @XMM[8] # re-load input
1639 movdqu 0x10($inp), @XMM[9]
1640 pxor @XMM[8], @XMM[1]
1641 movdqu 0x20($inp), @XMM[10]
1642 pxor @XMM[9], @XMM[6]
1643 movdqu 0x30($inp), @XMM[11]
1644 pxor @XMM[10], @XMM[4]
1645 movdqu 0x40($inp), @XMM[12]
1646 pxor @XMM[11], @XMM[2]
1647 movdqu 0x50($inp), @XMM[13]
1648 pxor @XMM[12], @XMM[7]
1649 movdqu 0x60($inp), @XMM[15] # IV
1650 pxor @XMM[13], @XMM[3]
1651 movdqu @XMM[0], 0x00($out) # write output
1652 movdqu @XMM[1], 0x10($out)
1653 movdqu @XMM[6], 0x20($out)
1654 movdqu @XMM[4], 0x30($out)
1655 movdqu @XMM[2], 0x40($out)
1656 movdqu @XMM[7], 0x50($out)
1657 movdqu @XMM[3], 0x60($out)
1661 movdqa @XMM[15], 0x20(%rbp) # put aside IV
1663 pxor 0x20(%rbp), @XMM[0] # ^= IV
1664 movdqu 0x00($inp), @XMM[8] # re-load input
1665 movdqu 0x10($inp), @XMM[9]
1666 pxor @XMM[8], @XMM[1]
1667 movdqu 0x20($inp), @XMM[10]
1668 pxor @XMM[9], @XMM[6]
1669 movdqu 0x30($inp), @XMM[11]
1670 pxor @XMM[10], @XMM[4]
1671 movdqu 0x40($inp), @XMM[12]
1672 pxor @XMM[11], @XMM[2]
1673 movdqu 0x50($inp), @XMM[15] # IV
1674 pxor @XMM[12], @XMM[7]
1675 movdqu @XMM[0], 0x00($out) # write output
1676 movdqu @XMM[1], 0x10($out)
1677 movdqu @XMM[6], 0x20($out)
1678 movdqu @XMM[4], 0x30($out)
1679 movdqu @XMM[2], 0x40($out)
1680 movdqu @XMM[7], 0x50($out)
1684 movdqa @XMM[15], 0x20(%rbp) # put aside IV
1686 pxor 0x20(%rbp), @XMM[0] # ^= IV
1687 movdqu 0x00($inp), @XMM[8] # re-load input
1688 movdqu 0x10($inp), @XMM[9]
1689 pxor @XMM[8], @XMM[1]
1690 movdqu 0x20($inp), @XMM[10]
1691 pxor @XMM[9], @XMM[6]
1692 movdqu 0x30($inp), @XMM[11]
1693 pxor @XMM[10], @XMM[4]
1694 movdqu 0x40($inp), @XMM[15] # IV
1695 pxor @XMM[11], @XMM[2]
1696 movdqu @XMM[0], 0x00($out) # write output
1697 movdqu @XMM[1], 0x10($out)
1698 movdqu @XMM[6], 0x20($out)
1699 movdqu @XMM[4], 0x30($out)
1700 movdqu @XMM[2], 0x40($out)
1704 movdqa @XMM[15], 0x20(%rbp) # put aside IV
1706 pxor 0x20(%rbp), @XMM[0] # ^= IV
1707 movdqu 0x00($inp), @XMM[8] # re-load input
1708 movdqu 0x10($inp), @XMM[9]
1709 pxor @XMM[8], @XMM[1]
1710 movdqu 0x20($inp), @XMM[10]
1711 pxor @XMM[9], @XMM[6]
1712 movdqu 0x30($inp), @XMM[15] # IV
1713 pxor @XMM[10], @XMM[4]
1714 movdqu @XMM[0], 0x00($out) # write output
1715 movdqu @XMM[1], 0x10($out)
1716 movdqu @XMM[6], 0x20($out)
1717 movdqu @XMM[4], 0x30($out)
1721 movdqa @XMM[15], 0x20(%rbp) # put aside IV
1723 pxor 0x20(%rbp), @XMM[0] # ^= IV
1724 movdqu 0x00($inp), @XMM[8] # re-load input
1725 movdqu 0x10($inp), @XMM[9]
1726 pxor @XMM[8], @XMM[1]
1727 movdqu 0x20($inp), @XMM[15] # IV
1728 pxor @XMM[9], @XMM[6]
1729 movdqu @XMM[0], 0x00($out) # write output
1730 movdqu @XMM[1], 0x10($out)
1731 movdqu @XMM[6], 0x20($out)
1735 movdqa @XMM[15], 0x20(%rbp) # put aside IV
1737 pxor 0x20(%rbp), @XMM[0] # ^= IV
1738 movdqu 0x00($inp), @XMM[8] # re-load input
1739 movdqu 0x10($inp), @XMM[15] # IV
1740 pxor @XMM[8], @XMM[1]
1741 movdqu @XMM[0], 0x00($out) # write output
1742 movdqu @XMM[1], 0x10($out)
1749 call asm_AES_decrypt # doesn't touch %xmm
1750 pxor 0x20(%rbp), @XMM[15] # ^= IV
1751 movdqu @XMM[15], ($out) # write output
1752 movdqa @XMM[0], @XMM[15] # IV
1755 movdqu @XMM[15], (%rbx) # return IV
1846 movdqa (%rsp), @XMM[9] # load round0 key
1848 movdqa 0x20(%rbp), @XMM[0] # counter copy
1849 movdqa -0x20(%r11), @XMM[8] # .LSWPUP
1850 pshufb @XMM[8], @XMM[9] # byte swap upper part
1851 pshufb @XMM[8], @XMM[0]
1852 movdqa @XMM[9], (%rsp) # save adjusted round0 key
1856 movdqa @XMM[0], 0x20(%rbp) # save counter
1857 movdqa @XMM[0], @XMM[1] # prepare 8 counter values
1858 movdqa @XMM[0], @XMM[2]
1859 paddd 0x00(%r11), @XMM[1] # .LADD1
1860 movdqa @XMM[0], @XMM[3]
1861 paddd 0x10(%r11), @XMM[2] # .LADD2
1862 movdqa @XMM[0], @XMM[4]
1863 paddd 0x20(%r11), @XMM[3] # .LADD3
1864 movdqa @XMM[0], @XMM[5]
1865 paddd 0x30(%r11), @XMM[4] # .LADD4
1866 movdqa @XMM[0], @XMM[6]
1867 paddd 0x40(%r11), @XMM[5] # .LADD5
1868 movdqa @XMM[0], @XMM[7]
1869 paddd 0x50(%r11), @XMM[6] # .LADD6
1870 paddd 0x60(%r11), @XMM[7] # .LADD7
1874 movdqa (%rsp), @XMM[9] # round 0 key
1876 movdqa -0x10(%r11), @XMM[8] # .LSWPUPM0SR
1877 pxor @XMM[9], @XMM[0] # xor with round0 key
1878 pxor @XMM[9], @XMM[1]
1879 pshufb @XMM[8], @XMM[0]
1880 pxor @XMM[9], @XMM[2]
1881 pshufb @XMM[8], @XMM[1]
1882 pxor @XMM[9], @XMM[3]
1883 pshufb @XMM[8], @XMM[2]
1884 pxor @XMM[9], @XMM[4]
1885 pshufb @XMM[8], @XMM[3]
1886 pxor @XMM[9], @XMM[5]
1887 pshufb @XMM[8], @XMM[4]
1888 pxor @XMM[9], @XMM[6]
1889 pshufb @XMM[8], @XMM[5]
1890 pxor @XMM[9], @XMM[7]
1891 pshufb @XMM[8], @XMM[6]
1893 pshufb @XMM[8], @XMM[7]
1901 movdqu 0x00($inp), @XMM[8] # load input
1902 movdqu 0x10($inp), @XMM[9]
1903 movdqu 0x20($inp), @XMM[10]
1904 movdqu 0x30($inp), @XMM[11]
1905 movdqu 0x40($inp), @XMM[12]
1906 movdqu 0x50($inp), @XMM[13]
1907 movdqu 0x60($inp), @XMM[14]
1908 movdqu 0x70($inp), @XMM[15]
1910 pxor @XMM[0], @XMM[8]
1911 movdqa 0x20(%rbp), @XMM[0] # load counter
1912 pxor @XMM[9], @XMM[1]
1913 movdqu @XMM[8], 0x00($out) # write output
1914 pxor @XMM[10], @XMM[4]
1915 movdqu @XMM[1], 0x10($out)
1916 pxor @XMM[11], @XMM[6]
1917 movdqu @XMM[4], 0x20($out)
1918 pxor @XMM[12], @XMM[3]
1919 movdqu @XMM[6], 0x30($out)
1920 pxor @XMM[13], @XMM[7]
1921 movdqu @XMM[3], 0x40($out)
1922 pxor @XMM[14], @XMM[2]
1923 movdqu @XMM[7], 0x50($out)
1924 pxor @XMM[15], @XMM[5]
1925 movdqu @XMM[2], 0x60($out)
1927 movdqu @XMM[5], 0x70($out)
1929 paddd 0x70(%r11), @XMM[0] # .LADD8
1936 movdqu 0x00($inp), @XMM[8] # load input
1937 pxor @XMM[8], @XMM[0]
1938 movdqu @XMM[0], 0x00($out) # write output
1941 movdqu 0x10($inp), @XMM[9]
1942 pxor @XMM[9], @XMM[1]
1943 movdqu @XMM[1], 0x10($out)
1945 movdqu 0x20($inp), @XMM[10]
1946 pxor @XMM[10], @XMM[4]
1947 movdqu @XMM[4], 0x20($out)
1950 movdqu 0x30($inp), @XMM[11]
1951 pxor @XMM[11], @XMM[6]
1952 movdqu @XMM[6], 0x30($out)
1954 movdqu 0x40($inp), @XMM[12]
1955 pxor @XMM[12], @XMM[3]
1956 movdqu @XMM[3], 0x40($out)
1959 movdqu 0x50($inp), @XMM[13]
1960 pxor @XMM[13], @XMM[7]
1961 movdqu @XMM[7], 0x50($out)
1963 movdqu 0x60($inp), @XMM[14]
1964 pxor @XMM[14], @XMM[2]
1965 movdqu @XMM[2], 0x60($out)
1974 movdqu ($inp), @XMM[1]
1978 pxor 0x30(%rbp), @XMM[1]
1980 movdqu @XMM[1], ($out)
2030 my ($twmask,$twres,$twtmp)=@XMM[13..15];
2091 movdqa 0x20(%rbp), @XMM[7] # initial tweak
2095 pcmpgtd @XMM[7], $twtmp # broadcast upper bits
2108 movdqa @XMM[7], @XMM[$i]
2109 movdqa @XMM[7], `0x10*$i`(%rsp)# save tweak[$i]
2110 paddq @XMM[7], @XMM[7] # psllq 1,$tweak
2112 pcmpgtd @XMM[7], $twtmp # broadcast upper bits
2113 pxor $twres, @XMM[7]
2116 movdqu `0x10*($i-1)`($inp), @XMM[8+$i-1]
2119 pxor @XMM[8+$i-2], @XMM[$i-2]# input[] ^ tweak[]
2123 movdqu 0x60($inp), @XMM[8+6]
2124 pxor @XMM[8+5], @XMM[5]
2125 movdqu 0x70($inp), @XMM[8+7]
2127 movdqa @XMM[7], 0x70(%rsp)
2128 pxor @XMM[8+6], @XMM[6]
2130 pxor @XMM[8+7], @XMM[7]
2135 pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
2136 pxor 0x10(%rsp), @XMM[1]
2137 movdqu @XMM[0], 0x00($out) # write output
2138 pxor 0x20(%rsp), @XMM[4]
2139 movdqu @XMM[1], 0x10($out)
2140 pxor 0x30(%rsp), @XMM[6]
2141 movdqu @XMM[4], 0x20($out)
2142 pxor 0x40(%rsp), @XMM[3]
2143 movdqu @XMM[6], 0x30($out)
2144 pxor 0x50(%rsp), @XMM[7]
2145 movdqu @XMM[3], 0x40($out)
2146 pxor 0x60(%rsp), @XMM[2]
2147 movdqu @XMM[7], 0x50($out)
2148 pxor 0x70(%rsp), @XMM[5]
2149 movdqu @XMM[2], 0x60($out)
2150 movdqu @XMM[5], 0x70($out)
2153 movdqa 0x70(%rsp), @XMM[7] # prepare next iteration tweak
2156 pcmpgtd @XMM[7], $twtmp
2159 paddq @XMM[7], @XMM[7] # psllq 1,$tweak
2161 pcmpgtd @XMM[7], $twtmp # broadcast upper bits
2162 pxor $twres, @XMM[7]
2175 movdqa @XMM[7], @XMM[$i]
2176 movdqa @XMM[7], `0x10*$i`(%rsp)# save tweak[$i]
2177 paddq @XMM[7], @XMM[7] # psllq 1,$tweak
2179 pcmpgtd @XMM[7], $twtmp # broadcast upper bits
2180 pxor $twres, @XMM[7]
2183 movdqu `0x10*($i-1)`($inp), @XMM[8+$i-1]
2188 pxor @XMM[8+$i-2], @XMM[$i-2]# input[] ^ tweak[]
2192 movdqu 0x60($inp), @XMM[8+6]
2193 pxor @XMM[8+5], @XMM[5]
2194 movdqa @XMM[7], 0x70(%rsp)
2196 pxor @XMM[8+6], @XMM[6]
2202 pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
2203 pxor 0x10(%rsp), @XMM[1]
2204 movdqu @XMM[0], 0x00($out) # write output
2205 pxor 0x20(%rsp), @XMM[4]
2206 movdqu @XMM[1], 0x10($out)
2207 pxor 0x30(%rsp), @XMM[6]
2208 movdqu @XMM[4], 0x20($out)
2209 pxor 0x40(%rsp), @XMM[3]
2210 movdqu @XMM[6], 0x30($out)
2211 pxor 0x50(%rsp), @XMM[7]
2212 movdqu @XMM[3], 0x40($out)
2213 pxor 0x60(%rsp), @XMM[2]
2214 movdqu @XMM[7], 0x50($out)
2215 movdqu @XMM[2], 0x60($out)
2218 movdqa 0x70(%rsp), @XMM[7] # next iteration tweak
2222 pxor @XMM[8+4], @XMM[4]
2224 pxor @XMM[8+5], @XMM[5]
2230 pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
2231 pxor 0x10(%rsp), @XMM[1]
2232 movdqu @XMM[0], 0x00($out) # write output
2233 pxor 0x20(%rsp), @XMM[4]
2234 movdqu @XMM[1], 0x10($out)
2235 pxor 0x30(%rsp), @XMM[6]
2236 movdqu @XMM[4], 0x20($out)
2237 pxor 0x40(%rsp), @XMM[3]
2238 movdqu @XMM[6], 0x30($out)
2239 pxor 0x50(%rsp), @XMM[7]
2240 movdqu @XMM[3], 0x40($out)
2241 movdqu @XMM[7], 0x50($out)
2244 movdqa 0x60(%rsp), @XMM[7] # next iteration tweak
2248 pxor @XMM[8+3], @XMM[3]
2250 pxor @XMM[8+4], @XMM[4]
2256 pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
2257 pxor 0x10(%rsp), @XMM[1]
2258 movdqu @XMM[0], 0x00($out) # write output
2259 pxor 0x20(%rsp), @XMM[4]
2260 movdqu @XMM[1], 0x10($out)
2261 pxor 0x30(%rsp), @XMM[6]
2262 movdqu @XMM[4], 0x20($out)
2263 pxor 0x40(%rsp), @XMM[3]
2264 movdqu @XMM[6], 0x30($out)
2265 movdqu @XMM[3], 0x40($out)
2268 movdqa 0x50(%rsp), @XMM[7] # next iteration tweak
2272 pxor @XMM[8+2], @XMM[2]
2274 pxor @XMM[8+3], @XMM[3]
2280 pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
2281 pxor 0x10(%rsp), @XMM[1]
2282 movdqu @XMM[0], 0x00($out) # write output
2283 pxor 0x20(%rsp), @XMM[4]
2284 movdqu @XMM[1], 0x10($out)
2285 pxor 0x30(%rsp), @XMM[6]
2286 movdqu @XMM[4], 0x20($out)
2287 movdqu @XMM[6], 0x30($out)
2290 movdqa 0x40(%rsp), @XMM[7] # next iteration tweak
2294 pxor @XMM[8+1], @XMM[1]
2296 pxor @XMM[8+2], @XMM[2]
2302 pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
2303 pxor 0x10(%rsp), @XMM[1]
2304 movdqu @XMM[0], 0x00($out) # write output
2305 pxor 0x20(%rsp), @XMM[4]
2306 movdqu @XMM[1], 0x10($out)
2307 movdqu @XMM[4], 0x20($out)
2310 movdqa 0x30(%rsp), @XMM[7] # next iteration tweak
2314 pxor @XMM[8+0], @XMM[0]
2316 pxor @XMM[8+1], @XMM[1]
2322 pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
2323 pxor 0x10(%rsp), @XMM[1]
2324 movdqu @XMM[0], 0x00($out) # write output
2325 movdqu @XMM[1], 0x10($out)
2328 movdqa 0x20(%rsp), @XMM[7] # next iteration tweak
2332 pxor @XMM[0], @XMM[8]
2334 movdqa @XMM[8], 0x20(%rbp)
2338 call asm_AES_encrypt # doesn't touch %xmm
2339 pxor 0x20(%rbp), @XMM[0] # ^= tweak[]
2340 #pxor @XMM[8], @XMM[0]
2344 #pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
2345 movdqu @XMM[0], 0x00($out) # write output
2348 movdqa 0x10(%rsp), @XMM[7] # next iteration tweak
2365 movdqu -16($out), @XMM[0]
2367 pxor @XMM[7], @XMM[0]
2369 movdqa @XMM[0], 0x20(%rbp)
2371 call asm_AES_encrypt # doesn't touch %xmm
2372 pxor 0x20(%rbp), @XMM[7]
2373 movdqu @XMM[7], -16($out)
2479 movdqa 0x20(%rbp), @XMM[7] # initial tweak
2483 pcmpgtd @XMM[7], $twtmp # broadcast upper bits
2496 movdqa @XMM[7], @XMM[$i]
2497 movdqa @XMM[7], `0x10*$i`(%rsp)# save tweak[$i]
2498 paddq @XMM[7], @XMM[7] # psllq 1,$tweak
2500 pcmpgtd @XMM[7], $twtmp # broadcast upper bits
2501 pxor $twres, @XMM[7]
2504 movdqu `0x10*($i-1)`($inp), @XMM[8+$i-1]
2507 pxor @XMM[8+$i-2], @XMM[$i-2]# input[] ^ tweak[]
2511 movdqu 0x60($inp), @XMM[8+6]
2512 pxor @XMM[8+5], @XMM[5]
2513 movdqu 0x70($inp), @XMM[8+7]
2515 movdqa @XMM[7], 0x70(%rsp)
2516 pxor @XMM[8+6], @XMM[6]
2518 pxor @XMM[8+7], @XMM[7]
2523 pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
2524 pxor 0x10(%rsp), @XMM[1]
2525 movdqu @XMM[0], 0x00($out) # write output
2526 pxor 0x20(%rsp), @XMM[6]
2527 movdqu @XMM[1], 0x10($out)
2528 pxor 0x30(%rsp), @XMM[4]
2529 movdqu @XMM[6], 0x20($out)
2530 pxor 0x40(%rsp), @XMM[2]
2531 movdqu @XMM[4], 0x30($out)
2532 pxor 0x50(%rsp), @XMM[7]
2533 movdqu @XMM[2], 0x40($out)
2534 pxor 0x60(%rsp), @XMM[3]
2535 movdqu @XMM[7], 0x50($out)
2536 pxor 0x70(%rsp), @XMM[5]
2537 movdqu @XMM[3], 0x60($out)
2538 movdqu @XMM[5], 0x70($out)
2541 movdqa 0x70(%rsp), @XMM[7] # prepare next iteration tweak
2544 pcmpgtd @XMM[7], $twtmp
2547 paddq @XMM[7], @XMM[7] # psllq 1,$tweak
2549 pcmpgtd @XMM[7], $twtmp # broadcast upper bits
2550 pxor $twres, @XMM[7]
2563 movdqa @XMM[7], @XMM[$i]
2564 movdqa @XMM[7], `0x10*$i`(%rsp)# save tweak[$i]
2565 paddq @XMM[7], @XMM[7] # psllq 1,$tweak
2567 pcmpgtd @XMM[7], $twtmp # broadcast upper bits
2568 pxor $twres, @XMM[7]
2571 movdqu `0x10*($i-1)`($inp), @XMM[8+$i-1]
2576 pxor @XMM[8+$i-2], @XMM[$i-2]# input[] ^ tweak[]
2580 movdqu 0x60($inp), @XMM[8+6]
2581 pxor @XMM[8+5], @XMM[5]
2582 movdqa @XMM[7], 0x70(%rsp)
2584 pxor @XMM[8+6], @XMM[6]
2590 pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
2591 pxor 0x10(%rsp), @XMM[1]
2592 movdqu @XMM[0], 0x00($out) # write output
2593 pxor 0x20(%rsp), @XMM[6]
2594 movdqu @XMM[1], 0x10($out)
2595 pxor 0x30(%rsp), @XMM[4]
2596 movdqu @XMM[6], 0x20($out)
2597 pxor 0x40(%rsp), @XMM[2]
2598 movdqu @XMM[4], 0x30($out)
2599 pxor 0x50(%rsp), @XMM[7]
2600 movdqu @XMM[2], 0x40($out)
2601 pxor 0x60(%rsp), @XMM[3]
2602 movdqu @XMM[7], 0x50($out)
2603 movdqu @XMM[3], 0x60($out)
2606 movdqa 0x70(%rsp), @XMM[7] # next iteration tweak
2610 pxor @XMM[8+4], @XMM[4]
2612 pxor @XMM[8+5], @XMM[5]
2618 pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
2619 pxor 0x10(%rsp), @XMM[1]
2620 movdqu @XMM[0], 0x00($out) # write output
2621 pxor 0x20(%rsp), @XMM[6]
2622 movdqu @XMM[1], 0x10($out)
2623 pxor 0x30(%rsp), @XMM[4]
2624 movdqu @XMM[6], 0x20($out)
2625 pxor 0x40(%rsp), @XMM[2]
2626 movdqu @XMM[4], 0x30($out)
2627 pxor 0x50(%rsp), @XMM[7]
2628 movdqu @XMM[2], 0x40($out)
2629 movdqu @XMM[7], 0x50($out)
2632 movdqa 0x60(%rsp), @XMM[7] # next iteration tweak
2636 pxor @XMM[8+3], @XMM[3]
2638 pxor @XMM[8+4], @XMM[4]
2644 pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
2645 pxor 0x10(%rsp), @XMM[1]
2646 movdqu @XMM[0], 0x00($out) # write output
2647 pxor 0x20(%rsp), @XMM[6]
2648 movdqu @XMM[1], 0x10($out)
2649 pxor 0x30(%rsp), @XMM[4]
2650 movdqu @XMM[6], 0x20($out)
2651 pxor 0x40(%rsp), @XMM[2]
2652 movdqu @XMM[4], 0x30($out)
2653 movdqu @XMM[2], 0x40($out)
2656 movdqa 0x50(%rsp), @XMM[7] # next iteration tweak
2660 pxor @XMM[8+2], @XMM[2]
2662 pxor @XMM[8+3], @XMM[3]
2668 pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
2669 pxor 0x10(%rsp), @XMM[1]
2670 movdqu @XMM[0], 0x00($out) # write output
2671 pxor 0x20(%rsp), @XMM[6]
2672 movdqu @XMM[1], 0x10($out)
2673 pxor 0x30(%rsp), @XMM[4]
2674 movdqu @XMM[6], 0x20($out)
2675 movdqu @XMM[4], 0x30($out)
2678 movdqa 0x40(%rsp), @XMM[7] # next iteration tweak
2682 pxor @XMM[8+1], @XMM[1]
2684 pxor @XMM[8+2], @XMM[2]
2690 pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
2691 pxor 0x10(%rsp), @XMM[1]
2692 movdqu @XMM[0], 0x00($out) # write output
2693 pxor 0x20(%rsp), @XMM[6]
2694 movdqu @XMM[1], 0x10($out)
2695 movdqu @XMM[6], 0x20($out)
2698 movdqa 0x30(%rsp), @XMM[7] # next iteration tweak
2702 pxor @XMM[8+0], @XMM[0]
2704 pxor @XMM[8+1], @XMM[1]
2710 pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
2711 pxor 0x10(%rsp), @XMM[1]
2712 movdqu @XMM[0], 0x00($out) # write output
2713 movdqu @XMM[1], 0x10($out)
2716 movdqa 0x20(%rsp), @XMM[7] # next iteration tweak
2720 pxor @XMM[0], @XMM[8]
2722 movdqa @XMM[8], 0x20(%rbp)
2726 call asm_AES_decrypt # doesn't touch %xmm
2727 pxor 0x20(%rbp), @XMM[0] # ^= tweak[]
2728 #pxor @XMM[8], @XMM[0]
2732 #pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
2733 movdqu @XMM[0], 0x00($out) # write output
2736 movdqa 0x10(%rsp), @XMM[7] # next iteration tweak
2744 pcmpgtd @XMM[7], $twtmp
2746 movdqa @XMM[7], @XMM[6]
2747 paddq @XMM[7], @XMM[7] # psllq 1,$tweak
2749 movdqu ($inp), @XMM[0]
2750 pxor $twres, @XMM[7]
2753 pxor @XMM[7], @XMM[0]
2755 movdqa @XMM[0], 0x20(%rbp)
2757 call asm_AES_decrypt # doesn't touch %xmm
2758 pxor 0x20(%rbp), @XMM[7]
2760 movdqu @XMM[7], ($out)
2772 movdqu ($out), @XMM[0]
2774 pxor @XMM[6], @XMM[0]
2776 movdqa @XMM[0], 0x20(%rbp)
2778 call asm_AES_decrypt # doesn't touch %xmm
2779 pxor 0x20(%rbp), @XMM[6]
2780 movdqu @XMM[6], ($out)
2923 lea 0x40(%rax),%rsi # %xmm save area