Lines Matching refs:_
207 my ($reg) = @_;
221 my ($reg) = @_;
233 my ($reg) = @_;
245 my ($reg) = @_;
255 my ($reg) = @_;
265 my ($reg) = @_;
277 my ($base, $offset, $displacement) = @_;
289 my ($idx, $base) = @_;
298 my ($idx, $base) = @_;
319 my ($need_hkeys_stack_storage, $need_aes_stack_storage, $func_name) = @_;
412 my ($hkeys_storage_on_stack, $payload_len) = @_;
516 my $GCM128_CTX = $_[0];
517 my $HKEYS_READY = $_[1];
518 my $ZTMP0 = $_[2];
519 my $ZTMP1 = $_[3];
520 my $ZTMP2 = $_[4];
521 my $ZTMP3 = $_[5];
522 my $ZTMP4 = $_[6];
523 my $ZTMP5 = $_[7];
524 my $ZTMP6 = $_[8];
525 my $HKEYS_RANGE = $_[9]; # ; "first16", "mid16", "all", "first32", "last32"
622 my $NUM_BLOCKS = $_[0]; # [in] numerical value, number of AES blocks (0 to 16)
623 my $OPCODE = $_[1]; # [in] instruction name
625 $DST[0] = $_[2]; # [out] destination ZMM register
626 $DST[1] = $_[3]; # [out] destination ZMM register
627 $DST[2] = $_[4]; # [out] destination ZMM register
628 $DST[3] = $_[5]; # [out] destination ZMM register
630 $SRC1[0] = $_[6]; # [in] source 1 ZMM register
631 $SRC1[1] = $_[7]; # [in] source 1 ZMM register
632 $SRC1[2] = $_[8]; # [in] source 1 ZMM register
633 $SRC1[3] = $_[9]; # [in] source 1 ZMM register
635 $SRC2[0] = $_[10]; # [in] source 2 ZMM register
636 $SRC2[1] = $_[11]; # [in] source 2 ZMM register
637 $SRC2[2] = $_[12]; # [in] source 2 ZMM register
638 $SRC2[3] = $_[13]; # [in] source 2 ZMM register
670 my $NUM_BLOCKS = $_[0]; # [in] numerical value, number of AES blocks (0 to 16)
671 my $INP = $_[1]; # [in] input data pointer to read from
672 my $DATA_OFFSET = $_[2]; # [in] offset to the output pointer (GP or numerical)
674 $DST[0] = $_[3]; # [out] ZMM register with loaded data
675 $DST[1] = $_[4]; # [out] ZMM register with loaded data
676 $DST[2] = $_[5]; # [out] ZMM register with loaded data
677 $DST[3] = $_[6]; # [out] ZMM register with loaded data
678 my $MASK = $_[7]; # [in] mask register
712 my $NUM_BLOCKS = $_[0]; # [in] numerical value, number of AES blocks (0 to 16)
713 my $OUTP = $_[1]; # [in] output data pointer to write to
714 my $DATA_OFFSET = $_[2]; # [in] offset to the output pointer (GP or numerical)
716 $SRC[0] = $_[3]; # [in] ZMM register with data to store
717 $SRC[1] = $_[4]; # [in] ZMM register with data to store
718 $SRC[2] = $_[5]; # [in] ZMM register with data to store
719 $SRC[3] = $_[6]; # [in] ZMM register with data to store
720 my $MASK = $_[7]; # [in] mask register
756 my $L0B0_3 = $_[0]; # [in/out] zmm; blocks 0 to 3
757 my $L0B4_7 = $_[1]; # [in/out] zmm; blocks 4 to 7
758 my $L0B8_11 = $_[2]; # [in/out] zmm; blocks 8 to 11
759 my $L0B12_15 = $_[3]; # [in/out] zmm; blocks 12 to 15
760 my $KEY = $_[4]; # [in] zmm containing round key
761 my $ROUND = $_[5]; # [in] round number
762 my $D0_3 = $_[6]; # [in] zmm or no_data; plain/cipher text blocks 0-3
763 my $D4_7 = $_[7]; # [in] zmm or no_data; plain/cipher text blocks 4-7
764 my $D8_11 = $_[8]; # [in] zmm or no_data; plain/cipher text blocks 8-11
765 my $D12_15 = $_[9]; # [in] zmm or no_data; plain/cipher text blocks 12-15
766 my $NUMBL = $_[10]; # [in] number of blocks; numerical value
767 my $NROUNDS = $_[11]; # [in] number of rounds; numerical value
810 my $REG = $_[0]; # [in/out] ZMM with 4x128bits to xor; 128bit output
811 my $TMP = $_[1]; # [clobbered] ZMM temporary register
822 my $OUT = $_[0]; # [out] zmm/ymm/xmm: result (must not be $TMP1 or $HI128)
823 my $POLY = $_[1]; # [in] zmm/ymm/xmm: polynomial
824 my $HI128 = $_[2]; # [in] zmm/ymm/xmm: high 128b of hash to reduce
825 my $LO128 = $_[3]; # [in] zmm/ymm/xmm: low 128b of hash to reduce
826 my $TMP0 = $_[4]; # [in] zmm/ymm/xmm: temporary register
827 my $TMP1 = $_[5]; # [in] zmm/ymm/xmm: temporary register
853 my $TYPE = $_[0]; # [in] ghash type: start (xor hash), mid, end (same as mid; no reduction),
855 my $GH = $_[1]; # [in/out] ZMM ghash sum: high 128-bits
856 my $GM = $_[2]; # [in/out] ZMM ghash sum: middle 128-bits
857 my $GL = $_[3]; # [in/out] ZMM ghash sum: low 128-bits
858 my $INPTR = $_[4]; # [in] data input pointer
859 my $INOFF = $_[5]; # [in] data input offset
860 my $INDIS = $_[6]; # [in] data input displacement
861 my $HKPTR = $_[7]; # [in] hash key pointer
862 …my $HKOFF = $_[8]; # [in] hash key offset (can be either numerical offset, or register contain…
863 my $HKDIS = $_[9]; # [in] hash key displacement
864 my $HASH = $_[10]; # [in/out] ZMM hash value in/out
865 my $ZTMP0 = $_[11]; # [clobbered] temporary ZMM
866 my $ZTMP1 = $_[12]; # [clobbered] temporary ZMM
867 my $ZTMP2 = $_[13]; # [clobbered] temporary ZMM
868 my $ZTMP3 = $_[14]; # [clobbered] temporary ZMM
869 my $ZTMP4 = $_[15]; # [clobbered] temporary ZMM
870 my $ZTMP5 = $_[16]; # [clobbered] temporary ZMM
871 my $ZTMP6 = $_[17]; # [clobbered] temporary ZMM
872 my $ZTMP7 = $_[18]; # [clobbered] temporary ZMM
873 my $ZTMP8 = $_[19]; # [clobbered] temporary ZMM
874 …my $ZTMP9 = $_[20]; # [clobbered] temporary ZMM, can be empty if 4 extra parameters below are p…
875 my $DAT0 = $_[21]; # [in] ZMM with 4 blocks of input data (INPTR, INOFF, INDIS unused)
876 my $DAT1 = $_[22]; # [in] ZMM with 4 blocks of input data (INPTR, INOFF, INDIS unused)
877 my $DAT2 = $_[23]; # [in] ZMM with 4 blocks of input data (INPTR, INOFF, INDIS unused)
878 my $DAT3 = $_[24]; # [in] ZMM with 4 blocks of input data (INPTR, INOFF, INDIS unused)
896 if (scalar(@_) == 21) {
914 if (scalar(@_) == 21) {
945 if (scalar(@_) == 21) {
959 if (scalar(@_) == 21) {
1000 my $GCM128_CTX = $_[0]; # [in] pointer to expanded keys
1001 my $GHASH = $_[1]; # [out] ghash output
1002 my $T0H = $_[2]; # [clobbered] temporary ZMM
1003 my $T0L = $_[3]; # [clobbered] temporary ZMM
1004 my $T0M1 = $_[4]; # [clobbered] temporary ZMM
1005 my $T0M2 = $_[5]; # [clobbered] temporary ZMM
1006 my $T1H = $_[6]; # [clobbered] temporary ZMM
1007 my $T1L = $_[7]; # [clobbered] temporary ZMM
1008 my $T1M1 = $_[8]; # [clobbered] temporary ZMM
1009 my $T1M2 = $_[9]; # [clobbered] temporary ZMM
1010 my $HK = $_[10]; # [clobbered] temporary ZMM
1011 my $AAD_HASH_IN = $_[11]; # [in] input hash value
1013 $CIPHER_IN[0] = $_[12]; # [in] ZMM with cipher text blocks 0-3
1014 $CIPHER_IN[1] = $_[13]; # [in] ZMM with cipher text blocks 4-7
1015 $CIPHER_IN[2] = $_[14]; # [in] ZMM with cipher text blocks 8-11
1016 $CIPHER_IN[3] = $_[15]; # [in] ZMM with cipher text blocks 12-15
1017 my $NUM_BLOCKS = $_[16]; # [in] numerical value, number of blocks
1018 my $GH = $_[17]; # [in] ZMM with hi product part
1019 my $GM = $_[18]; # [in] ZMM with mid product part
1020 my $GL = $_[19]; # [in] ZMM with lo product part
1024 if (scalar(@_) == 17) {
1147 if (scalar(@_) == 20) {
1191 if (scalar(@_) == 20) {
1234 my $GH = $_[0]; #; [in/out] xmm/ymm/zmm with multiply operand(s) (128-bits)
1235 my $HK = $_[1]; #; [in] xmm/ymm/zmm with hash key value(s) (128-bits)
1236 my $T1 = $_[2]; #; [clobbered] xmm/ymm/zmm
1237 my $T2 = $_[3]; #; [clobbered] xmm/ymm/zmm
1238 my $T3 = $_[4]; #; [clobbered] xmm/ymm/zmm
1276 my $GCM128_CTX = $_[0]; #; [in/out] context pointer, hkeys content updated
1277 my $HK = $_[1]; #; [in] xmm, hash key
1278 my $T1 = $_[2]; #; [clobbered] xmm
1279 my $T2 = $_[3]; #; [clobbered] xmm
1280 my $T3 = $_[4]; #; [clobbered] xmm
1281 my $T4 = $_[5]; #; [clobbered] xmm
1282 my $T5 = $_[6]; #; [clobbered] xmm
1283 my $T6 = $_[7]; #; [clobbered] xmm
1354 my $OUTPUT = $_[0]; # [out] xmm register
1355 my $INPUT = $_[1]; # [in] buffer pointer to read from
1356 my $LENGTH = $_[2]; # [in] number of bytes to read
1357 my $TMP1 = $_[3]; # [clobbered]
1358 my $TMP2 = $_[4]; # [clobbered]
1359 my $MASK = $_[5]; # [out] k1 to k7 register to store the partial block mask
1385 my $A_IN = $_[0]; # [in] AAD text pointer
1386 my $A_LEN = $_[1]; # [in] AAD length
1387 my $AAD_HASH = $_[2]; # [in/out] xmm ghash value
1388 my $GCM128_CTX = $_[3]; # [in] pointer to context
1389 my $ZT0 = $_[4]; # [clobbered] ZMM register
1390 my $ZT1 = $_[5]; # [clobbered] ZMM register
1391 my $ZT2 = $_[6]; # [clobbered] ZMM register
1392 my $ZT3 = $_[7]; # [clobbered] ZMM register
1393 my $ZT4 = $_[8]; # [clobbered] ZMM register
1394 my $ZT5 = $_[9]; # [clobbered] ZMM register
1395 my $ZT6 = $_[10]; # [clobbered] ZMM register
1396 my $ZT7 = $_[11]; # [clobbered] ZMM register
1397 my $ZT8 = $_[12]; # [clobbered] ZMM register
1398 my $ZT9 = $_[13]; # [clobbered] ZMM register
1399 my $ZT10 = $_[14]; # [clobbered] ZMM register
1400 my $ZT11 = $_[15]; # [clobbered] ZMM register
1401 my $ZT12 = $_[16]; # [clobbered] ZMM register
1402 my $ZT13 = $_[17]; # [clobbered] ZMM register
1403 my $ZT14 = $_[18]; # [clobbered] ZMM register
1404 my $ZT15 = $_[19]; # [clobbered] ZMM register
1405 my $ZT16 = $_[20]; # [clobbered] ZMM register
1406 my $T1 = $_[21]; # [clobbered] GP register
1407 my $T2 = $_[22]; # [clobbered] GP register
1408 my $T3 = $_[23]; # [clobbered] GP register
1409 my $MASKREG = $_[24]; # [clobbered] mask register
1672 my $GCM128_CTX = $_[0]; # [in] key pointer
1673 my $PBLOCK_LEN = $_[1]; # [in] partial block length
1674 my $CIPH_PLAIN_OUT = $_[2]; # [in] output buffer
1675 my $PLAIN_CIPH_IN = $_[3]; # [in] input buffer
1676 my $PLAIN_CIPH_LEN = $_[4]; # [in] buffer length
1677 my $DATA_OFFSET = $_[5]; # [out] data offset (gets set)
1678 my $AAD_HASH = $_[6]; # [out] updated GHASH value
1679 my $ENC_DEC = $_[7]; # [in] cipher direction
1680 my $GPTMP0 = $_[8]; # [clobbered] GP temporary register
1681 my $GPTMP1 = $_[9]; # [clobbered] GP temporary register
1682 my $GPTMP2 = $_[10]; # [clobbered] GP temporary register
1683 my $ZTMP0 = $_[11]; # [clobbered] ZMM temporary register
1684 my $ZTMP1 = $_[12]; # [clobbered] ZMM temporary register
1685 my $ZTMP2 = $_[13]; # [clobbered] ZMM temporary register
1686 my $ZTMP3 = $_[14]; # [clobbered] ZMM temporary register
1687 my $ZTMP4 = $_[15]; # [clobbered] ZMM temporary register
1688 my $ZTMP5 = $_[16]; # [clobbered] ZMM temporary register
1689 my $ZTMP6 = $_[17]; # [clobbered] ZMM temporary register
1690 my $ZTMP7 = $_[18]; # [clobbered] ZMM temporary register
1691 my $MASKREG = $_[19]; # [clobbered] mask temporary register
1830 my $AES_KEYS = $_[0]; # [in] key pointer
1831 my $GCM128_CTX = $_[1]; # [in] context pointer
1832 my $CIPH_PLAIN_OUT = $_[2]; # [in] text output pointer
1833 my $PLAIN_CIPH_IN = $_[3]; # [in] text input pointer
1834 my $LENGTH = $_[4]; # [in/clobbered] length in bytes
1835 my $DATA_OFFSET = $_[5]; # [in/out] current data offset (updated)
1836 my $NUM_BLOCKS = $_[6]; # [in] can only be 1, 2, 3, 4, 5, ..., 15 or 16 (not 0)
1837 my $CTR = $_[7]; # [in/out] current counter value
1838 my $ENC_DEC = $_[8]; # [in] cipher direction (ENC/DEC)
1839 my $DAT0 = $_[9]; # [out] ZMM with cipher text shuffled for GHASH
1840 my $DAT1 = $_[10]; # [out] ZMM with cipher text shuffled for GHASH
1841 my $DAT2 = $_[11]; # [out] ZMM with cipher text shuffled for GHASH
1842 my $DAT3 = $_[12]; # [out] ZMM with cipher text shuffled for GHASH
1843 …my $LAST_CIPHER_BLK = $_[13]; # [out] XMM to put ciphered counter block partially xor'ed with t…
1844 my $LAST_GHASH_BLK = $_[14]; # [out] XMM to put last cipher text block shuffled for GHASH
1845 my $CTR0 = $_[15]; # [clobbered] ZMM temporary
1846 my $CTR1 = $_[16]; # [clobbered] ZMM temporary
1847 my $CTR2 = $_[17]; # [clobbered] ZMM temporary
1848 my $CTR3 = $_[18]; # [clobbered] ZMM temporary
1849 my $ZT1 = $_[19]; # [clobbered] ZMM temporary
1850 my $IA0 = $_[20]; # [clobbered] GP temporary
1851 my $IA1 = $_[21]; # [clobbered] GP temporary
1852 my $MASKREG = $_[22]; # [clobbered] mask register
1853 my $SHUFMASK = $_[23]; # [out] ZMM loaded with BE/LE shuffle mask
1987 my $AES_KEYS = $_[0]; # [in] key pointer
1988 my $GCM128_CTX = $_[1]; # [in] context pointer
1989 my $LENGTH = $_[2]; # [in/clobbered] length in bytes
1990 my $NUM_BLOCKS = $_[3]; # [in] can only be 1, 2, 3, 4, 5, ..., 15 or 16 (not 0)
1991 my $HASH_IN_OUT = $_[4]; # [in/out] XMM ghash in/out value
1992 my $ENC_DEC = $_[5]; # [in] cipher direction (ENC/DEC)
1993 my $DAT0 = $_[6]; # [in] ZMM with cipher text shuffled for GHASH
1994 my $DAT1 = $_[7]; # [in] ZMM with cipher text shuffled for GHASH
1995 my $DAT2 = $_[8]; # [in] ZMM with cipher text shuffled for GHASH
1996 my $DAT3 = $_[9]; # [in] ZMM with cipher text shuffled for GHASH
1997 my $LAST_CIPHER_BLK = $_[10]; # [in] XMM with ciphered counter block partially xor'ed with text
1998 my $LAST_GHASH_BLK = $_[11]; # [in] XMM with last cipher text block shuffled for GHASH
1999 my $ZT0 = $_[12]; # [clobbered] ZMM temporary
2000 my $ZT1 = $_[13]; # [clobbered] ZMM temporary
2001 my $ZT2 = $_[14]; # [clobbered] ZMM temporary
2002 my $ZT3 = $_[15]; # [clobbered] ZMM temporary
2003 my $ZT4 = $_[16]; # [clobbered] ZMM temporary
2004 my $ZT5 = $_[17]; # [clobbered] ZMM temporary
2005 my $ZT6 = $_[18]; # [clobbered] ZMM temporary
2006 my $ZT7 = $_[19]; # [clobbered] ZMM temporary
2007 my $ZT8 = $_[20]; # [clobbered] ZMM temporary
2008 my $PBLOCK_LEN = $_[21]; # [in] partial block length
2009 my $GH = $_[22]; # [in] ZMM with hi product part
2010 my $GM = $_[23]; # [in] ZMM with mid product part
2011 my $GL = $_[24]; # [in] ZMM with lo product part
2042 if (scalar(@_) == 22) {
2047 } elsif (scalar(@_) == 25) {
2075 if (scalar(@_) == 22) {
2080 } elsif (scalar(@_) == 25) {
2090 if (scalar(@_) == 25) {
2163 my $AES_KEYS = $_[0]; # [in] key pointer
2164 my $GCM128_CTX = $_[1]; # [in] context pointer
2165 my $CIPH_PLAIN_OUT = $_[2]; # [in] text output pointer
2166 my $PLAIN_CIPH_IN = $_[3]; # [in] text input pointer
2167 my $LENGTH = $_[4]; # [in/clobbered] length in bytes
2168 my $DATA_OFFSET = $_[5]; # [in/out] current data offset (updated)
2169 my $NUM_BLOCKS = $_[6]; # [in] can only be 1, 2, 3, 4, 5, ..., 15 or 16 (not 0)
2170 my $CTR = $_[7]; # [in/out] current counter value
2171 my $HASH_IN_OUT = $_[8]; # [in/out] XMM ghash in/out value
2172 my $ENC_DEC = $_[9]; # [in] cipher direction (ENC/DEC)
2173 my $CTR0 = $_[10]; # [clobbered] ZMM temporary
2174 my $CTR1 = $_[11]; # [clobbered] ZMM temporary
2175 my $CTR2 = $_[12]; # [clobbered] ZMM temporary
2176 my $CTR3 = $_[13]; # [clobbered] ZMM temporary
2177 my $DAT0 = $_[14]; # [clobbered] ZMM temporary
2178 my $DAT1 = $_[15]; # [clobbered] ZMM temporary
2179 my $DAT2 = $_[16]; # [clobbered] ZMM temporary
2180 my $DAT3 = $_[17]; # [clobbered] ZMM temporary
2181 my $LAST_CIPHER_BLK = $_[18]; # [clobbered] ZMM temporary
2182 my $LAST_GHASH_BLK = $_[19]; # [clobbered] ZMM temporary
2183 my $ZT0 = $_[20]; # [clobbered] ZMM temporary
2184 my $ZT1 = $_[21]; # [clobbered] ZMM temporary
2185 my $ZT2 = $_[22]; # [clobbered] ZMM temporary
2186 my $ZT3 = $_[23]; # [clobbered] ZMM temporary
2187 my $ZT4 = $_[24]; # [clobbered] ZMM temporary
2188 my $IA0 = $_[25]; # [clobbered] GP temporary
2189 my $IA1 = $_[26]; # [clobbered] GP temporary
2190 my $MASKREG = $_[27]; # [clobbered] mask register
2191 my $SHUFMASK = $_[28]; # [clobbered] ZMM for BE/LE shuffle mask
2192 my $PBLOCK_LEN = $_[29]; # [in] partial block length
2211 my $AES_KEYS = $_[0]; # [in] key pointer
2212 my $GCM128_CTX = $_[1]; # [in] context pointer
2213 my $CIPH_PLAIN_OUT = $_[2]; # [in] pointer to output buffer
2214 my $PLAIN_CIPH_IN = $_[3]; # [in] pointer to input buffer
2215 my $DATA_OFFSET = $_[4]; # [in] data offset
2216 my $LENGTH = $_[5]; # [in] data length
2217 my $CTR_BE = $_[6]; # [in/out] ZMM counter blocks (last 4) in big-endian
2218 my $CTR_CHECK = $_[7]; # [in/out] GP with 8-bit counter for overflow check
2219 my $HASHKEY_OFFSET = $_[8]; # [in] numerical offset for the highest hash key
2221 my $GHASHIN_BLK_OFFSET = $_[9]; # [in] numerical offset for GHASH blocks in
2222 my $SHFMSK = $_[10]; # [in] ZMM with byte swap mask for pshufb
2223 my $B00_03 = $_[11]; # [clobbered] temporary ZMM
2224 my $B04_07 = $_[12]; # [clobbered] temporary ZMM
2225 my $B08_11 = $_[13]; # [clobbered] temporary ZMM
2226 my $B12_15 = $_[14]; # [clobbered] temporary ZMM
2227 my $GH1H_UNUSED = $_[15]; # [clobbered] temporary ZMM
2228 my $GH1L = $_[16]; # [clobbered] temporary ZMM
2229 my $GH1M = $_[17]; # [clobbered] temporary ZMM
2230 my $GH1T = $_[18]; # [clobbered] temporary ZMM
2231 my $GH2H = $_[19]; # [clobbered] temporary ZMM
2232 my $GH2L = $_[20]; # [clobbered] temporary ZMM
2233 my $GH2M = $_[21]; # [clobbered] temporary ZMM
2234 my $GH2T = $_[22]; # [clobbered] temporary ZMM
2235 my $GH3H = $_[23]; # [clobbered] temporary ZMM
2236 my $GH3L = $_[24]; # [clobbered] temporary ZMM
2237 my $GH3M = $_[25]; # [clobbered] temporary ZMM
2238 my $GH3T = $_[26]; # [clobbered] temporary ZMM
2239 my $AESKEY1 = $_[27]; # [clobbered] temporary ZMM
2240 my $AESKEY2 = $_[28]; # [clobbered] temporary ZMM
2241 my $GHKEY1 = $_[29]; # [clobbered] temporary ZMM
2242 my $GHKEY2 = $_[30]; # [clobbered] temporary ZMM
2243 my $GHDAT1 = $_[31]; # [clobbered] temporary ZMM
2244 my $GHDAT2 = $_[32]; # [clobbered] temporary ZMM
2245 my $ZT01 = $_[33]; # [clobbered] temporary ZMM
2246 my $ADDBE_4x4 = $_[34]; # [in] ZMM with 4x128bits 4 in big-endian
2247 my $ADDBE_1234 = $_[35]; # [in] ZMM with 4x128bits 1, 2, 3 and 4 in big-endian
2248 my $GHASH_TYPE = $_[36]; # [in] "start", "start_reduce", "mid", "end_reduce"
2249 my $TO_REDUCE_L = $_[37]; # [in] ZMM for low 4x128-bit GHASH sum
2250 my $TO_REDUCE_H = $_[38]; # [in] ZMM for hi 4x128-bit GHASH sum
2251 my $TO_REDUCE_M = $_[39]; # [in] ZMM for medium 4x128-bit GHASH sum
2252 my $ENC_DEC = $_[40]; # [in] cipher direction
2253 my $HASH_IN_OUT = $_[41]; # [in/out] XMM ghash in/out value
2254 my $IA0 = $_[42]; # [clobbered] GP temporary
2255 my $IA1 = $_[43]; # [clobbered] GP temporary
2256 my $MASKREG = $_[44]; # [clobbered] mask register
2257 …my $NUM_BLOCKS = $_[45]; # [in] numerical value with number of blocks to be encrypted/g…
2258 my $PBLOCK_LEN = $_[46]; # [in] partial block length
2754 my $AES_KEYS = $_[0]; # [in] key pointer
2755 my $GCM128_CTX = $_[1]; # [in] context pointer
2756 my $CIPH_PLAIN_OUT = $_[2]; # [in] pointer to output buffer
2757 my $PLAIN_CIPH_IN = $_[3]; # [in] pointer to input buffer
2758 my $DATA_OFFSET = $_[4]; # [in] data offset
2759 my $LENGTH = $_[5]; # [in/clobbered] data length
2760 my $CTR_BE = $_[6]; # [in/out] ZMM counter blocks (last 4) in big-endian
2761 my $CTR_CHECK = $_[7]; # [in/out] GP with 8-bit counter for overflow check
2762 my $HASHKEY_OFFSET = $_[8]; # [in] numerical offset for the highest hash key
2764 my $GHASHIN_BLK_OFFSET = $_[9]; # [in] numerical offset for GHASH blocks in
2765 my $SHFMSK = $_[10]; # [in] ZMM with byte swap mask for pshufb
2766 my $ZT00 = $_[11]; # [clobbered] temporary ZMM
2767 my $ZT01 = $_[12]; # [clobbered] temporary ZMM
2768 my $ZT02 = $_[13]; # [clobbered] temporary ZMM
2769 my $ZT03 = $_[14]; # [clobbered] temporary ZMM
2770 my $ZT04 = $_[15]; # [clobbered] temporary ZMM
2771 my $ZT05 = $_[16]; # [clobbered] temporary ZMM
2772 my $ZT06 = $_[17]; # [clobbered] temporary ZMM
2773 my $ZT07 = $_[18]; # [clobbered] temporary ZMM
2774 my $ZT08 = $_[19]; # [clobbered] temporary ZMM
2775 my $ZT09 = $_[20]; # [clobbered] temporary ZMM
2776 my $ZT10 = $_[21]; # [clobbered] temporary ZMM
2777 my $ZT11 = $_[22]; # [clobbered] temporary ZMM
2778 my $ZT12 = $_[23]; # [clobbered] temporary ZMM
2779 my $ZT13 = $_[24]; # [clobbered] temporary ZMM
2780 my $ZT14 = $_[25]; # [clobbered] temporary ZMM
2781 my $ZT15 = $_[26]; # [clobbered] temporary ZMM
2782 my $ZT16 = $_[27]; # [clobbered] temporary ZMM
2783 my $ZT17 = $_[28]; # [clobbered] temporary ZMM
2784 my $ZT18 = $_[29]; # [clobbered] temporary ZMM
2785 my $ZT19 = $_[30]; # [clobbered] temporary ZMM
2786 my $ZT20 = $_[31]; # [clobbered] temporary ZMM
2787 my $ZT21 = $_[32]; # [clobbered] temporary ZMM
2788 my $ZT22 = $_[33]; # [clobbered] temporary ZMM
2789 my $ADDBE_4x4 = $_[34]; # [in] ZMM with 4x128bits 4 in big-endian
2790 my $ADDBE_1234 = $_[35]; # [in] ZMM with 4x128bits 1, 2, 3 and 4 in big-endian
2791 my $GHASH_TYPE = $_[36]; # [in] "start", "start_reduce", "mid", "end_reduce"
2792 my $TO_REDUCE_L = $_[37]; # [in] ZMM for low 4x128-bit GHASH sum
2793 my $TO_REDUCE_H = $_[38]; # [in] ZMM for hi 4x128-bit GHASH sum
2794 my $TO_REDUCE_M = $_[39]; # [in] ZMM for medium 4x128-bit GHASH sum
2795 my $ENC_DEC = $_[40]; # [in] cipher direction
2796 my $HASH_IN_OUT = $_[41]; # [in/out] XMM ghash in/out value
2797 my $IA0 = $_[42]; # [clobbered] GP temporary
2798 my $IA1 = $_[43]; # [clobbered] GP temporary
2799 my $MASKREG = $_[44]; # [clobbered] mask register
2800 my $PBLOCK_LEN = $_[45]; # [in] partial block length
2898 my $AES_KEYS = $_[0]; # [in] key pointer
2899 my $CIPH_PLAIN_OUT = $_[1]; # [in] pointer to output buffer
2900 my $PLAIN_CIPH_IN = $_[2]; # [in] pointer to input buffer
2901 my $DATA_OFFSET = $_[3]; # [in] data offset
2902 my $CTR_BE = $_[4]; # [in/out] ZMM counter blocks (last 4) in big-endian
2903 my $CTR_CHECK = $_[5]; # [in/out] GP with 8-bit counter for overflow check
2904 …my $HASHKEY_OFFSET = $_[6]; # [in] numerical offset for the highest hash key (hash key ind…
2905 my $AESOUT_BLK_OFFSET = $_[7]; # [in] numerical offset for AES-CTR out
2906 my $GHASHIN_BLK_OFFSET = $_[8]; # [in] numerical offset for GHASH blocks in
2907 my $SHFMSK = $_[9]; # [in] ZMM with byte swap mask for pshufb
2908 my $ZT1 = $_[10]; # [clobbered] temporary ZMM (cipher)
2909 my $ZT2 = $_[11]; # [clobbered] temporary ZMM (cipher)
2910 my $ZT3 = $_[12]; # [clobbered] temporary ZMM (cipher)
2911 my $ZT4 = $_[13]; # [clobbered] temporary ZMM (cipher)
2912 my $ZT5 = $_[14]; # [clobbered/out] temporary ZMM or GHASH OUT (final_reduction)
2913 my $ZT6 = $_[15]; # [clobbered] temporary ZMM (cipher)
2914 my $ZT7 = $_[16]; # [clobbered] temporary ZMM (cipher)
2915 my $ZT8 = $_[17]; # [clobbered] temporary ZMM (cipher)
2916 my $ZT9 = $_[18]; # [clobbered] temporary ZMM (cipher)
2917 my $ZT10 = $_[19]; # [clobbered] temporary ZMM (ghash)
2918 my $ZT11 = $_[20]; # [clobbered] temporary ZMM (ghash)
2919 my $ZT12 = $_[21]; # [clobbered] temporary ZMM (ghash)
2920 my $ZT13 = $_[22]; # [clobbered] temporary ZMM (ghash)
2921 my $ZT14 = $_[23]; # [clobbered] temporary ZMM (ghash)
2922 my $ZT15 = $_[24]; # [clobbered] temporary ZMM (ghash)
2923 my $ZT16 = $_[25]; # [clobbered] temporary ZMM (ghash)
2924 my $ZT17 = $_[26]; # [clobbered] temporary ZMM (ghash)
2925 my $ZT18 = $_[27]; # [clobbered] temporary ZMM (ghash)
2926 my $ZT19 = $_[28]; # [clobbered] temporary ZMM
2927 my $ZT20 = $_[29]; # [clobbered] temporary ZMM
2928 my $ZT21 = $_[30]; # [clobbered] temporary ZMM
2929 my $ZT22 = $_[31]; # [clobbered] temporary ZMM
2930 my $ZT23 = $_[32]; # [clobbered] temporary ZMM
2931 my $ADDBE_4x4 = $_[33]; # [in] ZMM with 4x128bits 4 in big-endian
2932 my $ADDBE_1234 = $_[34]; # [in] ZMM with 4x128bits 1, 2, 3 and 4 in big-endian
2933 my $TO_REDUCE_L = $_[35]; # [in/out] ZMM for low 4x128-bit GHASH sum
2934 my $TO_REDUCE_H = $_[36]; # [in/out] ZMM for hi 4x128-bit GHASH sum
2935 my $TO_REDUCE_M = $_[37]; # [in/out] ZMM for medium 4x128-bit GHASH sum
2936 my $DO_REDUCTION = $_[38]; # [in] "no_reduction", "final_reduction", "first_time"
2937 my $ENC_DEC = $_[39]; # [in] cipher direction
2938 my $DATA_DISPL = $_[40]; # [in] fixed numerical data displacement/offset
2939 my $GHASH_IN = $_[41]; # [in] current GHASH value or "no_ghash_in"
2940 my $IA0 = $_[42]; # [clobbered] temporary GPR
3331 my $AES_KEY = $_[0]; # ; [in]
3332 my $XMM0 = $_[1]; # ; [in/out]
3333 my $GPR1 = $_[2]; # ; [clobbered]
3368 my $GCM128_CTX = $_[0]; #; [in] Pointer to GCM context
3369 my $IV = $_[1]; #; [in] Pointer to IV
3370 my $IV_LEN = $_[2]; #; [in] IV length
3371 my $J0 = $_[3]; #; [out] XMM reg to contain J0
3372 my $ZT0 = $_[4]; #; [clobbered] ZMM register
3373 my $ZT1 = $_[5]; #; [clobbered] ZMM register
3374 my $ZT2 = $_[6]; #; [clobbered] ZMM register
3375 my $ZT3 = $_[7]; #; [clobbered] ZMM register
3376 my $ZT4 = $_[8]; #; [clobbered] ZMM register
3377 my $ZT5 = $_[9]; #; [clobbered] ZMM register
3378 my $ZT6 = $_[10]; #; [clobbered] ZMM register
3379 my $ZT7 = $_[11]; #; [clobbered] ZMM register
3380 my $ZT8 = $_[12]; #; [clobbered] ZMM register
3381 my $ZT9 = $_[13]; #; [clobbered] ZMM register
3382 my $ZT10 = $_[14]; #; [clobbered] ZMM register
3383 my $ZT11 = $_[15]; #; [clobbered] ZMM register
3384 my $ZT12 = $_[16]; #; [clobbered] ZMM register
3385 my $ZT13 = $_[17]; #; [clobbered] ZMM register
3386 my $ZT14 = $_[18]; #; [clobbered] ZMM register
3387 my $ZT15 = $_[19]; #; [clobbered] ZMM register
3388 my $ZT16 = $_[20]; #; [clobbered] ZMM register
3389 my $T1 = $_[21]; #; [clobbered] GP register
3390 my $T2 = $_[22]; #; [clobbered] GP register
3391 my $T3 = $_[23]; #; [clobbered] GP register
3392 my $MASKREG = $_[24]; #; [clobbered] mask register
3423 my $AES_KEYS = $_[0]; # [in] AES key schedule
3424 my $GCM128_CTX = $_[1]; # [in/out] GCM context
3425 my $IV = $_[2]; # [in] IV pointer
3426 my $IV_LEN = $_[3]; # [in] IV length
3427 my $GPR1 = $_[4]; # [clobbered] GP register
3428 my $GPR2 = $_[5]; # [clobbered] GP register
3429 my $GPR3 = $_[6]; # [clobbered] GP register
3430 my $MASKREG = $_[7]; # [clobbered] mask register
3431 my $CUR_COUNT = $_[8]; # [out] XMM with current counter
3432 my $ZT0 = $_[9]; # [clobbered] ZMM register
3433 my $ZT1 = $_[10]; # [clobbered] ZMM register
3434 my $ZT2 = $_[11]; # [clobbered] ZMM register
3435 my $ZT3 = $_[12]; # [clobbered] ZMM register
3436 my $ZT4 = $_[13]; # [clobbered] ZMM register
3437 my $ZT5 = $_[14]; # [clobbered] ZMM register
3438 my $ZT6 = $_[15]; # [clobbered] ZMM register
3439 my $ZT7 = $_[16]; # [clobbered] ZMM register
3440 my $ZT8 = $_[17]; # [clobbered] ZMM register
3441 my $ZT9 = $_[18]; # [clobbered] ZMM register
3442 my $ZT10 = $_[19]; # [clobbered] ZMM register
3443 my $ZT11 = $_[20]; # [clobbered] ZMM register
3444 my $ZT12 = $_[21]; # [clobbered] ZMM register
3445 my $ZT13 = $_[22]; # [clobbered] ZMM register
3446 my $ZT14 = $_[23]; # [clobbered] ZMM register
3447 my $ZT15 = $_[24]; # [clobbered] ZMM register
3448 my $ZT16 = $_[25]; # [clobbered] ZMM register
3484 my $GCM128_CTX = $_[0]; # [in] GCM context pointer
3485 my $A_IN = $_[1]; # [in] AAD pointer
3486 my $A_LEN = $_[2]; # [in] AAD length in bytes
3487 my $GPR1 = $_[3]; # [clobbered] GP register
3488 my $GPR2 = $_[4]; # [clobbered] GP register
3489 my $GPR3 = $_[5]; # [clobbered] GP register
3490 my $MASKREG = $_[6]; # [clobbered] mask register
3491 my $AAD_HASH = $_[7]; # [out] XMM for AAD_HASH value
3492 my $ZT0 = $_[8]; # [clobbered] ZMM register
3493 my $ZT1 = $_[9]; # [clobbered] ZMM register
3494 my $ZT2 = $_[10]; # [clobbered] ZMM register
3495 my $ZT3 = $_[11]; # [clobbered] ZMM register
3496 my $ZT4 = $_[12]; # [clobbered] ZMM register
3497 my $ZT5 = $_[13]; # [clobbered] ZMM register
3498 my $ZT6 = $_[14]; # [clobbered] ZMM register
3499 my $ZT7 = $_[15]; # [clobbered] ZMM register
3500 my $ZT8 = $_[16]; # [clobbered] ZMM register
3501 my $ZT9 = $_[17]; # [clobbered] ZMM register
3502 my $ZT10 = $_[18]; # [clobbered] ZMM register
3503 my $ZT11 = $_[19]; # [clobbered] ZMM register
3504 my $ZT12 = $_[20]; # [clobbered] ZMM register
3505 my $ZT13 = $_[21]; # [clobbered] ZMM register
3506 my $ZT14 = $_[22]; # [clobbered] ZMM register
3507 my $ZT15 = $_[23]; # [clobbered] ZMM register
3508 my $ZT16 = $_[24]; # [clobbered] ZMM register
3527 my $AES_KEYS = $_[0]; # [in] key pointer
3528 my $GCM128_CTX = $_[1]; # [in] context pointer
3529 my $CIPH_PLAIN_OUT = $_[2]; # [in] output buffer
3530 my $PLAIN_CIPH_IN = $_[3]; # [in] input buffer
3531 my $PLAIN_CIPH_LEN = $_[4]; # [in] buffer length
3532 my $ENC_DEC = $_[5]; # [in] cipher direction
3533 my $DATA_OFFSET = $_[6]; # [in] data offset
3534 my $LENGTH = $_[7]; # [in] data length
3535 my $NUM_BLOCKS = $_[8]; # [in] number of blocks to process 1 to 16
3536 my $CTR = $_[9]; # [in/out] XMM counter block
3537 my $HASH_IN_OUT = $_[10]; # [in/out] XMM GHASH value
3538 my $ZTMP0 = $_[11]; # [clobbered] ZMM register
3539 my $ZTMP1 = $_[12]; # [clobbered] ZMM register
3540 my $ZTMP2 = $_[13]; # [clobbered] ZMM register
3541 my $ZTMP3 = $_[14]; # [clobbered] ZMM register
3542 my $ZTMP4 = $_[15]; # [clobbered] ZMM register
3543 my $ZTMP5 = $_[16]; # [clobbered] ZMM register
3544 my $ZTMP6 = $_[17]; # [clobbered] ZMM register
3545 my $ZTMP7 = $_[18]; # [clobbered] ZMM register
3546 my $ZTMP8 = $_[19]; # [clobbered] ZMM register
3547 my $ZTMP9 = $_[20]; # [clobbered] ZMM register
3548 my $ZTMP10 = $_[21]; # [clobbered] ZMM register
3549 my $ZTMP11 = $_[22]; # [clobbered] ZMM register
3550 my $ZTMP12 = $_[23]; # [clobbered] ZMM register
3551 my $ZTMP13 = $_[24]; # [clobbered] ZMM register
3552 my $ZTMP14 = $_[25]; # [clobbered] ZMM register
3553 my $IA0 = $_[26]; # [clobbered] GP register
3554 my $IA1 = $_[27]; # [clobbered] GP register
3555 my $MASKREG = $_[28]; # [clobbered] mask register
3556 my $SHUFMASK = $_[29]; # [in] ZMM with BE/LE shuffle mask
3557 my $PBLOCK_LEN = $_[30]; # [in] partial block length
3636 my $AES_KEYS = $_[0]; # [in] AES Key schedule
3637 my $GCM128_CTX = $_[1]; # [in] context pointer
3638 my $PBLOCK_LEN = $_[2]; # [in] length of partial block at the moment of previous update
3639 my $PLAIN_CIPH_IN = $_[3]; # [in] input buffer pointer
3640 my $PLAIN_CIPH_LEN = $_[4]; # [in] buffer length
3641 my $CIPH_PLAIN_OUT = $_[5]; # [in] output buffer pointer
3642 my $ENC_DEC = $_[6]; # [in] cipher direction
4123 my $IN = $_[0]; # [in] input buffer
4124 my $OUT = $_[1]; # [in] output buffer
4125 my $AES_KEYS = $_[2]; # [in] pointer to expanded keys
4126 my $DATA_OFFSET = $_[3]; # [in] data offset
4127 my $GHASH = $_[4]; # [in] ZMM with AAD (low 128 bits)
4128 my $CTR = $_[5]; # [in] ZMM with CTR BE blocks 4x128 bits
4129 my $CTR_CHECK = $_[6]; # [in/out] GPR with counter overflow check
4130 my $ADDBE_4x4 = $_[7]; # [in] ZMM 4x128bits with value 4 (big endian)
4131 my $ADDBE_1234 = $_[8]; # [in] ZMM 4x128bits with values 1, 2, 3 & 4 (big endian)
4132 my $T0 = $_[9]; # [clobered] temporary ZMM register
4133 my $T1 = $_[10]; # [clobered] temporary ZMM register
4134 my $T2 = $_[11]; # [clobered] temporary ZMM register
4135 my $T3 = $_[12]; # [clobered] temporary ZMM register
4136 my $T4 = $_[13]; # [clobered] temporary ZMM register
4137 my $T5 = $_[14]; # [clobered] temporary ZMM register
4138 my $T6 = $_[15]; # [clobered] temporary ZMM register
4139 my $T7 = $_[16]; # [clobered] temporary ZMM register
4140 my $T8 = $_[17]; # [clobered] temporary ZMM register
4141 my $SHUF_MASK = $_[18]; # [in] ZMM with BE/LE shuffle mask
4142 my $ENC_DEC = $_[19]; # [in] ENC (encrypt) or DEC (decrypt) selector
4143 my $BLK_OFFSET = $_[20]; # [in] stack frame offset to ciphered blocks
4144 my $DATA_DISPL = $_[21]; # [in] fixed numerical data displacement/offset
4145 my $IA0 = $_[22]; # [clobered] temporary GP register
4258 my $GCM128_CTX = $_[0];
4259 my $PBLOCK_LEN = $_[1];
4744 map(("r$_" => $_), (8 .. 15)));