Home | History | Annotate | Download | only in asm

Lines Matching refs:XMM

66 my @XMM=map("q$_",(0..15));
591 veor @XMM[5], @t[5], @t[6]
592 veor @XMM[6], @t[6], @y[6] @ t[6]=y[6]
593 veor @XMM[2], @t[2], @t[6]
594 veor @XMM[7], @t[7], @y[7] @ t[7]=y[7]
596 vmov @XMM[0], @t[0]
597 vmov @XMM[1], @t[1]
598 @ vmov @XMM[2], @t[2]
599 vmov @XMM[3], @t[3]
600 vmov @XMM[4], @t[4]
601 @ vmov @XMM[5], @t[5]
602 @ vmov @XMM[6], @t[6]
603 @ vmov @XMM[7], @t[7]
740 vldmia $key!, {@XMM[9]} @ round 0 key
747 vldmia $const!, {@XMM[8]} @ .LM0ISR
748 veor @XMM[10], @XMM[0], @XMM[9] @ xor with round0 key
749 veor @XMM[11], @XMM[1], @XMM[9]
750 vtbl.8 `&Dlo(@XMM[0])`, {@XMM[10]}, `&Dlo(@XMM[8])`
751 vtbl.8 `&Dhi(@XMM[0])`, {@XMM[10]}, `&Dhi(@XMM[8])`
752 veor @XMM[12], @XMM[2], @XMM[9]
753 vtbl.8 `&Dlo(@XMM[1])`, {@XMM[11]}, `&Dlo(@XMM[8])`
754 vtbl.8 `&Dhi(@XMM[1])`, {@XMM[11]}, `&Dhi(@XMM[8])`
755 veor @XMM[13], @XMM[3], @XMM[9]
756 vtbl.8 `&Dlo(@XMM[2])`, {@XMM[12]}, `&Dlo(@XMM[8])`
757 vtbl.8 `&Dhi(@XMM[2])`, {@XMM[12]}, `&Dhi(@XMM[8])`
758 veor @XMM[14], @XMM[4], @XMM[9]
759 vtbl.8 `&Dlo(@XMM[3])`, {@XMM[13]}, `&Dlo(@XMM[8])`
760 vtbl.8 `&Dhi(@XMM[3])`, {@XMM[13]}, `&Dhi(@XMM[8])`
761 veor @XMM[15], @XMM[5], @XMM[9]
762 vtbl.8 `&Dlo(@XMM[4])`, {@XMM[14]}, `&Dlo(@XMM[8])`
763 vtbl.8 `&Dhi(@XMM[4])`, {@XMM[14]}, `&Dhi(@XMM[8])`
764 veor @XMM[10], @XMM[6], @XMM[9]
765 vtbl.8 `&Dlo(@XMM[5])`, {@XMM[15]}, `&Dlo(@XMM[8])`
766 vtbl.8 `&Dhi(@XMM[5])`, {@XMM[15]}, `&Dhi(@XMM[8])`
767 veor @XMM[11], @XMM[7], @XMM[9]
768 vtbl.8 `&Dlo(@XMM[6])`, {@XMM[10]}, `&Dlo(@XMM[8])`
769 vtbl.8 `&Dhi(@XMM[6])`, {@XMM[10]}, `&Dhi(@XMM[8])`
770 vtbl.8 `&Dlo(@XMM[7])`, {@XMM[11]}, `&Dlo(@XMM[8])`
771 vtbl.8 `&Dhi(@XMM[7])`, {@XMM[11]}, `&Dhi(@XMM[8])`
773 &bitslice (@XMM[0..7, 8..11]);
780 &ShiftRows (@XMM[0..7, 8..12]);
782 &InvSbox (@XMM[0..7, 8..15]);
787 &InvMixColumns (@XMM[0,1,6,4,2,7,3,5, 8..15]);
789 vldmia $const, {@XMM[12]} @ .LISR
793 vldmia $const, {@XMM[12]} @ .LISRM0
798 &bitslice (@XMM[0,1,6,4,2,7,3,5, 8..11]);
800 vldmia $key, {@XMM[8]} @ last round key
801 veor @XMM[6], @XMM[6], @XMM[8]
802 veor @XMM[4], @XMM[4], @XMM[8]
803 veor @XMM[2], @XMM[2], @XMM[8]
804 veor @XMM[7], @XMM[7], @XMM[8]
805 veor @XMM[3], @XMM[3], @XMM[8]
806 veor @XMM[5], @XMM[5], @XMM[8]
807 veor @XMM[0], @XMM[0], @XMM[8]
808 veor @XMM[1], @XMM[1], @XMM[8]
839 vldmia $key!, {@XMM[9]} @ round 0 key
846 vldmia $const!, {@XMM[8]} @ .LM0SR
848 veor @XMM[10], @XMM[0], @XMM[9] @ xor with round0 key
849 veor @XMM[11], @XMM[1], @XMM[9]
850 vtbl.8 `&Dlo(@XMM[0])`, {@XMM[10]}, `&Dlo(@XMM[8])`
851 vtbl.8 `&Dhi(@XMM[0])`, {@XMM[10]}, `&Dhi(@XMM[8])`
852 veor @XMM[12], @XMM[2], @XMM[9]
853 vtbl.8 `&Dlo(@XMM[1])`, {@XMM[11]}, `&Dlo(@XMM[8])`
854 vtbl.8 `&Dhi(@XMM[1])`, {@XMM[11]}, `&Dhi(@XMM[8])`
855 veor @XMM[13], @XMM[3], @XMM[9]
856 vtbl.8 `&Dlo(@XMM[2])`, {@XMM[12]}, `&Dlo(@XMM[8])`
857 vtbl.8 `&Dhi(@XMM[2])`, {@XMM[12]}, `&Dhi(@XMM[8])`
858 veor @XMM[14], @XMM[4], @XMM[9]
859 vtbl.8 `&Dlo(@XMM[3])`, {@XMM[13]}, `&Dlo(@XMM[8])`
860 vtbl.8 `&Dhi(@XMM[3])`, {@XMM[13]}, `&Dhi(@XMM[8])`
861 veor @XMM[15], @XMM[5], @XMM[9]
862 vtbl.8 `&Dlo(@XMM[4])`, {@XMM[14]}, `&Dlo(@XMM[8])`
863 vtbl.8 `&Dhi(@XMM[4])`, {@XMM[14]}, `&Dhi(@XMM[8])`
864 veor @XMM[10], @XMM[6], @XMM[9]
865 vtbl.8 `&Dlo(@XMM[5])`, {@XMM[15]}, `&Dlo(@XMM[8])`
866 vtbl.8 `&Dhi(@XMM[5])`, {@XMM[15]}, `&Dhi(@XMM[8])`
867 veor @XMM[11], @XMM[7], @XMM[9]
868 vtbl.8 `&Dlo(@XMM[6])`, {@XMM[10]}, `&Dlo(@XMM[8])`
869 vtbl.8 `&Dhi(@XMM[6])`, {@XMM[10]}, `&Dhi(@XMM[8])`
870 vtbl.8 `&Dlo(@XMM[7])`, {@XMM[11]}, `&Dlo(@XMM[8])`
871 vtbl.8 `&Dhi(@XMM[7])`, {@XMM[11]}, `&Dhi(@XMM[8])`
874 &bitslice (@XMM[0..7, 8..11]);
881 &ShiftRows (@XMM[0..7, 8..12]);
883 &Sbox (@XMM[0..7, 8..15]);
888 &MixColumns (@XMM[0,1,4,6,3,7,2,5, 8..15]);
890 vldmia $const, {@XMM[12]} @ .LSR
894 vldmia $const, {@XMM[12]} @ .LSRM0
900 &bitslice (@XMM[0,1,4,6,3,7,2,5, 8..11]);
902 vldmia $key, {@XMM[8]} @ last round key
903 veor @XMM[4], @XMM[4], @XMM[8]
904 veor @XMM[6], @XMM[6], @XMM[8]
905 veor @XMM[3], @XMM[3], @XMM[8]
906 veor @XMM[7], @XMM[7], @XMM[8]
907 veor @XMM[2], @XMM[2], @XMM[8]
908 veor @XMM[5], @XMM[5], @XMM[8]
909 veor @XMM[0], @XMM[0], @XMM[8]
910 veor @XMM[1], @XMM[1], @XMM[8]
947 vld1.8 {@XMM[7]}, [$inp]! @ load round 0 key
953 vld1.8 {@XMM[15]}, [$inp]! @ load round 1 key
955 vmov.i8 @XMM[8], #0x01 @ bit masks
956 vmov.i8 @XMM[9], #0x02
957 vmov.i8 @XMM[10], #0x04
958 vmov.i8 @XMM[11], #0x08
959 vmov.i8 @XMM[12], #0x10
960 vmov.i8 @XMM[13], #0x20
961 vldmia $const, {@XMM[14]} @ .LM0
964 vrev32.8 @XMM[7], @XMM[7]
965 vrev32.8 @XMM[15], @XMM[15]
968 vstmia $out!, {@XMM[7]} @ save round 0 key
973 vtbl.8 `&Dlo(@XMM[7])`,{@XMM[15]},`&Dlo(@XMM[14])`
974 vtbl.8 `&Dhi(@XMM[7])`,{@XMM[15]},`&Dhi(@XMM[14])`
975 vmov.i8 @XMM[6], #0x40
976 vmov.i8 @XMM[15], #0x80
978 vtst.8 @XMM[0], @XMM[7], @XMM[8]
979 vtst.8 @XMM[1], @XMM[7], @XMM[9]
980 vtst.8 @XMM[2], @XMM[7], @XMM[10]
981 vtst.8 @XMM[3], @XMM[7], @XMM[11]
982 vtst.8 @XMM[4], @XMM[7], @XMM[12]
983 vtst.8 @XMM[5], @XMM[7], @XMM[13]
984 vtst.8 @XMM[6], @XMM[7], @XMM[6]
985 vtst.8 @XMM[7], @XMM[7], @XMM[15]
986 vld1.8 {@XMM[15]}, [$inp]! @ load next round key
987 vmvn @XMM[0], @XMM[0] @ "pnot"
988 vmvn @XMM[1], @XMM[1]
989 vmvn @XMM[5], @XMM[5]
990 vmvn @XMM[6], @XMM[6]
992 vrev32.8 @XMM[15], @XMM[15]
995 vstmia $out!,{@XMM[0]-@XMM[7]} @ write bit-sliced round key
998 vmov.i8 @XMM[7],#0x63 @ compose .L63
1019 veor @XMM[7],@XMM[7],@XMM[15] @ fix up last round key
1020 vstmia r12, {@XMM[7]} @ save last round key
1033 vld1.8 {@XMM[0]-@XMM[1]}, [$inp]! @ load input
1034 vld1.8 {@XMM[2]-@XMM[3]}, [$inp]!
1036 vld1.8 {@XMM[4]-@XMM[5]}, [$inp]!
1038 vld1.8 {@XMM[6]-@XMM[7]}, [$inp]!
1042 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1043 vst1.8 {@XMM[4]}, [$out]!
1044 vst1.8 {@XMM[6]}, [$out]!
1045 vst1.8 {@XMM[3]}, [$out]!
1046 vst1.8 {@XMM[7]}, [$out]!
1047 vst1.8 {@XMM[2]}, [$out]!
1049 vst1.8 {@XMM[5]}, [$out]!
1067 vldmia $out, {@XMM[6]}
1068 vstmia r12, {@XMM[15]} @ save last round key
1069 veor @XMM[7], @XMM[7], @XMM[6] @ fix up round 0 key
1070 vstmia $out, {@XMM[7]}
1083 vld1.8 {@XMM[0]-@XMM[1]}, [$inp]! @ load input
1084 vld1.8 {@XMM[2]-@XMM[3]}, [$inp]!
1086 vld1.8 {@XMM[4]-@XMM[5]}, [$inp]!
1088 vld1.8 {@XMM[6]-@XMM[7]}, [$inp]!
1092 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1093 vst1.8 {@XMM[6]}, [$out]!
1094 vst1.8 {@XMM[4]}, [$out]!
1095 vst1.8 {@XMM[2]}, [$out]!
1096 vst1.8 {@XMM[7]}, [$out]!
1097 vst1.8 {@XMM[3]}, [$out]!
1099 vst1.8 {@XMM[5]}, [$out]!
1151 vldmia $keysched, {@XMM[6]}
1152 vstmia r12, {@XMM[15]} @ save last round key
1153 veor @XMM[7], @XMM[7], @XMM[6] @ fix up round 0 key
1154 vstmia $keysched, {@XMM[7]}
1167 vldmia r4, {@XMM[6]}
1168 vstmia r12, {@XMM[15]} @ save last round key
1169 veor @XMM[7], @XMM[7], @XMM[6] @ fix up round 0 key
1170 vstmia r4, {@XMM[7]}
1176 vld1.8 {@XMM[15]}, [$ivp] @ load IV
1184 vld1.8 {@XMM[0]-@XMM[1]}, [$inp]! @ load input
1185 vld1.8 {@XMM[2]-@XMM[3]}, [$inp]!
1191 vld1.8 {@XMM[4]-@XMM[5]}, [$inp]!
1193 vld1.8 {@XMM[6]-@XMM[7]}, [$inp]
1195 vstmia $fp, {@XMM[15]} @ put aside IV
1199 vldmia $fp, {@XMM[14]} @ reload IV
1200 vld1.8 {@XMM[8]-@XMM[9]}, [$inp]! @ reload input
1201 veor @XMM[0], @XMM[0], @XMM[14] @ ^= IV
1202 vld1.8 {@XMM[10]-@XMM[11]}, [$inp]!
1203 veor @XMM[1], @XMM[1], @XMM[8]
1204 veor @XMM[6], @XMM[6], @XMM[9]
1205 vld1.8 {@XMM[12]-@XMM[13]}, [$inp]!
1206 veor @XMM[4], @XMM[4], @XMM[10]
1207 veor @XMM[2], @XMM[2], @XMM[11]
1208 vld1.8 {@XMM[14]-@XMM[15]}, [$inp]!
1209 veor @XMM[7], @XMM[7], @XMM[12]
1210 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1211 veor @XMM[3], @XMM[3], @XMM[13]
1212 vst1.8 {@XMM[6]}, [$out]!
1213 veor @XMM[5], @XMM[5], @XMM[14]
1214 vst1.8 {@XMM[4]}, [$out]!
1215 vst1.8 {@XMM[2]}, [$out]!
1216 vst1.8 {@XMM[7]}, [$out]!
1217 vst1.8 {@XMM[3]}, [$out]!
1218 vst1.8 {@XMM[5]}, [$out]!
1226 vld1.8 {@XMM[0]}, [$inp]! @ load input
1229 vld1.8 {@XMM[1]}, [$inp]!
1236 vstmia $fp, {@XMM[15]} @ put aside IV
1238 vld1.8 {@XMM[2]}, [$inp]!
1241 vld1.8 {@XMM[3]}, [$inp]!
1243 vld1.8 {@XMM[4]}, [$inp]!
1246 vld1.8 {@XMM[5]}, [$inp]!
1248 vld1.8 {@XMM[6]}, [$inp]!
1253 vldmia $fp, {@XMM[14]} @ reload IV
1254 vld1.8 {@XMM[8]-@XMM[9]}, [$inp]! @ reload input
1255 veor @XMM[0], @XMM[0], @XMM[14] @ ^= IV
1256 vld1.8 {@XMMXMM[11]}, [$inp]!
1257 veor @XMM[1], @XMM[1], @XMM[8]
1258 veor @XMM[6], @XMM[6], @XMM[9]
1259 vld1.8 {@XMM[12]-@XMM[13]}, [$inp]!
1260 veor @XMM[4], @XMM[4], @XMM[10]
1261 veor @XMM[2], @XMM[2], @XMM[11]
1262 vld1.8 {@XMM[15]}, [$inp]!
1263 veor @XMM[7], @XMM[7], @XMM[12]
1264 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1265 veor @XMM[3], @XMM[3], @XMM[13]
1266 vst1.8 {@XMM[6]}, [$out]!
1267 vst1.8 {@XMM[4]}, [$out]!
1268 vst1.8 {@XMM[2]}, [$out]!
1269 vst1.8 {@XMM[7]}, [$out]!
1270 vst1.8 {@XMM[3]}, [$out]!
1276 vldmia $fp,{@XMM[14]} @ reload IV
1277 vld1.8 {@XMM[8]-@XMM[9]}, [$inp]! @ reload input
1278 veor @XMM[0], @XMM[0], @XMM[14] @ ^= IV
1279 vld1.8 {@XMM[10]-@XMM[11]}, [$inp]!
1280 veor @XMM[1], @XMM[1], @XMM[8]
1281 veor @XMM[6], @XMM[6], @XMM[9]
1282 vld1.8 {@XMM[12]}, [$inp]!
1283 veor @XMM[4], @XMM[4], @XMM[10]
1284 veor @XMM[2], @XMM[2], @XMM[11]
1285 vld1.8 {@XMM[15]}, [$inp]!
1286 veor @XMM[7], @XMM[7], @XMM[12]
1287 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1288 vst1.8 {@XMM[6]}, [$out]!
1289 vst1.8 {@XMM[4]}, [$out]!
1290 vst1.8 {@XMM[2]}, [$out]!
1291 vst1.8 {@XMM[7]}, [$out]!
1297 vldmia $fp, {@XMM[14]} @ reload IV
1298 vld1.8 {@XMM[8]-@XMM[9]}, [$inp]! @ reload input
1299 veor @XMM[0], @XMM[0], @XMM[14] @ ^= IV
1300 vld1.8 {@XMM[10]-@XMM[11]}, [$inp]!
1301 veor @XMM[1], @XMM[1], @XMM[8]
1302 veor @XMM[6], @XMM[6], @XMM[9]
1303 vld1.8 {@XMM[15]}, [$inp]!
1304 veor @XMM[4], @XMM[4], @XMM[10]
1305 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1306 veor @XMM[2], @XMM[2], @XMM[11]
1307 vst1.8 {@XMM[6]}, [$out]!
1308 vst1.8 {@XMM[4]}, [$out]!
1309 vst1.8 {@XMM[2]}, [$out]!
1315 vldmia $fp, {@XMM[14]} @ reload IV
1316 vld1.8 {@XMM[8]-@XMM[9]}, [$inp]! @ reload input
1317 veor @XMM[0], @XMM[0], @XMM[14] @ ^= IV
1318 vld1.8 {@XMM[10]}, [$inp]!
1319 veor @XMM[1], @XMM[1], @XMM[8]
1320 veor @XMM[6], @XMM[6], @XMM[9]
1321 vld1.8 {@XMM[15]}, [$inp]!
1322 veor @XMM[4], @XMM[4], @XMM[10]
1323 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1324 vst1.8 {@XMM[6]}, [$out]!
1325 vst1.8 {@XMM[4]}, [$out]!
1331 vldmia $fp, {@XMM[14]} @ reload IV
1332 vld1.8 {@XMM[8]-@XMM[9]}, [$inp]! @ reload input
1333 veor @XMM[0], @XMM[0], @XMM[14] @ ^= IV
1334 vld1.8 {@XMM[15]}, [$inp]!
1335 veor @XMM[1], @XMM[1], @XMM[8]
1336 veor @XMM[6], @XMM[6], @XMM[9]
1337 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1338 vst1.8 {@XMM[6]}, [$out]!
1344 vldmia $fp, {@XMM[14]} @ reload IV
1345 vld1.8 {@XMM[8]}, [$inp]! @ reload input
1346 veor @XMM[0], @XMM[0], @XMM[14] @ ^= IV
1347 vld1.8 {@XMM[15]}, [$inp]! @ reload input
1348 veor @XMM[1], @XMM[1], @XMM[8]
1349 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1357 vmov @XMM[4],@XMM[15] @ just in case ensure that IV
1358 vmov @XMM[5],@XMM[0] @ and input are preserved
1360 vld1.8 {@XMM[0]}, [$fp,:64] @ load result
1361 veor @XMM[0], @XMM[0], @XMM[4] @ ^= IV
1362 vmov @XMM[15], @XMM[5] @ @XMM[5] holds input
1363 vst1.8 {@XMM[0]}, [$rounds] @ write output
1377 vst1.8 {@XMM[15]}, [$ivp] @ return IV
1415 veor @XMM[7],@XMM[7],@XMM[15] @ fix up last round key
1416 vstmia r12, {@XMM[7]} @ save last round key
1418 vld1.8 {@XMM[0]}, [$ctr] @ load counter
1425 vldmia $keysched, {@XMM[4]} @ load round0 key
1437 veor @XMM[7],@XMM[7],@XMM[15] @ fix up last round key
1438 vstmia r12, {@XMM[7]} @ save last round key
1442 vld1.8 {@XMM[0]}, [$ctr] @ load counter
1444 vldmia r12, {@XMM[4]} @ load round0 key
1448 vmov.i32 @XMM[8],#1 @ compose 1<<96
1449 veor @XMM[9],@XMM[9],@XMM[9]
1450 vrev32.8 @XMM[0],@XMM[0]
1451 vext.8 @XMM[8],@XMM[9],@XMM[8],#4
1452 vrev32.8 @XMM[4],@XMM[4]
1453 vadd.u32 @XMM[9],@XMM[8],@XMM[8] @ compose 2<<96
1454 vstmia $keysched, {@XMM[4]} @ save adjusted round0 key
1459 vadd.u32 @XMM[10], @XMM[8], @XMM[9] @ compose 3<<96
1460 vadd.u32 @XMM[1], @XMM[0], @XMM[8] @ +1
1461 vadd.u32 @XMM[2], @XMM[0], @XMM[9] @ +2
1462 vadd.u32 @XMM[3], @XMM[0], @XMM[10] @ +3
1463 vadd.u32 @XMM[4], @XMM[1], @XMM[10]
1464 vadd.u32 @XMM[5], @XMM[2], @XMM[10]
1465 vadd.u32 @XMM[6], @XMM[3], @XMM[10]
1466 vadd.u32 @XMM[7], @XMM[4], @XMM[10]
1467 vadd.u32 @XMM[10], @XMM[5], @XMM[10] @ next counter
1472 vldmia $keysched, {@XMM[9]} @ load round0 key
1478 vldmia $ctr, {@XMM[8]} @ .LREVM0SR
1480 vstmia $fp, {@XMM[10]} @ save next counter
1493 vld1.8 {@XMM[8]-@XMM[9]}, [$inp]! @ load input
1494 vld1.8 {@XMM[10]-@XMM[11]}, [$inp]!
1495 veor @XMM[0], @XMM[8]
1496 veor @XMM[1], @XMM[9]
1497 vld1.8 {@XMM[12]-@XMM[13]}, [$inp]!
1498 veor @XMM[4], @XMM[10]
1499 veor @XMM[6], @XMM[11]
1500 vld1.8 {@XMM[14]-@XMM[15]}, [$inp]!
1501 veor @XMM[3], @XMM[12]
1502 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1503 veor @XMM[7], @XMM[13]
1504 veor @XMM[2], @XMM[14]
1505 vst1.8 {@XMM[4]}, [$out]!
1506 veor @XMM[5], @XMM[15]
1507 vst1.8 {@XMM[6]}, [$out]!
1508 vmov.i32 @XMM[8], #1 @ compose 1<<96
1509 vst1.8 {@XMM[3]}, [$out]!
1510 veor @XMM[9], @XMM[9], @XMM[9]
1511 vst1.8 {@XMM[7]}, [$out]!
1512 vext.8 @XMM[8], @XMM[9], @XMM[8], #4
1513 vst1.8 {@XMM[2]}, [$out]!
1514 vadd.u32 @XMM[9],@XMM[8],@XMM[8] @ compose 2<<96
1515 vst1.8 {@XMM[5]}, [$out]!
1516 vldmia $fp, {@XMM[0]} @ load counter
1524 vld1.8 {@XMM[8]}, [$inp]! @ load input
1525 veor @XMM[0], @XMM[8]
1526 vst1.8 {@XMM[0]}, [$out]! @ write output
1529 vld1.8 {@XMM[9]}, [$inp]!
1530 veor @XMM[1], @XMM[9]
1531 vst1.8 {@XMM[1]}, [$out]!
1533 vld1.8 {@XMM[10]}, [$inp]!
1534 veor @XMM[4], @XMM[10]
1535 vst1.8 {@XMM[4]}, [$out]!
1538 vld1.8 {@XMM[11]}, [$inp]!
1539 veor @XMM[6], @XMM[11]
1540 vst1.8 {@XMM[6]}, [$out]!
1542 vld1.8 {@XMM[12]}, [$inp]!
1543 veor @XMM[3], @XMM[12]
1544 vst1.8 {@XMM[3]}, [$out]!
1547 vld1.8 {@XMM[13]}, [$inp]!
1548 veor @XMM[7], @XMM[13]
1549 vst1.8 {@XMM[7]}, [$out]!
1551 vld1.8 {@XMM[14]}, [$inp]
1552 veor @XMM[2], @XMM[14]
1553 vst1.8 {@XMM[2]}, [$out]!
1582 vld1.8 {@XMM[1]}, [ip] @ load whole counter value
1587 vst1.8 {@XMM[1]}, [sp] @ copy counter value
1597 vld1.8 {@XMM[0]}, [r4]! @ load input
1598 vld1.8 {@XMM[1]}, [sp] @ load encrypted counter
1606 veor @XMM[0],@XMM[0],@XMM[1]
1607 vst1.8 {@XMM[0]}, [r5]! @ store output
1627 my $twmask=@XMM[5];
1628 my @T=@XMM[6..7];
1674 veor @XMM[7], @XMM[7], @XMM[15] @ fix up last round key
1675 vstmia r12, {@XMM[7]} @ save last round key
1686 veor @XMM[7], @XMM[7], @XMM[15] @ fix up last round key
1687 vstmia r12, {@XMM[7]}
1693 vld1.8 {@XMM[8]}, [r0] @ initial tweak
1703 vshr.s64 @T[0], @XMM[8], #63
1709 vadd.u64 @XMM[$i], @XMM[$i-1], @XMM[$i-1]
1710 vst1.64 {@XMM[$i-1]}, [r0,:128]!
1712 vshr.s64 @T[1], @XMM[$i], #63
1713 veor @XMM[$i], @XMM[$i], @T[0]
1719 vld1.8 {@XMM[$i-10]}, [$inp]!
1722 veor @XMM[$i-11], @XMM[$i-11], @XMM[$i-3]
1726 vadd.u64 @XMM[8], @XMM[15], @XMM[15]
1727 vst1.64 {@XMM[15]}, [r0,:128]!
1729 veor @XMM[8], @XMM[8], @T[0]
1730 vst1.64 {@XMM[8]}, [r0,:128] @ next round tweak
1732 vld1.8 {@XMM[6]-@XMM[7]}, [$inp]!
1733 veor @XMM[5], @XMM[5], @XMM[13]
1739 veor @XMM[6], @XMM[6], @XMM[14]
1741 veor @XMM[7], @XMM[7], @XMM[15]
1746 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
1747 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
1748 veor @XMM[0], @XMM[0], @XMM[ 8]
1749 vld1.64 {@XMM[12]-@XMM[13]}, [r0,:128]!
1750 veor @XMM[1], @XMM[1], @XMM[ 9]
1751 veor @XMM[8], @XMM[4], @XMM[10]
1752 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
1753 veor @XMM[9], @XMM[6], @XMM[11]
1754 vld1.64 {@XMM[14]-@XMM[15]}, [r0,:128]!
1755 veor @XMM[10], @XMM[3], @XMM[12]
1756 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
1757 veor @XMM[11], @XMM[7], @XMM[13]
1758 veor @XMM[12], @XMM[2], @XMM[14]
1759 vst1.8 {@XMM[10]-@XMM[11]}, [$out]!
1760 veor @XMM[13], @XMM[5], @XMM[15]
1761 vst1.8 {@XMM[12]-@XMM[13]}, [$out]!
1763 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
1773 vshr.s64 @T[0], @XMM[8], #63
1779 vadd.u64 @XMM[$i], @XMM[$i-1], @XMM[$i-1]
1780 vst1.64 {@XMM[$i-1]}, [r0,:128]!
1782 vshr.s64 @T[1], @XMM[$i], #63
1783 veor @XMM[$i], @XMM[$i], @T[0]
1789 vld1.8 {@XMM[$i-10]}, [$inp]!
1794 veor @XMM[$i-11], @XMM[$i-11], @XMM[$i-3]
1799 vst1.64 {@XMM[15]}, [r0,:128] @ next round tweak
1801 vld1.8 {@XMM[6]}, [$inp]!
1802 veor @XMM[5], @XMM[5], @XMM[13]
1808 veor @XMM[6], @XMM[6], @XMM[14]
1814 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
1815 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
1816 veor @XMM[0], @XMM[0], @XMM[ 8]
1817 vld1.64 {@XMM[12]-@XMM[13]}, [r0,:128]!
1818 veor @XMM[1], @XMM[1], @XMM[ 9]
1819 veor @XMM[8], @XMM[4], @XMM[10]
1820 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
1821 veor @XMM[9], @XMM[6], @XMM[11]
1822 vld1.64 {@XMM[14]}, [r0,:128]!
1823 veor @XMM[10], @XMM[3], @XMM[12]
1824 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
1825 veor @XMM[11], @XMM[7], @XMM[13]
1826 veor @XMM[12], @XMM[2], @XMM[14]
1827 vst1.8 {@XMM[10]-@XMM[11]}, [$out]!
1828 vst1.8 {@XMM[12]}, [$out]!
1830 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
1834 veor @XMM[4], @XMM[4], @XMM[12]
1840 veor @XMM[5], @XMM[5], @XMM[13]
1846 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
1847 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
1848 veor @XMM[0], @XMM[0], @XMM[ 8]
1849 vld1.64 {@XMM[12]-@XMM[13]}, [r0,:128]!
1850 veor @XMM[1], @XMM[1], @XMM[ 9]
1851 veor @XMM[8], @XMM[4], @XMM[10]
1852 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
1853 veor @XMM[9], @XMM[6], @XMM[11]
1854 veor @XMM[10], @XMM[3], @XMM[12]
1855 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
1856 veor @XMM[11], @XMM[7], @XMM[13]
1857 vst1.8 {@XMM[10]-@XMM[11]}, [$out]!
1859 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
1869 veor @XMM[3], @XMM[3], @XMM[11]
1875 veor @XMM[4], @XMM[4], @XMM[12]
1881 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
1882 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
1883 veor @XMM[0], @XMM[0], @XMM[ 8]
1884 vld1.64 {@XMM[12]}, [r0,:128]!
1885 veor @XMM[1], @XMM[1], @XMM[ 9]
1886 veor @XMM[8], @XMM[4], @XMM[10]
1887 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
1888 veor @XMM[9], @XMM[6], @XMM[11]
1889 veor @XMM[10], @XMM[3], @XMM[12]
1890 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
1891 vst1.8 {@XMM[10]}, [$out]!
1893 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
1897 veor @XMM[2], @XMM[2], @XMM[10]
1903 veor @XMM[3], @XMM[3], @XMM[11]
1909 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
1910 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
1911 veor @XMM[0], @XMM[0], @XMM[ 8]
1912 veor @XMM[1], @XMM[1], @XMM[ 9]
1913 veor @XMM[8], @XMM[4], @XMM[10]
1914 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
1915 veor @XMM[9], @XMM[6], @XMM[11]
1916 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
1918 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
1922 veor @XMM[1], @XMM[1], @XMM[9]
1928 veor @XMM[2], @XMM[2], @XMM[10]
1934 vld1.64 {@XMM[8]-@XMM[9]}, [r0,:128]!
1935 vld1.64 {@XMM[10]}, [r0,:128]!
1936 veor @XMM[0], @XMM[0], @XMM[ 8]
1937 veor @XMM[1], @XMM[1], @XMM[ 9]
1938 veor @XMM[8], @XMM[4], @XMM[10]
1939 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
1940 vst1.8 {@XMM[8]}, [$out]!
1942 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
1946 veor @XMM[0], @XMM[0], @XMM[8]
1952 veor @XMM[1], @XMM[1], @XMM[9]
1958 vld1.64 {@XMM[8]-@XMM[9]}, [r0,:128]!
1959 veor @XMM[0], @XMM[0], @XMM[ 8]
1960 veor @XMM[1], @XMM[1], @XMM[ 9]
1961 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
1963 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
1968 veor @XMM[0], @XMM[0], @XMM[8]
1970 vst1.8 {@XMM[0]}, [sp,:128]
1976 vld1.8 {@XMM[0]}, [sp,:128]
1977 veor @XMM[0], @XMM[0], @XMM[8]
1978 vst1.8 {@XMM[0]}, [$out]!
1981 vmov @XMM[8], @XMM[9] @ next round tweak
1998 vld1.8 {@XMM[0]}, [r6]
2000 veor @XMM[0], @XMM[0], @XMM[8]
2002 vst1.8 {@XMM[0]}, [sp,:128]
2008 vld1.8 {@XMM[0]}, [sp,:128]
2009 veor @XMM[0], @XMM[0], @XMM[8]
2010 vst1.8 {@XMM[0]}, [r6]
2028 vst1.8 {@XMM[8]}, [r1]
2079 vldmia r4, {@XMM[6]}
2080 vstmia r12, {@XMM[15]} @ save last round key
2081 veor @XMM[7], @XMM[7], @XMM[6] @ fix up round 0 key
2082 vstmia r4, {@XMM[7]}
2094 vldmia r4, {@XMM[6]}
2095 vstmia r12, {@XMM[15]} @ save last round key
2096 veor @XMM[7], @XMM[7], @XMM[6] @ fix up round 0 key
2097 vstmia r4, {@XMM[7]}
2102 vld1.8 {@XMM[8]}, [r0] @ initial tweak
2118 vshr.s64 @T[0], @XMM[8], #63
2124 vadd.u64 @XMM[$i], @XMM[$i-1], @XMM[$i-1]
2125 vst1.64 {@XMM[$i-1]}, [r0,:128]!
2127 vshr.s64 @T[1], @XMM[$i], #63
2128 veor @XMM[$i], @XMM[$i], @T[0]
2134 vld1.8 {@XMM[$i-10]}, [$inp]!
2137 veor @XMM[$i-11], @XMM[$i-11], @XMM[$i-3]
2141 vadd.u64 @XMM[8], @XMM[15], @XMM[15]
2142 vst1.64 {@XMM[15]}, [r0,:128]!
2144 veor @XMM[8], @XMM[8], @T[0]
2145 vst1.64 {@XMM[8]}, [r0,:128] @ next round tweak
2147 vld1.8 {@XMM[6]-@XMM[7]}, [$inp]!
2148 veor @XMM[5], @XMM[5], @XMM[13]
2154 veor @XMM[6], @XMM[6], @XMM[14]
2156 veor @XMM[7], @XMM[7], @XMM[15]
2161 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
2162 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
2163 veor @XMM[0], @XMM[0], @XMM[ 8]
2164 vld1.64 {@XMM[12]-@XMM[13]}, [r0,:128]!
2165 veor @XMM[1], @XMM[1], @XMM[ 9]
2166 veor @XMM[8], @XMM[6], @XMM[10]
2167 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
2168 veor @XMM[9], @XMM[4], @XMM[11]
2169 vld1.64 {@XMM[14]-@XMM[15]}, [r0,:128]!
2170 veor @XMM[10], @XMM[2], @XMM[12]
2171 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
2172 veor @XMM[11], @XMM[7], @XMM[13]
2173 veor @XMM[12], @XMM[3], @XMM[14]
2174 vst1.8 {@XMM[10]-@XMM[11]}, [$out]!
2175 veor @XMM[13], @XMM[5], @XMM[15]
2176 vst1.8 {@XMM[12]-@XMM[13]}, [$out]!
2178 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
2188 vshr.s64 @T[0], @XMM[8], #63
2194 vadd.u64 @XMM[$i], @XMM[$i-1], @XMM[$i-1]
2195 vst1.64 {@XMM[$i-1]}, [r0,:128]!
2197 vshr.s64 @T[1], @XMM[$i], #63
2198 veor @XMM[$i], @XMM[$i], @T[0]
2204 vld1.8 {@XMM[$i-10]}, [$inp]!
2209 veor @XMM[$i-11], @XMM[$i-11], @XMM[$i-3]
2214 vst1.64 {@XMM[15]}, [r0,:128] @ next round tweak
2216 vld1.8 {@XMM[6]}, [$inp]!
2217 veor @XMM[5], @XMM[5], @XMM[13]
2223 veor @XMM[6], @XMM[6], @XMM[14]
2229 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
2230 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
2231 veor @XMM[0], @XMM[0], @XMM[ 8]
2232 vld1.64 {@XMM[12]-@XMM[13]}, [r0,:128]!
2233 veor @XMM[1], @XMM[1], @XMM[ 9]
2234 veor @XMM[8], @XMM[6], @XMM[10]
2235 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
2236 veor @XMM[9], @XMM[4], @XMM[11]
2237 vld1.64 {@XMM[14]}, [r0,:128]!
2238 veor @XMM[10], @XMM[2], @XMM[12]
2239 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
2240 veor @XMM[11], @XMM[7], @XMM[13]
2241 veor @XMM[12], @XMM[3], @XMM[14]
2242 vst1.8 {@XMM[10]-@XMM[11]}, [$out]!
2243 vst1.8 {@XMM[12]}, [$out]!
2245 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
2249 vst1.64 {@XMM[14]}, [r0,:128] @ next round tweak
2251 veor @XMM[4], @XMM[4], @XMM[12]
2257 veor @XMM[5], @XMM[5], @XMM[13]
2263 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
2264 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
2265 veor @XMM[0], @XMM[0], @XMM[ 8]
2266 vld1.64 {@XMM[12]-@XMM[13]}, [r0,:128]!
2267 veor @XMM[1], @XMM[1], @XMM[ 9]
2268 veor @XMM[8], @XMM[6], @XMM[10]
2269 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
2270 veor @XMM[9], @XMM[4], @XMM[11]
2271 veor @XMM[10], @XMM[2], @XMM[12]
2272 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
2273 veor @XMM[11], @XMM[7], @XMM[13]
2274 vst1.8 {@XMM[10]-@XMM[11]}, [$out]!
2276 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
2280 veor @XMM[3], @XMM[3], @XMM[11]
2286 veor @XMM[4], @XMM[4], @XMM[12]
2292 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
2293 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
2294 veor @XMM[0], @XMM[0], @XMM[ 8]
2295 vld1.64 {@XMM[12]}, [r0,:128]!
2296 veor @XMM[1], @XMM[1], @XMM[ 9]
2297 veor @XMM[8], @XMM[6], @XMM[10]
2298 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
2299 veor @XMM[9], @XMM[4], @XMM[11]
2300 veor @XMM[10], @XMM[2], @XMM[12]
2301 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
2302 vst1.8 {@XMM[10]}, [$out]!
2304 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
2308 veor @XMM[2], @XMM[2], @XMM[10]
2314 veor @XMM[3], @XMM[3], @XMM[11]
2320 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
2321 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
2322 veor @XMM[0], @XMM[0], @XMM[ 8]
2323 veor @XMM[1], @XMM[1], @XMM[ 9]
2324 veor @XMM[8], @XMM[6], @XMM[10]
2325 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
2326 veor @XMM[9], @XMM[4], @XMM[11]
2327 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
2329 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
2333 veor @XMM[1], @XMM[1], @XMM[9]
2339 veor @XMM[2], @XMM[2], @XMM[10]
2345 vld1.64 {@XMM[8]-@XMM[9]}, [r0,:128]!
2346 vld1.64 {@XMM[10]}, [r0,:128]!
2347 veor @XMM[0], @XMM[0], @XMM[ 8]
2348 veor @XMM[1], @XMM[1], @XMM[ 9]
2349 veor @XMM[8], @XMM[6], @XMM[10]
2350 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
2351 vst1.8 {@XMM[8]}, [$out]!
2353 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
2357 veor @XMM[0], @XMM[0], @XMM[8]
2363 veor @XMM[1], @XMM[1], @XMM[9]
2369 vld1.64 {@XMM[8]-@XMM[9]}, [r0,:128]!
2370 veor @XMM[0], @XMM[0], @XMM[ 8]
2371 veor @XMM[1], @XMM[1], @XMM[ 9]
2372 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
2374 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
2379 veor @XMM[0], @XMM[0], @XMM[8]
2381 vst1.8 {@XMM[0]}, [sp,:128]
2388 vld1.8 {@XMM[0]}, [sp,:128]
2389 veor @XMM[0], @XMM[0], @XMM[8]
2390 vst1.8 {@XMM[0]}, [$out]!
2394 vmov @XMM[8], @XMM[9] @ next round tweak
2403 vshr.s64 @XMM[6], @XMM[8], #63
2404 vand @XMM[6], @XMM[6], $twmask
2405 vadd.u64 @XMM[9], @XMM[8], @XMM[8]
2406 vswp `&Dhi("@XMM[6]")`,`&Dlo("@XMM[6]")`
2407 veor @XMM[9], @XMM[9], @XMM[6]
2410 vld1.8 {@XMM[0]}, [$inp]!
2412 veor @XMM[0], @XMM[0], @XMM[9]
2414 vst1.8 {@XMM[0]}, [sp,:128]
2420 vld1.8 {@XMM[0]}, [sp,:128]
2421 veor @XMM[0], @XMM[0], @XMM[9]
2422 vst1.8 {@XMM[0]}, [$out]
2434 vld1.8 {@XMM[0]}, [r6]
2436 veor @XMM[0], @XMM[8]
2438 vst1.8 {@XMM[0]}, [sp,:128]
2443 vld1.8 {@XMM[0]}, [sp,:128]
2444 veor @XMM[0], @XMM[0], @XMM[8]
2445 vst1.8 {@XMM[0]}, [r6]
2463 vst1.8 {@XMM[8]}, [r1]