Home | History | Annotate | Download | only in asm

Lines Matching refs:DWP

208 $__ra=&DWP(0,"esp");	# return address
209 $__s0=&DWP(4,"esp"); # s0 backing store
210 $__s1=&DWP(8,"esp"); # s1 backing store
211 $__s2=&DWP(12,"esp"); # s2 backing store
212 $__s3=&DWP(16,"esp"); # s3 backing store
213 $__key=&DWP(20,"esp"); # pointer to key schedule
214 $__end=&DWP(24,"esp"); # pointer to end of key schedule
215 $__tbl=&DWP(28,"esp"); # %ebp backing store
219 $_tbl=&DWP(24,"esp");
220 $_esp=&DWP(28,"esp");
249 &mov (&DWP(4,"esp"),$s[2]); # save s2
251 &mov (&DWP(8,"esp"),$s[1]); # save s1
255 &mov ($s[0],&DWP(0,$te,$s[0],8)); # s0>>0
257 &mov ($s[3],&DWP(3,$te,$s[2],8)); # s0>>8
260 &mov ($s[2],&DWP(2,$te,$v1,8)); # s0>>16
262 &mov ($s[1],&DWP(1,$te,$s[1],8)); # s0>>24
265 &xor ($s[3],&DWP(0,$te,$v0,8)); # s3>>0
268 &xor ($s[2],&DWP(3,$te,$v0,8)); # s3>>8
271 &xor ($s[1],&DWP(2,$te,$v1,8)); # s3>>16
272 &mov ($v1,&DWP(4,"esp")); # restore s2
273 &xor ($s[0],&DWP(1,$te,$v0,8)); # s3>>24
277 &xor ($s[2],&DWP(0,$te,$v1,8)); # s2>>0
280 &xor ($s[1],&DWP(3,$te,$v1,8)); # s2>>8
283 &xor ($s[0],&DWP(2,$te,$v0,8)); # s2>>16
284 &mov ($v0,&DWP(8,"esp")); # restore s1
285 &xor ($s[3],&DWP(1,$te,$v1,8)); # s2>>24
289 &xor ($s[1],&DWP(0,$te,$v0,8)); # s1>>0
292 &xor ($s[0],&DWP(3,$te,$v0,8)); # s1>>8
295 &xor ($s[3],&DWP(2,$te,$v1,8)); # s1>>16
297 &xor ($s[2],&DWP(1,$te,$v0,8)); # s1>>24
307 &mov ($v1,&DWP(0,$te,$v0,8)); # 0
310 &xor ($v1,&DWP(3,$te,$v0,8)); # 5
313 &xor ($v1,&DWP(2,$te,$v0,8)); # 10
315 &xor ($v1,&DWP(1,$te,$v0,8)); # 15, t[0] collected
320 &mov ($v1,&DWP(0,$te,$v0,8)); # 4
322 &xor ($v1,&DWP(2,$te,$v0,8)); # 14
325 &xor ($v1,&DWP(1,$te,$v0,8)); # 3
328 &xor ($v1,&DWP(3,$te,$v0,8)); # 9, t[1] collected
333 &mov ($v1,&DWP(2,$te,$v0,8)); # 2
335 &xor ($v1,&DWP(1,$te,$v0,8)); # 7
337 &xor ($v1,&DWP(0,$te,$v0,8)); # 8
340 &xor ($v1,&DWP(3,$te,$v0,8)); # 13, t[2] collected
344 &mov ($s2,&DWP(1,$te,$v0,8)); # 11
345 &xor ($s2,&DWP(3,$te,$s0,8)); # 1
349 &xor ($s2,&DWP(2,$te,$v0,8)); # 6
352 &mov ($s3,&DWP(0,$te,$s3,8)); # 12
362 &mov ("ecx",&DWP(0,$tbl,$acc,8)); # 0
365 &mov ("edx",&DWP(3,$tbl,"edx",8)); # 1
369 &xor ("ecx",&DWP(2,$tbl,$acc,8)); # 10
372 DWP(1,$tbl,$acc,8)); # 11
376 &xor ("ecx",&DWP(3,$tbl,$acc,8)); # 5
379 &xor ("ecx",&DWP(1,$tbl,$acc,8)); # 15
383 &mov ("ecx",&DWP(0,$tbl,$acc,8)); # 4
386 &xor ("ecx",&DWP(2,$tbl,$acc,8)); # 14
390 &xor ("ecx",&DWP(1,$tbl,$acc,8)); # 3
392 &xor ("ecx",&DWP(3,$tbl,$acc,8)); # 9
396 &mov ("ecx",&DWP(2,$tbl,$acc,8)); # 2
400 &xor ("ecx",&DWP(0,$tbl,$acc,8)); # 8
404 &xor ("ecx",&DWP(1,$tbl,$acc,8)); # 7
407 &xor ("edx",&DWP(2,$tbl,"eax",8)); # 6
410 &xor ("ecx",&DWP(3,$tbl,$acc,8)); # 13
411 &xor ("ecx",&DWP(24,$key)); # t[2]
414 &xor ("edx",&DWP(0,$tbl,"ebx",8)); # 12
417 &mov ("ebx",&DWP(28,$key)); # t[3]
469 if ($i<2) { &mov (&DWP(4+4*$i,"esp"),$out); }
481 &lea ($r2,&DWP(0,$s[$i],$s[$i]));
505 &xor ($s0,&DWP(0,$key)); # xor with key
506 &xor ($s1,&DWP(4,$key));
507 &xor ($s2,&DWP(8,$key));
508 &xor ($s3,&DWP(12,$key));
510 &mov ($acc,&DWP(240,$key)); # load key->rounds
511 &lea ($acc,&DWP(-2,$acc,$acc));
512 &lea ($acc,&DWP(0,$key,$acc,8));
516 &mov ($key,&DWP(0-128,$tbl));
517 &mov ($acc,&DWP(32-128,$tbl));
518 &mov ($key,&DWP(64-128,$tbl));
519 &mov ($acc,&DWP(96-128,$tbl));
520 &mov ($key,&DWP(128-128,$tbl));
521 &mov ($acc,&DWP(160-128,$tbl));
522 &mov ($key,&DWP(192-128,$tbl));
523 &mov ($acc,&DWP(224-128,$tbl));
539 &xor ($s0,&DWP(0,$key));
540 &xor ($s1,&DWP(4,$key));
541 &xor ($s2,&DWP(8,$key));
542 &xor ($s3,&DWP(12,$key));
553 &xor ($s0,&DWP(16,$key));
554 &xor ($s1,&DWP(20,$key));
555 &xor ($s2,&DWP(24,$key));
556 &xor ($s3,&DWP(28,$key));
702 &mov ($acc,&DWP(240,$key)); # load key->rounds
703 &lea ($acc,&DWP(-2,$acc,$acc));
704 &lea ($acc,&DWP(0,$key,$acc,8));
708 &mov (&DWP(8,"esp"),$s0);
709 &mov (&DWP(12,"esp"),$s0);
712 &mov ($s0,&DWP(0-128,$tbl));
713 &mov ($s1,&DWP(32-128,$tbl));
714 &mov ($s2,&DWP(64-128,$tbl));
715 &mov ($s3,&DWP(96-128,$tbl));
716 &mov ($s0,&DWP(128-128,$tbl));
717 &mov ($s1,&DWP(160-128,$tbl));
718 &mov ($s2,&DWP(192-128,$tbl));
719 &mov ($s3,&DWP(224-128,$tbl));
748 &mov ($s0,&DWP(0-128,$tbl));
750 &mov ($s1,&DWP(64-128,$tbl));
752 &mov ($s2,&DWP(128-128,$tbl));
754 &mov ($s3,&DWP(192-128,$tbl));
782 &mov ($out,&DWP(0,$te,$out,8));
786 &xor ($out,&DWP(3,$te,$tmp,8));
793 &xor ($out,&DWP(2,$te,$tmp,8));
799 &xor ($out,&DWP(1,$te,$tmp,8));
800 if ($i<2) { &mov (&DWP(4+4*$i,"esp"),$out); }
815 &mov ($out,&DWP(2,$te,$out,8));
820 &mov ($tmp,&DWP(0,$te,$tmp,8));
829 &mov ($tmp,&DWP(0,$te,$tmp,8));
837 &mov ($tmp,&DWP(2,$te,$tmp,8));
840 if ($i<2) { &mov (&DWP(4+4*$i,"esp"),$out); }
854 &xor ($s0,&DWP(0,$key)); # xor with key
855 &xor ($s1,&DWP(4,$key));
856 &xor ($s2,&DWP(8,$key));
857 &xor ($s3,&DWP(12,$key));
859 &mov ($acc,&DWP(240,$key)); # load key->rounds
862 &lea ($acc,&DWP(-2,$acc,$acc));
863 &lea ($acc,&DWP(0,$key,$acc,8));
876 &xor ($s0,&DWP(0,$key));
877 &xor ($s1,&DWP(4,$key));
878 &xor ($s2,&DWP(8,$key));
879 &xor ($s3,&DWP(12,$key));
900 &xor ($s0,&DWP(16*$i+0,$key));
901 &xor ($s1,&DWP(16*$i+4,$key));
902 &xor ($s2,&DWP
903 &xor ($s3,&DWP(16*$i+12,$key));
917 &xor ($s0,&DWP(16*$i+0,$key));
918 &xor ($s1,&DWP(16*$i+4,$key));
919 &xor ($s2,&DWP(16*$i+8,$key));
920 &xor ($s3,&DWP(16*$i+12,$key));
934 &xor ($s0,&DWP(16*$i+0,$key));
935 &xor ($s1,&DWP(16*$i+4,$key));
936 &xor ($s2,&DWP(16*$i+8,$key));
937 &xor ($s3,&DWP(16*$i+12,$key));
952 &xor ($s0,&DWP(0,$key));
953 &xor ($s1,&DWP(4,$key));
954 &xor ($s2,&DWP(8,$key));
955 &xor ($s3,&DWP(12,$key));
1174 &lea ($s1,&DWP(-64-63,$key));
1186 &lea ($tbl,&DWP(&label("AES_Te")."-".&label("pic_point"),$tbl));
1189 &lea ($s1,&DWP(768-4,"esp"));
1192 &lea ($tbl,&DWP(2048+128,$tbl,$s1));
1195 &bt (&DWP(0,$s0),25); # check for SSE bit
1210 &mov ($s0,&DWP(0,$acc)); # load input data
1211 &mov ($s1,&DWP(4,$acc));
1212 &mov ($s2,&DWP(8,$acc));
1213 &mov ($s3,&DWP(12,$acc));
1217 &mov (&DWP(0,$acc),$s0); # write output data
1218 &mov (&DWP(4,$acc),$s1);
1219 &mov (&DWP(8,$acc),$s2);
1220 &mov (&DWP(12,$acc),$s3);
1265 if ($i<2) { &mov (&DWP(4+4*$i,"esp"),$out); }
1282 &lea ($tp2,&DWP(0,$s[$i],$s[$i]));
1292 &lea ($tp4,&DWP(0,$tp2,$tp2));
1303 &lea ($tp8,&DWP(0,$tp4,$tp4));
1327 &mov (&DWP(4+4*$i,"esp"),$s[$i]) if($i>=2);
1334 &xor ($s0,&DWP(0,$key)); # xor with key
1335 &xor ($s1,&DWP(4,$key));
1336 &xor ($s2,&DWP(8,$key));
1337 &xor ($s3,&DWP(12,$key));
1339 &mov ($acc,&DWP(240,$key)); # load key->rounds
1341 &lea ($acc,&DWP(-2,$acc,$acc));
1342 &lea ($acc,&DWP(0,$key,$acc,8));
1346 &mov ($key,&DWP(0-128,$tbl));
1347 &mov ($acc,&DWP(32-128,$tbl));
1348 &mov ($key,&DWP(64-128,$tbl));
1349 &mov ($acc,&DWP(96-128,$tbl));
1350 &mov ($key,&DWP(128-128,$tbl));
1351 &mov ($acc,&DWP(160-128,$tbl));
1352 &mov ($key,&DWP(192-128,$tbl));
1353 &mov ($acc,&DWP(224-128,$tbl));
1368 &xor ($s0,&DWP(0,$key));
1369 &xor ($s1,&DWP(4,$key));
1370 &xor ($s2,&DWP(8,$key));
1371 &xor ($s3,&DWP(12,$key));
1382 &xor ($s0,&DWP(16,$key));
1383 &xor ($s1,&DWP(20,$key));
1384 &xor ($s2,&DWP(24,$key));
1385 &xor ($s3,&DWP(28,$key));
1489 &mov ($acc,&DWP(240,$key)); # load key->rounds
1490 &lea ($acc,&DWP(-2,$acc,$acc));
1491 &lea ($acc,&DWP(0,$key,$acc,8));
1495 &mov (&DWP(8,"esp"),$s0);
1496 &mov (&DWP(12,"esp"),$s0);
1499 &mov ($s0,&DWP(0-128,$tbl));
1500 &mov ($s1,&DWP(32-128,$tbl));
1501 &mov ($s2,&DWP(64-128,$tbl));
1502 &mov ($s3,&DWP(96-128,$tbl));
1503 &mov ($s0,&DWP(128-128,$tbl));
1504 &mov ($s1,&DWP(160-128,$tbl));
1505 &mov ($s2,&DWP(192-128,$tbl));
1506 &mov ($s3,&DWP(224-128,$tbl));
1566 &mov ($s0,&DWP(0-128,$tbl));
1568 &mov ($s1,&DWP(64-128,$tbl));
1570 &mov ($s2,&DWP(128-128,$tbl));
1572 &mov ($s3,&DWP(192-128,$tbl));
1602 &mov ($out,&DWP(0,$td,$out,8));
1606 &xor ($out,&DWP(3,$td,$tmp,8));
1612 &xor ($out,&DWP(2,$td,$tmp,8));
1617 &xor ($out,&DWP(1,$td,$tmp,8));
1618 if ($i<2) { &mov (&DWP(4+4*$i,"esp"),$out); }
1628 if($i==0) { &lea ($td,&DWP(2048+128,$td));
1629 &mov ($tmp,&DWP(0-128,$td));
1630 &mov ($acc,&DWP(32-128,$td));
1631 &mov ($tmp,&DWP(64-128,$td));
1632 &mov ($acc,&DWP(96-128,$td));
1633 &mov ($tmp,&DWP(128-128,$td));
1634 &mov ($acc,&DWP(160-128,$td));
1635 &mov ($tmp,&DWP(192-128,$td));
1636 &mov ($acc,&DWP(224-128,$td));
1637 &lea ($td,&DWP(-128,$td)); }
1663 if ($i<2) { &mov (&DWP(4+4*$i,"esp"),$out); }
1665 &lea ($td,&DWP(-2048,$td)); }
1672 &xor ($s0,&DWP(0,$key)); # xor with key
1673 &xor ($s1,&DWP(4,$key));
1674 &xor ($s2,&DWP(8,$key));
1675 &xor ($s3,&DWP(12,$key));
1677 &mov ($acc,&DWP(240,$key)); # load key->rounds
1680 &lea ($acc,&DWP(-2,$acc,$acc));
1681 &lea ($acc,&DWP(0,$key,$acc,8));
1689 &xor ($s0,&DWP(0,$key));
1690 &xor ($s1,&DWP(4,$key));
1691 &xor ($s2,&DWP(8,$key));
1692 &xor ($s3,&DWP(12,$key));
1709 &xor ($s0,&DWP(16*$i+0,$key));
1710 &xor ($s1,&DWP(16*$i+4,$key));
1711 &xor ($s2,&DWP(16*$i+8,$key));
1712 &xor ($s3,&DWP(16*$i+12,$key));
1722 &xor ($s0,&DWP(16*$i+0,$key));
1723 &xor ($s1,&DWP(16*$i+4,$key));
1724 &xor ($s2,&DWP(16*$i+8,$key));
1725 &xor ($s3,&DWP(16*$i+12,$key));
1735 &xor ($s0,&DWP(16*$i+0,$key));
1736 &xor ($s1,&DWP(16*$i+4,$key));
1737 &xor ($s2,&DWP(16*$i+8,$key));
1738 &xor ($s3,&DWP(16*$i+12,$key));
1748 &xor ($s0,&DWP(0,$key));
1749 &xor ($s1,&DWP(4,$key));
1750 &xor ($s2,&DWP(8,$key));
1751 &xor ($s3,&DWP(12,$key));
1965 &lea ($s1,&DWP(-64-63,$key));
1977 &lea ($tbl,&DWP(&label("AES_Td")."-".&label("pic_point"),$tbl));
1980 &lea ($s1,&DWP(768-4,"esp"));
1983 &lea ($tbl,&DWP(2048+128,$tbl,$s1));
1986 &bt (&DWP(0,$s0),25); # check for SSE bit
2001 &mov ($s0,&DWP(0,$acc)); # load input data
2002 &mov ($s1,&DWP(4,$acc));
2003 &mov ($s2,&DWP(8,$acc));
2004 &mov ($s3,&DWP(12,$acc));
2008 &mov (&DWP(0,$acc),$s0); # write output data
2009 &mov (&DWP(4,$acc),$s1);
2010 &mov (&DWP(8,$acc),$s2);
2011 &mov (&DWP(12,$acc),$s3);
2028 my $_inp=&DWP(32,"esp"); # copy of wparam(0)
2029 my $_out=&DWP(36,"esp"); # copy of wparam(1)
2030 my $_len=&DWP(40,"esp"); # copy of wparam(2)
2031 my $_key=&DWP(44,"esp"); # copy of wparam(3)
2032 my $_ivp=&DWP(48,"esp"); # copy of wparam(4)
2033 my $_tmp=&DWP(52,"esp"); # volatile variable
2035 my $ivec=&DWP(60,"esp"); # ivec[16]
2036 my $aes_key=&DWP(76,"esp"); # copy of aes_key
2037 my $mark=&DWP(76+240,"esp"); # copy of aes_key->rounds
2050 &lea ($tbl,&DWP(&label("AES_Te")."-".&label("pic_point"),$tbl));
2052 &lea ($tbl,&DWP(&label("AES_Td")."-".&label("AES_Te"),$tbl));
2064 &bt (&DWP(0,$s0),28); # check for hyper-threading bit
2068 &lea ($acc,&DWP(-80-244,"esp"));
2073 &lea ($s1,&DWP(2048+256,$tbl));
2097 &mov ($s0,&DWP(0,$s3)); # load inp
2098 &mov ($s1,&DWP(4,$s3)); # load out
2099 #&mov ($s2,&DWP(8,$s3)); # load len
2100 &mov ($key,&DWP(12,$s3)); # load key
2101 &mov ($acc,&DWP(16,$s3)); # load ivp
2102 &mov ($s3,&DWP(20,$s3)); # load enc flag
2129 &mov ($s0,&DWP(0,$tbl));
2130 &mov ($s1,&DWP(32,$tbl));
2131 &mov ($s2,&DWP(64,$tbl));
2132 &mov ($acc,&DWP(96,$tbl));
2133 &lea ($tbl,&DWP(128,$tbl));
2145 &mov ($s0,&DWP(0,$key)); # load iv
2146 &mov ($s1,&DWP(4,$key));
2149 &mov ($s2,&DWP(8,$key));
2150 &mov ($s3,&DWP(12,$key));
2152 &xor ($s0,&DWP
2153 &xor ($s1,&DWP(4,$acc));
2154 &xor ($s2,&DWP(8,$acc));
2155 &xor ($s3,&DWP(12,$acc));
2163 &mov (&DWP(0,$key),$s0); # save output data
2164 &mov (&DWP(4,$key),$s1);
2165 &mov (&DWP(8,$key),$s2);
2166 &mov (&DWP(12,$key),$s3);
2168 &lea ($acc,&DWP(16,$acc)); # advance inp
2171 &lea ($s3,&DWP(16,$key)); # advance out
2177 &mov ($s2,&DWP(8,$key)); # restore last 2 dwords
2178 &mov ($s3,&DWP(12,$key));
2179 &mov (&DWP(0,$acc),$s0); # save ivec
2180 &mov (&DWP(4,$acc),$s1);
2181 &mov (&DWP(8,$acc),$s2);
2182 &mov (&DWP(12,$acc),$s3);
2209 &mov ($s0,&DWP(0,$acc)); # read input
2210 &mov ($s1,&DWP(4,$acc));
2211 &mov ($s2,&DWP(8,$acc));
2212 &mov ($s3,&DWP(12,$acc));
2219 &xor ($s0,&DWP(0,$key)); # xor iv
2220 &xor ($s1,&DWP(4,$key));
2221 &xor ($s2,&DWP(8,$key));
2222 &xor ($s3,&DWP(12,$key));
2227 &mov (&DWP(0,$key),$s0); # write output
2228 &mov (&DWP(4,$key),$s1);
2229 &mov (&DWP(8,$key),$s2);
2230 &mov (&DWP(12,$key),$s3);
2234 &lea ($acc,&DWP(16,$acc)); # advance inp
2236 &lea ($key,&DWP(16,$key)); # advance out
2243 &mov ($s0,&DWP(0,$key)); # load iv
2244 &mov ($s1,&DWP(4,$key));
2245 &mov ($s2,&DWP(8,$key));
2246 &mov ($s3,&DWP(12,$key));
2247 &mov (&DWP(0,$acc),$s0); # copy back to user
2248 &mov (&DWP(4,$acc),$s1);
2249 &mov (&DWP(8,$acc),$s2);
2250 &mov (&DWP(12,$acc),$s3);
2255 &mov ($s0,&DWP(0,$acc)); # read input
2256 &mov ($s1,&DWP(4,$acc));
2257 &mov ($s2,&DWP(8,$acc));
2258 &mov ($s3,&DWP(12,$acc));
2261 &mov (&DWP(0,$key),$s0); # copy to temp
2262 &mov (&DWP(4,$key),$s1);
2263 &mov (&DWP(8,$key),$s2);
2264 &mov (&DWP(12,$key),$s3);
2271 &xor ($s0,&DWP(0,$key)); # xor iv
2272 &xor ($s1,&DWP(4,$key));
2273 &xor ($s2,&DWP(8,$key));
2274 &xor ($s3,&DWP(12,$key));
2276 &mov (&DWP(0,$acc),$s0); # write output
2277 &mov (&DWP(4,$acc),$s1);
2278 &mov (&DWP(8,$acc),$s2);
2279 &mov (&DWP(12,$acc),$s3);
2281 &lea ($acc,&DWP(16,$acc)); # advance out
2285 &mov ($s0,&DWP(0,$acc)); # read temp
2286 &mov ($s1,&DWP(4,$acc));
2287 &mov ($s2,&DWP(8,$acc));
2288 &mov ($s3,&DWP(12,$acc));
2290 &mov (&DWP(0,$key),$s0); # copy iv
2291 &mov (&DWP(4,$key),$s1);
2292 &mov (&DWP(8,$key),$s2);
2293 &mov (&DWP(12,$key),$s3);
2297 &lea ($acc,&DWP(16,$acc)); # advance inp
2321 &mov ($s0,&DWP(0,$s0)) if (!$x86only);# load OPENSSL_ia32cap
2325 &lea ($acc,&DWP(-80,"esp"));
2329 &lea ($s1,&DWP(-80-63,$key));
2336 &lea ($s1,&DWP(768,$acc));
2339 &lea ($tbl,&DWP(2048+128,$tbl,$s1));
2349 &mov ($s0,&DWP(0,$s3)); # load inp
2350 &mov ($s1,&DWP(4,$s3)); # load out
2351 #&mov ($s2,&DWP(8,$s3)); # load len
2352 #&mov ($key,&DWP(12,$s3)); # load key
2353 &mov ($acc,&DWP(16,$s3)); # load ivp
2354 &mov ($s3,&DWP(20,$s3)); # load enc flag
2394 &lea ($acc,&DWP(16,$acc)); # advance inp
2396 &lea ($s3,&DWP(16,$key)); # advance out
2414 &mov ($s0,&DWP(0,$key)); # load iv
2415 &mov ($s1,&DWP(4,$key));
2418 &mov ($s2,&DWP(8,$key));
2419 &mov ($s3,&DWP(12,$key));
2421 &xor ($s0,&DWP(0,$acc)); # xor input data
2422 &xor ($s1,&DWP(4,$acc));
2423 &xor ($s2,&DWP(8,$acc));
2424 &xor ($s3,&DWP(12,$acc));
2432 &mov (&DWP(0,$key),$s0); # save output data
2433 &mov (&DWP(4,$key),$s1);
2434 &mov (&DWP(8,$key),$s2);
2435 &mov (&DWP(12,$key),$s3);
2438 &lea ($acc,&DWP(16,$acc)); # advance inp
2440 &lea ($s3,&DWP(16,$key)); # advance out
2449 &mov ($s2,&DWP(8,$key)); # restore last dwords
2450 &mov ($s3,&DWP(12,$key));
2451 &mov (&DWP(0,$acc),$s0); # save ivec
2452 &mov (&DWP(4,$acc),$s1);
2453 &mov (&DWP(8,$acc),$s2);
2454 &mov (&DWP(12,$acc),$s3);
2472 &lea ($key,&DWP(0,$key,$s2));
2481 &mov ($s0,&DWP(0,$key));
2482 &mov ($s1,&DWP(4,$key));
2520 &lea ($s1,&DWP(16,$s1)); # advance out
2522 &lea ($acc,&DWP(16,$acc)); # advance inp
2549 &mov ($s0,&DWP(0,$acc)); # read input
2550 &mov ($s1,&DWP(4,$acc));
2551 &mov ($s2,&DWP(8,$acc));
2552 &mov ($s3,&DWP(12,$acc));
2555 &mov (&DWP(0,$key),$s0); # copy to temp
2556 &mov (&DWP(4,$key),$s1);
2557 &mov (&DWP(8,$key),$s2);
2558 &mov (&DWP(12,$key),$s3);
2565 &xor ($s0,&DWP(0,$key)); # xor iv
2566 &xor ($s1,&DWP(4,$key));
2567 &xor ($s2,&DWP(8,$key));
2568 &xor ($s3,&DWP(12,$key));
2576 &mov (&DWP(0,$acc),$s0); # write output
2577 &mov (&DWP(4,$acc),$s1);
2578 &mov (&DWP(8,$acc),$s2);
2579 &mov (&DWP(12,$acc),$s3);
2581 &lea ($acc,&DWP(16,$acc)); # advance out
2585 &mov ($s0,&DWP(0,$acc)); # read temp
2586 &mov ($s1,&DWP(4,$acc));
2587 &mov ($s2,&DWP(8,$acc));
2588 &mov ($s3,&DWP(12,$acc));
2590 &mov (&DWP(0,$key),$s0); # copy it to iv
2591 &mov (&DWP(4,$key),$s1);
2592 &mov (&DWP(8,$key),$s2);
2593 &mov (&DWP(12,$key),$s3);
2596 &lea ($acc,&DWP(16,$acc)); # advance inp
2606 &mov (&DWP(0,$acc),$s0); # save output to temp
2607 &mov (&DWP(4,$acc),$s1);
2608 &mov (&DWP(8,$acc),$s2);
2609 &mov (&DWP(12,$acc),$s3);
2612 &mov ($s0,&DWP(0,$acc)); # re-read input
2613 &mov ($s1,&DWP(4,$acc));
2614 &mov ($s2,&DWP(8,$acc));
2615 &mov ($s3,&DWP(12,$acc));
2617 &mov (&DWP(0,$key),$s0); # copy it to iv
2618 &mov (&DWP(4,$key),$s1);
2619 &mov (&DWP(8,$key),$s2);
2620 &mov (&DWP(12,$key),$s3);
2657 &xor ("eax",&DWP(1024-128,$tbl,"ecx",4)); # rcon
2672 &lea ($tbl,&DWP(&label("AES_Te")."-".&label("pic_point"),$tbl));
2673 &lea ($tbl,&DWP(2048+128,$tbl));
2676 &mov ("eax",&DWP(0-128,$tbl));
2677 &mov ("ebx",&DWP(32-128,$tbl));
2678 &mov ("ecx",&DWP(64-128,$tbl));
2679 &mov ("edx",&DWP(96-128,$tbl));
2680 &mov ("eax",&DWP(128-128,$tbl));
2681 &mov ("ebx",&DWP(160-128,$tbl));
2682 &mov ("ecx",&DWP(192-128,$tbl));
2683 &mov ("edx",&DWP(224-128,$tbl));
2696 &mov ("eax",&DWP(0,"esi")); # copy first 4 dwords
2697 &mov ("ebx",&DWP(4,"esi"));
2698 &mov ("ecx",&DWP(8,"esi"));
2699 &mov ("edx",&DWP(12,"esi"));
2700 &mov (&DWP(0,"edi"),"eax");
2701 &mov (&DWP(4,"edi"),"ebx");
2702 &mov (&DWP(8,"edi"),"ecx");
2703 &mov (&DWP(12,"edi"),"edx");
2710 &mov ("eax",&DWP(0,"edi")); # rk[0]
2711 &mov ("edx",&DWP(12,"edi")); # rk[3]
2715 &mov (&DWP(16,"edi"),"eax"); # rk[4]
2716 &xor ("eax",&DWP(4,"edi"));
2717 &mov (&DWP(20,"edi"),"eax"); # rk[5]
2718 &xor ("eax",&DWP(8,"edi"));
2719 &mov (&DWP(24,"edi"),"eax"); # rk[6]
2720 &xor ("eax",&DWP(12,"edi"));
2721 &mov (&DWP(28,"edi"),"eax"); # rk[7]
2727 &mov (&DWP(80,"edi"),10); # setup number of rounds
2732 &mov ("eax",&DWP(0,"esi")); # copy first 6 dwords
2733 &mov ("ebx",&DWP(4,"esi"));
2734 &mov ("ecx",&DWP(8,"esi"));
2735 &mov ("edx",&DWP(12,"esi"));
2736 &mov (&DWP(0,"edi"),"eax");
2737 &mov (&DWP(4,"edi"),"ebx");
2738 &mov (&DWP(8,"edi"),"ecx");
2739 &mov (&DWP(12,"edi"),"edx");
2740 &mov ("ecx",&DWP(16,"esi"));
2741 &mov ("edx",&DWP(20,"esi"));
2742 &mov (&DWP(16,"edi"),"ecx");
2743 &mov (&DWP(20,"edi"),"edx");
2750 &mov ("eax",&DWP(0,"edi")); # rk[0]
2751 &mov ("edx",&DWP(20,"edi")); # rk[5]
2755 &mov (&DWP(24,"edi"),"eax"); # rk[6]
2756 &xor ("eax",&DWP(4,"edi"));
2757 &mov (&DWP(28,"edi"),"eax"); # rk[7]
2758 &xor ("eax",&DWP(8,"edi"));
2759 &mov (&DWP(32,"edi"),"eax"); # rk[8]
2760 &xor ("eax",&DWP(12,"edi"));
2761 &mov (&DWP(36,"edi"),"eax"); # rk[9]
2767 &xor ("eax",&DWP(16,"edi"));
2768 &mov (&DWP(40,"edi"),"eax"); # rk[10]
2769 &xor ("eax",&DWP(20,"edi"));
2770 &mov (&DWP(44,"edi"),"eax"); # rk[11]
2776 &mov (&DWP(72,"edi"),12); # setup number of rounds
2781 &mov ("eax",&DWP(0,"esi")); # copy first 8 dwords
2782 &mov ("ebx",&DWP(4,"esi"));
2783 &mov ("ecx",&DWP(8,"esi"));
2784 &mov ("edx",&DWP(12,"esi"));
2785 &mov (&DWP(0,"edi"),"eax");
2786 &mov (&DWP(4,"edi"),"ebx");
2787 &mov (&DWP(8,"edi"),"ecx");
2788 &mov (&DWP(12,"edi"),"edx");
2789 &mov ("eax",&DWP(16,"esi"));
2790 &mov ("ebx",&DWP(20,"esi"));
2791 &mov ("ecx",&DWP(24,"esi"));
2792 &mov ("edx",&DWP(28,"esi"));
2793 &mov (&DWP(16,"edi"),"eax");
2794 &mov (&DWP(20,"edi"),"ebx");
2795 &mov (&DWP(24,"edi"),"ecx");
2796 &mov (&DWP(28,"edi"),"edx");
2803 &mov ("edx",&DWP(28,"edi")); # rk[7]
2805 &mov ("eax",&DWP(0,"edi")); # rk[0]
2809 &mov (&DWP(32,"edi"),"eax"); # rk[8]
2810 &xor ("eax",&DWP(4,"edi"));
2811 &mov (&DWP(36,"edi"),"eax"); # rk[9]
2812 &xor ("eax",&DWP(8,"edi"));
2813 &mov (&DWP(40,"edi"),"eax"); # rk[10]
2814 &xor ("eax",&DWP(12,"edi"));
2815 &mov (&DWP(44,"edi"),"eax"); # rk[11]
2822 &mov ("eax",&DWP(16,"edi")); # rk[4]
2843 &mov (&DWP(48,"edi"),"eax"); # rk[12]
2844 &xor ("eax",&DWP(20,"edi"));
2845 &mov (&DWP(52,"edi"),"eax"); # rk[13]
2846 &xor ("eax",&DWP(24,"edi"));
2847 &mov (&DWP(56,"edi"),"eax"); # rk[14]
2848 &xor ("eax",&DWP(28,"edi"));
2849 &mov (&DWP(60,"edi"),"eax"); # rk[15]
2855 &mov (&DWP(48,"edi"),14); # setup number of rounds
2877 &lea ($tp2,&DWP(0,$tp1,$tp1));
2887 &lea ($tp4,&DWP(0,$tp2,$tp2));
2898 &lea ($tp8,&DWP(0,$tp4,$tp4));
2908 &mov ($tmp,&DWP(4*($i+1),$key)); # modulo-scheduled load
2923 &mov (&DWP(4*$i,$key),$tp1);
2941 &mov ("ecx",&DWP(240,"esi")); # pull number of rounds
2942 &lea ("ecx",&DWP(0,"","ecx",4));
2943 &lea ("edi",&DWP(0,"esi","ecx",4)); # pointer to last chunk
2946 &mov ("eax",&DWP(0,"esi"));
2947 &mov ("ebx",&DWP(4,"esi"));
2948 &mov ("ecx",&DWP(0,"edi"));
2949 &mov ("edx",&DWP(4,"edi"));
2950 &mov (&DWP(0,"edi"),"eax");
2951 &mov (&DWP(4,"edi"),"ebx");
2952 &mov (&DWP(0,"esi"),"ecx");
2953 &mov (&DWP(4,"esi"),"edx");
2954 &mov ("eax",&DWP(8,"esi"));
2955 &mov ("ebx",&DWP(12,"esi"));
2956 &mov ("ecx",&DWP(8,"edi"));
2957 &mov ("edx",&DWP(12,"edi"));
2958 &mov (&DWP(8,"edi"),"eax");
2959 &mov (&DWP(12,"edi"),"ebx");
2960 &mov (&DWP(8,"esi"),"ecx");
2961 &mov (&DWP(12,"esi"),"edx");
2968 &mov ($acc,&DWP(240,$key)); # pull number of rounds
2969 &lea ($acc,&DWP(-2,$acc,$acc));
2970 &lea ($acc,&DWP(0,$key,$acc,8));
2973 &mov ($s0,&DWP(16,$key)); # modulo-scheduled load