Lines Matching refs:XMM
54 my @XMM=map("q$_",(0..15));
579 veor @XMM[5], @t[5], @t[6]
580 veor @XMM[6], @t[6], @y[6] @ t[6]=y[6]
581 veor @XMM[2], @t[2], @t[6]
582 veor @XMM[7], @t[7], @y[7] @ t[7]=y[7]
584 vmov @XMM[0], @t[0]
585 vmov @XMM[1], @t[1]
586 @ vmov @XMM[2], @t[2]
587 vmov @XMM[3], @t[3]
588 vmov @XMM[4], @t[4]
589 @ vmov @XMM[5], @t[5]
590 @ vmov @XMM[6], @t[6]
591 @ vmov @XMM[7], @t[7]
728 vldmia $key!, {@XMM[9]} @ round 0 key
731 vldmia $const!, {@XMM[8]} @ .LM0ISR
732 veor @XMM[10], @XMM[0], @XMM[9] @ xor with round0 key
733 veor @XMM[11], @XMM[1], @XMM[9]
734 vtbl.8 `&Dlo(@XMM[0])`, {@XMM[10]}, `&Dlo(@XMM[8])`
735 vtbl.8 `&Dhi(@XMM[0])`, {@XMM[10]}, `&Dhi(@XMM[8])`
736 veor @XMM[12], @XMM[2], @XMM[9]
737 vtbl.8 `&Dlo(@XMM[1])`, {@XMM[11]}, `&Dlo(@XMM[8])`
738 vtbl.8 `&Dhi(@XMM[1])`, {@XMM[11]}, `&Dhi(@XMM[8])`
739 veor @XMM[13], @XMM[3], @XMM[9]
740 vtbl.8 `&Dlo(@XMM[2])`, {@XMM[12]}, `&Dlo(@XMM[8])`
741 vtbl.8 `&Dhi(@XMM[2])`, {@XMM[12]}, `&Dhi(@XMM[8])`
742 veor @XMM[14], @XMM[4], @XMM[9]
743 vtbl.8 `&Dlo(@XMM[3])`, {@XMM[13]}, `&Dlo(@XMM[8])`
744 vtbl.8 `&Dhi(@XMM[3])`, {@XMM[13]}, `&Dhi(@XMM[8])`
745 veor @XMM[15], @XMM[5], @XMM[9]
746 vtbl.8 `&Dlo(@XMM[4])`, {@XMM[14]}, `&Dlo(@XMM[8])`
747 vtbl.8 `&Dhi(@XMM[4])`, {@XMM[14]}, `&Dhi(@XMM[8])`
748 veor @XMM[10], @XMM[6], @XMM[9]
749 vtbl.8 `&Dlo(@XMM[5])`, {@XMM[15]}, `&Dlo(@XMM[8])`
750 vtbl.8 `&Dhi(@XMM[5])`, {@XMM[15]}, `&Dhi(@XMM[8])`
751 veor @XMM[11], @XMM[7], @XMM[9]
752 vtbl.8 `&Dlo(@XMM[6])`, {@XMM[10]}, `&Dlo(@XMM[8])`
753 vtbl.8 `&Dhi(@XMM[6])`, {@XMM[10]}, `&Dhi(@XMM[8])`
754 vtbl.8 `&Dlo(@XMM[7])`, {@XMM[11]}, `&Dlo(@XMM[8])`
755 vtbl.8 `&Dhi(@XMM[7])`, {@XMM[11]}, `&Dhi(@XMM[8])`
757 &bitslice (@XMM[0..7, 8..11]);
764 &ShiftRows (@XMM[0..7, 8..12]);
766 &InvSbox (@XMM[0..7, 8..15]);
771 &InvMixColumns (@XMM[0,1,6,4,2,7,3,5, 8..15]);
773 vldmia $const, {@XMM[12]} @ .LISR
777 vldmia $const, {@XMM[12]} @ .LISRM0
782 &bitslice (@XMM[0,1,6,4,2,7,3,5, 8..11]);
784 vldmia $key, {@XMM[8]} @ last round key
785 veor @XMM[6], @XMM[6], @XMM[8]
786 veor @XMM[4], @XMM[4], @XMM[8]
787 veor @XMM[2], @XMM[2], @XMM[8]
788 veor @XMM[7], @XMM[7], @XMM[8]
789 veor @XMM[3], @XMM[3], @XMM[8]
790 veor @XMM[5], @XMM[5], @XMM[8]
791 veor @XMM[0], @XMM[0], @XMM[8]
792 veor @XMM[1], @XMM[1], @XMM[8]
823 vldmia $key!, {@XMM[9]} @ round 0 key
826 vldmia $const!, {@XMM[8]} @ .LM0SR
828 veor @XMM[10], @XMM[0], @XMM[9] @ xor with round0 key
829 veor @XMM[11], @XMM[1], @XMM[9]
830 vtbl.8 `&Dlo(@XMM[0])`, {@XMM[10]}, `&Dlo(@XMM[8])`
831 vtbl.8 `&Dhi(@XMM[0])`, {@XMM[10]}, `&Dhi(@XMM[8])`
832 veor @XMM[12], @XMM[2], @XMM[9]
833 vtbl.8 `&Dlo(@XMM[1])`, {@XMM[11]}, `&Dlo(@XMM[8])`
834 vtbl.8 `&Dhi(@XMM[1])`, {@XMM[11]}, `&Dhi(@XMM[8])`
835 veor @XMM[13], @XMM[3], @XMM[9]
836 vtbl.8 `&Dlo(@XMM[2])`, {@XMM[12]}, `&Dlo(@XMM[8])`
837 vtbl.8 `&Dhi(@XMM[2])`, {@XMM[12]}, `&Dhi(@XMM[8])`
838 veor @XMM[14], @XMM[4], @XMM[9]
839 vtbl.8 `&Dlo(@XMM[3])`, {@XMM[13]}, `&Dlo(@XMM[8])`
840 vtbl.8 `&Dhi(@XMM[3])`, {@XMM[13]}, `&Dhi(@XMM[8])`
841 veor @XMM[15], @XMM[5], @XMM[9]
842 vtbl.8 `&Dlo(@XMM[4])`, {@XMM[14]}, `&Dlo(@XMM[8])`
843 vtbl.8 `&Dhi(@XMM[4])`, {@XMM[14]}, `&Dhi(@XMM[8])`
844 veor @XMM[10], @XMM[6], @XMM[9]
845 vtbl.8 `&Dlo(@XMM[5])`, {@XMM[15]}, `&Dlo(@XMM[8])`
846 vtbl.8 `&Dhi(@XMM[5])`, {@XMM[15]}, `&Dhi(@XMM[8])`
847 veor @XMM[11], @XMM[7], @XMM[9]
848 vtbl.8 `&Dlo(@XMM[6])`, {@XMM[10]}, `&Dlo(@XMM[8])`
849 vtbl.8 `&Dhi(@XMM[6])`, {@XMM[10]}, `&Dhi(@XMM[8])`
850 vtbl.8 `&Dlo(@XMM[7])`, {@XMM[11]}, `&Dlo(@XMM[8])`
851 vtbl.8 `&Dhi(@XMM[7])`, {@XMM[11]}, `&Dhi(@XMM[8])`
854 &bitslice (@XMM[0..7, 8..11]);
861 &ShiftRows (@XMM[0..7, 8..12]);
863 &Sbox (@XMM[0..7, 8..15]);
868 &MixColumns (@XMM[0,1,4,6,3,7,2,5, 8..15]);
870 vldmia $const, {@XMM[12]} @ .LSR
874 vldmia $const, {@XMM[12]} @ .LSRM0
880 &bitslice (@XMM[0,1,4,6,3,7,2,5, 8..11]);
882 vldmia $key, {@XMM[8]} @ last round key
883 veor @XMM[4], @XMM[4], @XMM[8]
884 veor @XMM[6], @XMM[6], @XMM[8]
885 veor @XMM[3], @XMM[3], @XMM[8]
886 veor @XMM[7], @XMM[7], @XMM[8]
887 veor @XMM[2], @XMM[2], @XMM[8]
888 veor @XMM[5], @XMM[5], @XMM[8]
889 veor @XMM[0], @XMM[0], @XMM[8]
890 veor @XMM[1], @XMM[1], @XMM[8]
927 vld1.8 {@XMM[7]}, [$inp]! @ load round 0 key
929 vld1.8 {@XMM[15]}, [$inp]! @ load round 1 key
931 vmov.i8 @XMM[8], #0x01 @ bit masks
932 vmov.i8 @XMM[9], #0x02
933 vmov.i8 @XMM[10], #0x04
934 vmov.i8 @XMM[11], #0x08
935 vmov.i8 @XMM[12], #0x10
936 vmov.i8 @XMM[13], #0x20
937 vldmia $const, {@XMM[14]} @ .LM0
940 vrev32.8 @XMM[7], @XMM[7]
941 vrev32.8 @XMM[15], @XMM[15]
944 vstmia $out!, {@XMM[7]} @ save round 0 key
949 vtbl.8 `&Dlo(@XMM[7])`,{@XMM[15]},`&Dlo(@XMM[14])`
950 vtbl.8 `&Dhi(@XMM[7])`,{@XMM[15]},`&Dhi(@XMM[14])`
951 vmov.i8 @XMM[6], #0x40
952 vmov.i8 @XMM[15], #0x80
954 vtst.8 @XMM[0], @XMM[7], @XMM[8]
955 vtst.8 @XMM[1], @XMM[7], @XMM[9]
956 vtst.8 @XMM[2], @XMM[7], @XMM[10]
957 vtst.8 @XMM[3], @XMM[7], @XMM[11]
958 vtst.8 @XMM[4], @XMM[7], @XMM[12]
959 vtst.8 @XMM[5], @XMM[7], @XMM[13]
960 vtst.8 @XMM[6], @XMM[7], @XMM[6]
961 vtst.8 @XMM[7], @XMM[7], @XMM[15]
962 vld1.8 {@XMM[15]}, [$inp]! @ load next round key
963 vmvn @XMM[0], @XMM[0] @ "pnot"
964 vmvn @XMM[1], @XMM[1]
965 vmvn @XMM[5], @XMM[5]
966 vmvn @XMM[6], @XMM[6]
968 vrev32.8 @XMM[15], @XMM[15]
971 vstmia $out!,{@XMM[0]-@XMM[7]} @ write bit-sliced round key
974 vmov.i8 @XMM[7],#0x63 @ compose .L63
995 veor @XMM[7],@XMM[7],@XMM[15] @ fix up last round key
996 vstmia r12, {@XMM[7]} @ save last round key
1009 vld1.8 {@XMM[0]-@XMM[1]}, [$inp]! @ load input
1010 vld1.8 {@XMM[2]-@XMM[3]}, [$inp]!
1012 vld1.8 {@XMM[4]-@XMM[5]}, [$inp]!
1014 vld1.8 {@XMM[6]-@XMM[7]}, [$inp]!
1018 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1019 vst1.8 {@XMM[4]}, [$out]!
1020 vst1.8 {@XMM[6]}, [$out]!
1021 vst1.8 {@XMM[3]}, [$out]!
1022 vst1.8 {@XMM[7]}, [$out]!
1023 vst1.8 {@XMM[2]}, [$out]!
1025 vst1.8 {@XMM[5]}, [$out]!
1043 vldmia $out, {@XMM[6]}
1044 vstmia r12, {@XMM[15]} @ save last round key
1045 veor @XMM[7], @XMM[7], @XMM[6] @ fix up round 0 key
1046 vstmia $out, {@XMM[7]}
1059 vld1.8 {@XMM[0]-@XMM[1]}, [$inp]! @ load input
1060 vld1.8 {@XMM[2]-@XMM[3]}, [$inp]!
1062 vld1.8 {@XMM[4]-@XMM[5]}, [$inp]!
1064 vld1.8 {@XMM[6]-@XMM[7]}, [$inp]!
1068 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1069 vst1.8 {@XMM[6]}, [$out]!
1070 vst1.8 {@XMM[4]}, [$out]!
1071 vst1.8 {@XMM[2]}, [$out]!
1072 vst1.8 {@XMM[7]}, [$out]!
1073 vst1.8 {@XMM[3]}, [$out]!
1075 vst1.8 {@XMM[5]}, [$out]!
1127 vldmia $keysched, {@XMM[6]}
1128 vstmia r12, {@XMM[15]} @ save last round key
1129 veor @XMM[7], @XMM[7], @XMM[6] @ fix up round 0 key
1130 vstmia $keysched, {@XMM[7]}
1143 vldmia r4, {@XMM[6]}
1144 vstmia r12, {@XMM[15]} @ save last round key
1145 veor @XMM[7], @XMM[7], @XMM[6] @ fix up round 0 key
1146 vstmia r4, {@XMM[7]}
1152 vld1.8 {@XMM[15]}, [$ivp] @ load IV
1160 vld1.8 {@XMM[0]-@XMM[1]}, [$inp]! @ load input
1161 vld1.8 {@XMM[2]-@XMM[3]}, [$inp]!
1167 vld1.8 {@XMM[4]-@XMM[5]}, [$inp]!
1169 vld1.8 {@XMM[6]-@XMM[7]}, [$inp]
1171 vstmia $fp, {@XMM[15]} @ put aside IV
1175 vldmia $fp, {@XMM[14]} @ reload IV
1176 vld1.8 {@XMM[8]-@XMM[9]}, [$inp]! @ reload input
1177 veor @XMM[0], @XMM[0], @XMM[14] @ ^= IV
1178 vld1.8 {@XMM[10]-@XMM[11]}, [$inp]!
1179 veor @XMM[1], @XMM[1], @XMM[8]
1180 veor @XMM[6], @XMM[6], @XMM[9]
1181 vld1.8 {@XMM[12]-@XMM[13]}, [$inp]!
1182 veor @XMM[4], @XMM[4], @XMM[10]
1183 veor @XMM[2], @XMM[2], @XMM[11]
1184 vld1.8 {@XMM[14]-@XMM[15]}, [$inp]!
1185 veor @XMM[7], @XMM[7], @XMM[12]
1186 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1187 veor @XMM[3], @XMM[3], @XMM[13]
1188 vst1.8 {@XMM[6]}, [$out]!
1189 veor @XMM[5], @XMM[5], @XMM[14]
1190 vst1.8 {@XMM[4]}, [$out]!
1191 vst1.8 {@XMM[2]}, [$out]!
1192 vst1.8 {@XMM[7]}, [$out]!
1193 vst1.8 {@XMM[3]}, [$out]!
1194 vst1.8 {@XMM[5]}, [$out]!
1202 vld1.8 {@XMM[0]}, [$inp]! @ load input
1205 vld1.8 {@XMM[1]}, [$inp]!
1212 vstmia $fp, {@XMM[15]} @ put aside IV
1214 vld1.8 {@XMM[2]}, [$inp]!
1217 vld1.8 {@XMM[3]}, [$inp]!
1219 vld1.8 {@XMM[4]}, [$inp]!
1222 vld1.8 {@XMM[5]}, [$inp]!
1224 vld1.8 {@XMM[6]}, [$inp]!
1229 vldmia $fp, {@XMM[14]} @ reload IV
1230 vld1.8 {@XMM[8]-@XMM[9]}, [$inp]! @ reload input
1231 veor @XMM[0], @XMM[0], @XMM[14] @ ^= IV
1232 vld1.8 {@XMM[10]-@XMM[11]}, [$inp]!
1233 veor @XMM[1], @XMM[1], @XMM[8]
1234 veor @XMM[6], @XMM[6], @XMM[9]
1235 vld1.8 {@XMM[12]-@XMM[13]}, [$inp]!
1236 veor @XMM[4], @XMM[4], @XMM[10]
1237 veor @XMM[2], @XMM[2], @XMM[11]
1238 vld1.8 {@XMM[15]}, [$inp]!
1239 veor @XMM[7], @XMM[7], @XMM[12]
1240 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1241 veor @XMM[3], @XMM[3], @XMM[13]
1242 vst1.8 {@XMM[6]}, [$out]!
1243 vst1.8 {@XMM[4]}, [$out]!
1244 vst1.8 {@XMM[2]}, [$out]!
1245 vst1.8 {@XMM[7]}, [$out]!
1246 vst1.8 {@XMM[3]}, [$out]!
1252 vldmia $fp,{@XMM[14]} @ reload IV
1253 vld1.8 {@XMM[8]-@XMM[9]}, [$inp]! @ reload input
1254 veor @XMM[0], @XMM[0], @XMM[14] @ ^= IV
1255 vld1.8 {@XMM[10]-@XMM[11]}, [$inp]!
1256 veor @XMM[1], @XMM[1], @XMM[8]
1257 veor @XMM[6], @XMM[6], @XMM[9]
1258 vld1.8 {@XMM[12]}, [$inp]!
1259 veor @XMM[4], @XMM[4], @XMM[10]
1260 veor @XMM[2], @XMM[2], @XMM[11]
1261 vld1.8 {@XMM[15]}, [$inp]!
1262 veor @XMM[7], @XMM[7], @XMM[12]
1263 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1264 vst1.8 {@XMM[6]}, [$out]!
1265 vst1.8 {@XMM[4]}, [$out]!
1266 vst1.8 {@XMM[2]}, [$out]!
1267 vst1.8 {@XMM[7]}, [$out]!
1273 vldmia $fp, {@XMM[14]} @ reload IV
1274 vld1.8 {@XMM[8]-@XMM[9]}, [$inp]! @ reload input
1275 veor @XMM[0], @XMM[0], @XMM[14] @ ^= IV
1276 vld1.8 {@XMM[10]-@XMM[11]}, [$inp]!
1277 veor @XMM[1], @XMM[1], @XMM[8]
1278 veor @XMM[6], @XMM[6], @XMM[9]
1279 vld1.8 {@XMM[15]}, [$inp]!
1280 veor @XMM[4], @XMM[4], @XMM[10]
1281 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1282 veor @XMM[2], @XMM[2], @XMM[11]
1283 vst1.8 {@XMM[6]}, [$out]!
1284 vst1.8 {@XMM[4]}, [$out]!
1285 vst1.8 {@XMM[2]}, [$out]!
1291 vldmia $fp, {@XMM[14]} @ reload IV
1292 vld1.8 {@XMM[8]-@XMM[9]}, [$inp]! @ reload input
1293 veor @XMM[0], @XMM[0], @XMM[14] @ ^= IV
1294 vld1.8 {@XMM[10]}, [$inp]!
1295 veor @XMM[1], @XMM[1], @XMM[8]
1296 veor @XMM[6], @XMM[6], @XMM[9]
1297 vld1.8 {@XMM[15]}, [$inp]!
1298 veor @XMM[4], @XMM[4], @XMM[10]
1299 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1300 vst1.8 {@XMM[6]}, [$out]!
1301 vst1.8 {@XMM[4]}, [$out]!
1307 vldmia $fp, {@XMM[14]} @ reload IV
1308 vld1.8 {@XMM[8]-@XMM[9]}, [$inp]! @ reload input
1309 veor @XMM[0], @XMM[0], @XMM[14] @ ^= IV
1310 vld1.8 {@XMM[15]}, [$inp]!
1311 veor @XMM[1], @XMM[1], @XMM[8]
1312 veor @XMM[6], @XMM[6], @XMM[9]
1313 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1314 vst1.8 {@XMM[6]}, [$out]!
1320 vldmia $fp, {@XMM[14]} @ reload IV
1321 vld1.8 {@XMM[8]}, [$inp]! @ reload input
1322 veor @XMM[0], @XMM[0], @XMM[14] @ ^= IV
1323 vld1.8 {@XMM[15]}, [$inp]! @ reload input
1324 veor @XMM[1], @XMM[1], @XMM[8]
1325 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1333 vmov @XMM[4],@XMM[15] @ just in case ensure that IV
1334 vmov @XMM[5],@XMM[0] @ and input are preserved
1336 vld1.8 {@XMM[0]}, [$fp,:64] @ load result
1337 veor @XMM[0], @XMM[0], @XMM[4] @ ^= IV
1338 vmov @XMM[15], @XMM[5] @ @XMM[5] holds input
1339 vst1.8 {@XMM[0]}, [$rounds] @ write output
1353 vst1.8 {@XMM[15]}, [$ivp] @ return IV
1391 veor @XMM[7],@XMM[7],@XMM[15] @ fix up last round key
1392 vstmia r12, {@XMM[7]} @ save last round key
1394 vld1.8 {@XMM[0]}, [$ctr] @ load counter
1396 vldmia $keysched, {@XMM[4]} @ load round0 key
1408 veor @XMM[7],@XMM[7],@XMM[15] @ fix up last round key
1409 vstmia r12, {@XMM[7]} @ save last round key
1413 vld1.8 {@XMM[0]}, [$ctr] @ load counter
1415 vldmia r12, {@XMM[4]} @ load round0 key
1419 vmov.i32 @XMM[8],#1 @ compose 1<<96
1420 veor @XMM[9],@XMM[9],@XMM[9]
1421 vrev32.8 @XMM[0],@XMM[0]
1422 vext.8 @XMM[8],@XMM[9],@XMM[8],#4
1423 vrev32.8 @XMM[4],@XMM[4]
1424 vadd.u32 @XMM[9],@XMM[8],@XMM[8] @ compose 2<<96
1425 vstmia $keysched, {@XMM[4]} @ save adjusted round0 key
1430 vadd.u32 @XMM[10], @XMM[8], @XMM[9] @ compose 3<<96
1431 vadd.u32 @XMM[1], @XMM[0], @XMM[8] @ +1
1432 vadd.u32 @XMM[2], @XMM[0], @XMM[9] @ +2
1433 vadd.u32 @XMM[3], @XMM[0], @XMM[10] @ +3
1434 vadd.u32 @XMM[4], @XMM[1], @XMM[10]
1435 vadd.u32 @XMM[5], @XMM[2], @XMM[10]
1436 vadd.u32 @XMM[6], @XMM[3], @XMM[10]
1437 vadd.u32 @XMM[7], @XMM[4], @XMM[10]
1438 vadd.u32 @XMM[10], @XMM[5], @XMM[10] @ next counter
1443 vldmia $keysched, {@XMM[9]} @ load round0 key
1449 vldmia $ctr, {@XMM[8]} @ .LREVM0SR
1451 vstmia $fp, {@XMM[10]} @ save next counter
1459 vld1.8 {@XMM[8]-@XMM[9]}, [$inp]! @ load input
1460 vld1.8 {@XMM[10]-@XMM[11]}, [$inp]!
1461 veor @XMM[0], @XMM[8]
1462 veor @XMM[1], @XMM[9]
1463 vld1.8 {@XMM[12]-@XMM[13]}, [$inp]!
1464 veor @XMM[4], @XMM[10]
1465 veor @XMM[6], @XMM[11]
1466 vld1.8 {@XMM[14]-@XMM[15]}, [$inp]!
1467 veor @XMM[3], @XMM[12]
1468 vst1.8 {@XMM[0]-@XMM[1]}, [$out]! @ write output
1469 veor @XMM[7], @XMM[13]
1470 veor @XMM[2], @XMM[14]
1471 vst1.8 {@XMM[4]}, [$out]!
1472 veor @XMM[5], @XMM[15]
1473 vst1.8 {@XMM[6]}, [$out]!
1474 vmov.i32 @XMM[8], #1 @ compose 1<<96
1475 vst1.8 {@XMM[3]}, [$out]!
1476 veor @XMM[9], @XMM[9], @XMM[9]
1477 vst1.8 {@XMM[7]}, [$out]!
1478 vext.8 @XMM[8], @XMM[9], @XMM[8], #4
1479 vst1.8 {@XMM[2]}, [$out]!
1480 vadd.u32 @XMM[9],@XMM[8],@XMM[8] @ compose 2<<96
1481 vst1.8 {@XMM[5]}, [$out]!
1482 vldmia $fp, {@XMM[0]} @ load counter
1490 vld1.8 {@XMM[8]}, [$inp]! @ load input
1491 veor @XMM[0], @XMM[8]
1492 vst1.8 {@XMM[0]}, [$out]! @ write output
1495 vld1.8 {@XMM[9]}, [$inp]!
1496 veor @XMM[1], @XMM[9]
1497 vst1.8 {@XMM[1]}, [$out]!
1499 vld1.8 {@XMM[10]}, [$inp]!
1500 veor @XMM[4], @XMM[10]
1501 vst1.8 {@XMM[4]}, [$out]!
1504 vld1.8 {@XMM[11]}, [$inp]!
1505 veor @XMM[6], @XMM[11]
1506 vst1.8 {@XMM[6]}, [$out]!
1508 vld1.8 {@XMM[12]}, [$inp]!
1509 veor @XMM[3], @XMM[12]
1510 vst1.8 {@XMM[3]}, [$out]!
1513 vld1.8 {@XMM[13]}, [$inp]!
1514 veor @XMM[7], @XMM[13]
1515 vst1.8 {@XMM[7]}, [$out]!
1517 vld1.8 {@XMM[14]}, [$inp]
1518 veor @XMM[2], @XMM[14]
1519 vst1.8 {@XMM[2]}, [$out]!
1548 vld1.8 {@XMM[1]}, [ip] @ load whole counter value
1553 vst1.8 {@XMM[1]}, [sp,:64] @ copy counter value
1563 vld1.8 {@XMM[0]}, [r4]! @ load input
1564 vld1.8 {@XMM[1]}, [sp,:64] @ load encrypted counter
1572 veor @XMM[0],@XMM[0],@XMM[1]
1573 vst1.8 {@XMM[0]}, [r5]! @ store output
1593 my $twmask=@XMM[5];
1594 my @T=@XMM[6..7];
1640 veor @XMM[7], @XMM[7], @XMM[15] @ fix up last round key
1641 vstmia r12, {@XMM[7]} @ save last round key
1652 veor @XMM[7], @XMM[7], @XMM[15] @ fix up last round key
1653 vstmia r12, {@XMM[7]}
1659 vld1.8 {@XMM[8]}, [r0] @ initial tweak
1669 vshr.s64 @T[0], @XMM[8], #63
1675 vadd.u64 @XMM[$i], @XMM[$i-1], @XMM[$i-1]
1676 vst1.64 {@XMM[$i-1]}, [r0,:128]!
1678 vshr.s64 @T[1], @XMM[$i], #63
1679 veor @XMM[$i], @XMM[$i], @T[0]
1685 vld1.8 {@XMM[$i-10]}, [$inp]!
1688 veor @XMM[$i-11], @XMM[$i-11], @XMM[$i-3]
1692 vadd.u64 @XMM[8], @XMM[15], @XMM[15]
1693 vst1.64 {@XMM[15]}, [r0,:128]!
1695 veor @XMM[8], @XMM[8], @T[0]
1696 vst1.64 {@XMM[8]}, [r0,:128] @ next round tweak
1698 vld1.8 {@XMM[6]-@XMM[7]}, [$inp]!
1699 veor @XMM[5], @XMM[5], @XMM[13]
1705 veor @XMM[6], @XMM[6], @XMM[14]
1707 veor @XMM[7], @XMM[7], @XMM[15]
1712 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
1713 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
1714 veor @XMM[0], @XMM[0], @XMM[ 8]
1715 vld1.64 {@XMM[12]-@XMM[13]}, [r0,:128]!
1716 veor @XMM[1], @XMM[1], @XMM[ 9]
1717 veor @XMM[8], @XMM[4], @XMM[10]
1718 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
1719 veor @XMM[9], @XMM[6], @XMM[11]
1720 vld1.64 {@XMM[14]-@XMM[15]}, [r0,:128]!
1721 veor @XMM[10], @XMM[3], @XMM[12]
1722 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
1723 veor @XMM[11], @XMM[7], @XMM[13]
1724 veor @XMM[12], @XMM[2], @XMM[14]
1725 vst1.8 {@XMM[10]-@XMM[11]}, [$out]!
1726 veor @XMM[13], @XMM[5], @XMM[15]
1727 vst1.8 {@XMM[12]-@XMM[13]}, [$out]!
1729 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
1739 vshr.s64 @T[0], @XMM[8], #63
1745 vadd.u64 @XMM[$i], @XMM[$i-1], @XMM[$i-1]
1746 vst1.64 {@XMM[$i-1]}, [r0,:128]!
1748 vshr.s64 @T[1], @XMM[$i], #63
1749 veor @XMM[$i], @XMM[$i], @T[0]
1755 vld1.8 {@XMM[$i-10]}, [$inp]!
1760 veor @XMM[$i-11], @XMM[$i-11], @XMM[$i-3]
1765 vst1.64 {@XMM[15]}, [r0,:128] @ next round tweak
1767 vld1.8 {@XMM[6]}, [$inp]!
1768 veor @XMM[5], @XMM[5], @XMM[13]
1774 veor @XMM[6], @XMM[6], @XMM[14]
1780 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
1781 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
1782 veor @XMM[0], @XMM[0], @XMM[ 8]
1783 vld1.64 {@XMM[12]-@XMM[13]}, [r0,:128]!
1784 veor @XMM[1], @XMM[1], @XMM[ 9]
1785 veor @XMM[8], @XMM[4], @XMM[10]
1786 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
1787 veor @XMM[9], @XMM[6], @XMM[11]
1788 vld1.64 {@XMM[14]}, [r0,:128]!
1789 veor @XMM[10], @XMM[3], @XMM[12]
1790 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
1791 veor @XMM[11], @XMM[7], @XMM[13]
1792 veor @XMM[12], @XMM[2], @XMM[14]
1793 vst1.8 {@XMM[10]-@XMM[11]}, [$out]!
1794 vst1.8 {@XMM[12]}, [$out]!
1796 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
1800 vst1.64 {@XMM[14]}, [r0,:128] @ next round tweak
1802 veor @XMM[4], @XMM[4], @XMM[12]
1808 veor @XMM[5], @XMM[5], @XMM[13]
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 veor @XMM[10], @XMM[3], @XMM[12]
1823 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
1824 veor @XMM[11], @XMM[7], @XMM[13]
1825 vst1.8 {@XMM[10]-@XMM[11]}, [$out]!
1827 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
1837 vst1.64 {@XMM[13]}, [r0,:128] @ next round tweak
1839 veor @XMM[3], @XMM[3], @XMM[11]
1845 veor @XMM[4], @XMM[4], @XMM[12]
1851 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
1852 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
1853 veor @XMM[0], @XMM[0], @XMM[ 8]
1854 vld1.64 {@XMM[12]}, [r0,:128]!
1855 veor @XMM[1], @XMM[1], @XMM[ 9]
1856 veor @XMM[8], @XMM[4], @XMM[10]
1857 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
1858 veor @XMM[9], @XMM[6], @XMM[11]
1859 veor @XMM[10], @XMM[3], @XMM[12]
1860 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
1861 vst1.8 {@XMM[10]}, [$out]!
1863 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
1867 vst1.64 {@XMM[12]}, [r0,:128] @ next round tweak
1869 veor @XMM[2], @XMM[2], @XMM[10]
1875 veor @XMM[3], @XMM[3], @XMM[11]
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 veor @XMM[1], @XMM[1], @XMM[ 9]
1885 veor @XMM[8], @XMM[4], @XMM[10]
1886 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
1887 veor @XMM[9], @XMM[6], @XMM[11]
1888 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
1890 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
1894 vst1.64 {@XMM[11]}, [r0,:128] @ next round tweak
1896 veor @XMM[1], @XMM[1], @XMM[9]
1902 veor @XMM[2], @XMM[2], @XMM[10]
1908 vld1.64 {@XMM[8]-@XMM[9]}, [r0,:128]!
1909 vld1.64 {@XMM[10]}, [r0,:128]!
1910 veor @XMM[0], @XMM[0], @XMM[ 8]
1911 veor @XMM[1], @XMM[1], @XMM[ 9]
1912 veor @XMM[8], @XMM[4], @XMM[10]
1913 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
1914 vst1.8 {@XMM[8]}, [$out]!
1916 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
1920 vst1.64 {@XMM[10]}, [r0,:128] @ next round tweak
1922 veor @XMM[0], @XMM[0], @XMM[8]
1928 veor @XMM[1], @XMM[1], @XMM[9]
1934 vld1.64 {@XMM[8]-@XMM[9]}, [r0,:128]!
1935 veor @XMM[0], @XMM[0], @XMM[ 8]
1936 veor @XMM[1], @XMM[1], @XMM[ 9]
1937 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
1939 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
1944 veor @XMM[0], @XMM[8]
1946 vst1.8 {@XMM[0]}, [sp,:128]
1952 vld1.8 {@XMM[0]}, [sp,:128]
1953 veor @XMM[0], @XMM[0], @XMM[8]
1954 vst1.8 {@XMM[0]}, [$out]!
1957 vmov @XMM[8], @XMM[9] @ next round tweak
1974 vld1.8 {@XMM[0]}, [r6]
1976 veor @XMM[0], @XMM[0], @XMM[8]
1978 vst1.8 {@XMM[0]}, [sp,:128]
1984 vld1.8 {@XMM[0]}, [sp,:128]
1985 veor @XMM[0], @XMM[0], @XMM[8]
1986 vst1.8 {@XMM[0]}, [r6]
2004 vst1.8 {@XMM[8]}, [r1]
2055 vldmia r4, {@XMM[6]}
2056 vstmia r12, {@XMM[15]} @ save last round key
2057 veor @XMM[7], @XMM[7], @XMM[6] @ fix up round 0 key
2058 vstmia r4, {@XMM[7]}
2070 vldmia r4, {@XMM[6]}
2071 vstmia r12, {@XMM[15]} @ save last round key
2072 veor @XMM[7], @XMM[7], @XMM[6] @ fix up round 0 key
2073 vstmia r4, {@XMM[7]}
2078 vld1.8 {@XMM[8]}, [r0] @ initial tweak
2094 vshr.s64 @T[0], @XMM[8], #63
2100 vadd.u64 @XMM[$i], @XMM[$i-1], @XMM[$i-1]
2101 vst1.64 {@XMM[$i-1]}, [r0,:128]!
2103 vshr.s64 @T[1], @XMM[$i], #63
2104 veor @XMM[$i], @XMM[$i], @T[0]
2110 vld1.8 {@XMM[$i-10]}, [$inp]!
2113 veor @XMM[$i-11], @XMM[$i-11], @XMM[$i-3]
2117 vadd.u64 @XMM[8], @XMM[15], @XMM[15]
2118 vst1.64 {@XMM[15]}, [r0,:128]!
2120 veor @XMM[8], @XMM[8], @T[0]
2121 vst1.64 {@XMM[8]}, [r0,:128] @ next round tweak
2123 vld1.8 {@XMM[6]-@XMM[7]}, [$inp]!
2124 veor @XMM[5], @XMM[5], @XMM[13]
2130 veor @XMM[6], @XMM[6], @XMM[14]
2132 veor @XMM[7], @XMM[7], @XMM[15]
2137 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
2138 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
2139 veor @XMM[0], @XMM[0], @XMM[ 8]
2140 vld1.64 {@XMM[12]-@XMM[13]}, [r0,:128]!
2141 veor @XMM[1], @XMM[1], @XMM[ 9]
2142 veor @XMM[8], @XMM[6], @XMM[10]
2143 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
2144 veor @XMM[9], @XMM[4], @XMM[11]
2145 vld1.64 {@XMM[14]-@XMM[15]}, [r0,:128]!
2146 veor @XMM[10], @XMM[2], @XMM[12]
2147 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
2148 veor @XMM[11], @XMM[7], @XMM[13]
2149 veor @XMM[12], @XMM[3], @XMM[14]
2150 vst1.8 {@XMM[10]-@XMM[11]}, [$out]!
2151 veor @XMM[13], @XMM[5], @XMM[15]
2152 vst1.8 {@XMM[12]-@XMM[13]}, [$out]!
2154 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
2164 vshr.s64 @T[0], @XMM[8], #63
2170 vadd.u64 @XMM[$i], @XMM[$i-1], @XMM[$i-1]
2171 vst1.64 {@XMM[$i-1]}, [r0,:128]!
2173 vshr.s64 @T[1], @XMM[$i], #63
2174 veor @XMM[$i], @XMM[$i], @T[0]
2180 vld1.8 {@XMM[$i-10]}, [$inp]!
2185 veor @XMM[$i-11], @XMM[$i-11], @XMM[$i-3]
2190 vst1.64 {@XMM[15]}, [r0,:128] @ next round tweak
2192 vld1.8 {@XMM[6]}, [$inp]!
2193 veor @XMM[5], @XMM[5], @XMM[13]
2199 veor @XMM[6], @XMM[6], @XMM[14]
2205 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
2206 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
2207 veor @XMM[0], @XMM[0], @XMM[ 8]
2208 vld1.64 {@XMM[12]-@XMM[13]}, [r0,:128]!
2209 veor @XMM[1], @XMM[1], @XMM[ 9]
2210 veor @XMM[8], @XMM[6], @XMM[10]
2211 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
2212 veor @XMM[9], @XMM[4], @XMM[11]
2213 vld1.64 {@XMM[14]}, [r0,:128]!
2214 veor @XMM[10], @XMM[2], @XMM[12]
2215 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
2216 veor @XMM[11], @XMM[7], @XMM[13]
2217 veor @XMM[12], @XMM[3], @XMM[14]
2218 vst1.8 {@XMM[10]-@XMM[11]}, [$out]!
2219 vst1.8 {@XMM[12]}, [$out]!
2221 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
2225 vst1.64 {@XMM[14]}, [r0,:128] @ next round tweak
2227 veor @XMM[4], @XMM[4], @XMM[12]
2233 veor @XMM[5], @XMM[5], @XMM[13]
2239 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
2240 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
2241 veor @XMM[0], @XMM[0], @XMM[ 8]
2242 vld1.64 {@XMM[12]-@XMM[13]}, [r0,:128]!
2243 veor @XMM[1], @XMM[1], @XMM[ 9]
2244 veor @XMM[8], @XMM[6], @XMM[10]
2245 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
2246 veor @XMM[9], @XMM[4], @XMM[11]
2247 veor @XMM[10], @XMM[2], @XMM[12]
2248 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
2249 veor @XMM[11], @XMM[7], @XMM[13]
2250 vst1.8 {@XMM[10]-@XMM[11]}, [$out]!
2252 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
2256 vst1.64 {@XMM[13]}, [r0,:128] @ next round tweak
2258 veor @XMM[3], @XMM[3], @XMM[11]
2264 veor @XMM[4], @XMM[4], @XMM[12]
2270 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
2271 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
2272 veor @XMM[0], @XMM[0], @XMM[ 8]
2273 vld1.64 {@XMM[12]}, [r0,:128]!
2274 veor @XMM[1], @XMM[1], @XMM[ 9]
2275 veor @XMM[8], @XMM[6], @XMM[10]
2276 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
2277 veor @XMM[9], @XMM[4], @XMM[11]
2278 veor @XMM[10], @XMM[2], @XMM[12]
2279 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
2280 vst1.8 {@XMM[10]}, [$out]!
2282 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
2286 vst1.64 {@XMM[12]}, [r0,:128] @ next round tweak
2288 veor @XMM[2], @XMM[2], @XMM[10]
2294 veor @XMM[3], @XMM[3], @XMM[11]
2300 vld1.64 {@XMM[ 8]-@XMM[ 9]}, [r0,:128]!
2301 vld1.64 {@XMM[10]-@XMM[11]}, [r0,:128]!
2302 veor @XMM[0], @XMM[0], @XMM[ 8]
2303 veor @XMM[1], @XMM[1], @XMM[ 9]
2304 veor @XMM[8], @XMM[6], @XMM[10]
2305 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
2306 veor @XMM[9], @XMM[4], @XMM[11]
2307 vst1.8 {@XMM[8]-@XMM[9]}, [$out]!
2309 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
2313 vst1.64 {@XMM[11]}, [r0,:128] @ next round tweak
2315 veor @XMM[1], @XMM[1], @XMM[9]
2321 veor @XMM[2], @XMM[2], @XMM[10]
2327 vld1.64 {@XMM[8]-@XMM[9]}, [r0,:128]!
2328 vld1.64 {@XMM[10]}, [r0,:128]!
2329 veor @XMM[0], @XMM[0], @XMM[ 8]
2330 veor @XMM[1], @XMM[1], @XMM[ 9]
2331 veor @XMM[8], @XMM[6], @XMM[10]
2332 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
2333 vst1.8 {@XMM[8]}, [$out]!
2335 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
2339 vst1.64 {@XMM[10]}, [r0,:128] @ next round tweak
2341 veor @XMM[0], @XMM[0], @XMM[8]
2347 veor @XMM[1], @XMM[1], @XMM[9]
2353 vld1.64 {@XMM[8]-@XMM[9]}, [r0,:128]!
2354 veor @XMM[0], @XMM[0], @XMM[ 8]
2355 veor @XMM[1], @XMM[1], @XMM[ 9]
2356 vst1.8 {@XMM[0]-@XMM[1]}, [$out]!
2358 vld1.64 {@XMM[8]}, [r0,:128] @ next round tweak
2363 veor @XMM[0], @XMM[8]
2365 vst1.8 {@XMM[0]}, [sp,:128]
2372 vld1.8 {@XMM[0]}, [sp,:128]
2373 veor @XMM[0], @XMM[0], @XMM[8]
2374 vst1.8 {@XMM[0]}, [$out]!
2378 vmov @XMM[8], @XMM[9] @ next round tweak
2387 vshr.s64 @XMM[6], @XMM[8], #63
2388 vand @XMM[6], @XMM[6], $twmask
2389 vadd.u64 @XMM[9], @XMM[8], @XMM[8]
2390 vswp `&Dhi("@XMM[6]")`,`&Dlo("@XMM[6]")`
2391 veor @XMM[9], @XMM[9], @XMM[6]
2394 vld1.8 {@XMM[0]}, [$inp]!
2396 veor @XMM[0], @XMM[0], @XMM[9]
2398 vst1.8 {@XMM[0]}, [sp,:128]
2404 vld1.8 {@XMM[0]}, [sp,:128]
2405 veor @XMM[0], @XMM[0], @XMM[9]
2406 vst1.8 {@XMM[0]}, [$out]
2418 vld1.8 {@XMM[0]}, [r6]
2420 veor @XMM[0], @XMM[8]
2422 vst1.8 {@XMM[0]}, [sp,:128]
2427 vld1.8 {@XMM[0]}, [sp,:128]
2428 veor @XMM[0], @XMM[0], @XMM[8]
2429 vst1.8 {@XMM[0]}, [r6]
2447 vst1.8 {@XMM[8]}, [r1]