Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(568)

Side by Side Diff: src/arm/assembler-arm.h

Issue 2739033002: [ARM] Implement more NEON permutation instructions. (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/arm/assembler-arm.cc » ('j') | src/arm/assembler-arm.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 1297 matching lines...) Expand 10 before | Expand all | Expand 10 after
1308 const NeonMemOperand& src); 1308 const NeonMemOperand& src);
1309 void vst1(NeonSize size, 1309 void vst1(NeonSize size,
1310 const NeonListOperand& src, 1310 const NeonListOperand& src,
1311 const NeonMemOperand& dst); 1311 const NeonMemOperand& dst);
1312 void vmovl(NeonDataType dt, QwNeonRegister dst, DwVfpRegister src); 1312 void vmovl(NeonDataType dt, QwNeonRegister dst, DwVfpRegister src);
1313 1313
1314 // Only unconditional core <-> scalar moves are currently supported. 1314 // Only unconditional core <-> scalar moves are currently supported.
1315 void vmov(NeonDataType dt, DwVfpRegister dst, int index, Register src); 1315 void vmov(NeonDataType dt, DwVfpRegister dst, int index, Register src);
1316 void vmov(NeonDataType dt, Register dst, DwVfpRegister src, int index); 1316 void vmov(NeonDataType dt, Register dst, DwVfpRegister src, int index);
1317 1317
1318 void vmov(const QwNeonRegister dst, const QwNeonRegister src); 1318 void vmov(QwNeonRegister dst, QwNeonRegister src);
1319 void vmvn(const QwNeonRegister dst, const QwNeonRegister src); 1319 // Only unconditional vdup is currently supported.
martyn.capewell 2017/03/09 14:03:36 The conditional form of this vdup is deprecated, s
bbudge 2017/03/09 20:51:05 Done.
1320 void vdup(NeonSize size, QwNeonRegister dst, Register src);
1321 void vdup(QwNeonRegister dst, SwVfpRegister src);
1322
1323 void vcvt_f32_s32(QwNeonRegister dst, QwNeonRegister src);
1324 void vcvt_f32_u32(QwNeonRegister dst, QwNeonRegister src);
1325 void vcvt_s32_f32(QwNeonRegister dst, QwNeonRegister src);
1326 void vcvt_u32_f32(QwNeonRegister dst, QwNeonRegister src);
1327
1328 void vmvn(QwNeonRegister dst, QwNeonRegister src);
1320 void vswp(DwVfpRegister dst, DwVfpRegister src); 1329 void vswp(DwVfpRegister dst, DwVfpRegister src);
1321 void vswp(QwNeonRegister dst, QwNeonRegister src); 1330 void vswp(QwNeonRegister dst, QwNeonRegister src);
1322 // vdup conditional execution isn't supported. 1331 void vabs(QwNeonRegister dst, QwNeonRegister src);
1323 void vdup(NeonSize size, const QwNeonRegister dst, const Register src); 1332 void vabs(NeonSize size, QwNeonRegister dst, QwNeonRegister src);
1324 void vdup(const QwNeonRegister dst, const SwVfpRegister src); 1333 void vneg(QwNeonRegister dst, QwNeonRegister src);
1334 void vneg(NeonSize size, QwNeonRegister dst, QwNeonRegister src);
1325 1335
1326 void vcvt_f32_s32(const QwNeonRegister dst, const QwNeonRegister src); 1336 void vand(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2);
1327 void vcvt_f32_u32(const QwNeonRegister dst, const QwNeonRegister src);
1328 void vcvt_s32_f32(const QwNeonRegister dst, const QwNeonRegister src);
1329 void vcvt_u32_f32(const QwNeonRegister dst, const QwNeonRegister src);
1330
1331 void vabs(const QwNeonRegister dst, const QwNeonRegister src);
1332 void vabs(NeonSize size, const QwNeonRegister dst, const QwNeonRegister src);
1333 void vneg(const QwNeonRegister dst, const QwNeonRegister src);
1334 void vneg(NeonSize size, const QwNeonRegister dst, const QwNeonRegister src);
1335 void veor(DwVfpRegister dst, DwVfpRegister src1, DwVfpRegister src2); 1337 void veor(DwVfpRegister dst, DwVfpRegister src1, DwVfpRegister src2);
1336 void vand(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); 1338 void veor(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2);
1337 void vbsl(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); 1339 void vbsl(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2);
1338 void veor(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2);
1339 void vorr(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); 1340 void vorr(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2);
1340 void vadd(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); 1341 void vadd(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2);
1341 void vadd(NeonSize size, QwNeonRegister dst, QwNeonRegister src1, 1342 void vadd(NeonSize size, QwNeonRegister dst, QwNeonRegister src1,
1342 QwNeonRegister src2); 1343 QwNeonRegister src2);
1343 void vqadd(NeonDataType dt, QwNeonRegister dst, QwNeonRegister src1, 1344 void vqadd(NeonDataType dt, QwNeonRegister dst, QwNeonRegister src1,
1344 QwNeonRegister src2); 1345 QwNeonRegister src2);
1345 void vsub(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); 1346 void vsub(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2);
1346 void vsub(NeonSize size, QwNeonRegister dst, QwNeonRegister src1, 1347 void vsub(NeonSize size, QwNeonRegister dst, QwNeonRegister src1,
1347 QwNeonRegister src2); 1348 QwNeonRegister src2);
1348 void vqsub(NeonDataType dt, QwNeonRegister dst, QwNeonRegister src1, 1349 void vqsub(NeonDataType dt, QwNeonRegister dst, QwNeonRegister src1,
(...skipping 18 matching lines...) Expand all
1367 void vrecpe(QwNeonRegister dst, QwNeonRegister src); 1368 void vrecpe(QwNeonRegister dst, QwNeonRegister src);
1368 void vrsqrte(QwNeonRegister dst, QwNeonRegister src); 1369 void vrsqrte(QwNeonRegister dst, QwNeonRegister src);
1369 void vrecps(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); 1370 void vrecps(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2);
1370 void vrsqrts(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); 1371 void vrsqrts(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2);
1371 void vtst(NeonSize size, QwNeonRegister dst, QwNeonRegister src1, 1372 void vtst(NeonSize size, QwNeonRegister dst, QwNeonRegister src1,
1372 QwNeonRegister src2); 1373 QwNeonRegister src2);
1373 void vceq(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); 1374 void vceq(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2);
1374 void vceq(NeonSize size, QwNeonRegister dst, QwNeonRegister src1, 1375 void vceq(NeonSize size, QwNeonRegister dst, QwNeonRegister src1,
1375 QwNeonRegister src2); 1376 QwNeonRegister src2);
1376 void vcge(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); 1377 void vcge(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2);
1377 void vcge(NeonDataType dt, QwNeonRegister dst, 1378 void vcge(NeonDataType dt, QwNeonRegister dst, QwNeonRegister src1,
1378 QwNeonRegister src1, QwNeonRegister src2); 1379 QwNeonRegister src2);
1379 void vcgt(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); 1380 void vcgt(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2);
1380 void vcgt(NeonDataType dt, QwNeonRegister dst, 1381 void vcgt(NeonDataType dt, QwNeonRegister dst, QwNeonRegister src1,
1381 QwNeonRegister src1, QwNeonRegister src2); 1382 QwNeonRegister src2);
1382 void vext(const QwNeonRegister dst, const QwNeonRegister src1, 1383 void vext(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2,
1383 const QwNeonRegister src2, int bytes); 1384 int bytes);
1384 void vzip(NeonSize size, const QwNeonRegister dst, const QwNeonRegister src); 1385 void vzip(NeonSize size, QwNeonRegister src1, QwNeonRegister src2);
1385 void vrev16(NeonSize size, const QwNeonRegister dst, 1386 void vuzp(NeonSize size, QwNeonRegister src1, QwNeonRegister src2);
1386 const QwNeonRegister src); 1387 void vrev16(NeonSize size, QwNeonRegister dst, QwNeonRegister src);
1387 void vrev32(NeonSize size, const QwNeonRegister dst, 1388 void vrev32(NeonSize size, QwNeonRegister dst, QwNeonRegister src);
1388 const QwNeonRegister src); 1389 void vrev64(NeonSize size, QwNeonRegister dst, QwNeonRegister src);
1389 void vrev64(NeonSize size, const QwNeonRegister dst, 1390 void vtrn(NeonSize size, QwNeonRegister src1, QwNeonRegister src2);
1390 const QwNeonRegister src); 1391 void vtbl(DwVfpRegister dst, const NeonListOperand& list,
1391 void vtbl(const DwVfpRegister dst, const NeonListOperand& list, 1392 DwVfpRegister index);
1392 const DwVfpRegister index); 1393 void vtbx(DwVfpRegister dst, const NeonListOperand& list,
1393 void vtbx(const DwVfpRegister dst, const NeonListOperand& list, 1394 DwVfpRegister index);
1394 const DwVfpRegister index);
1395 1395
1396 // Pseudo instructions 1396 // Pseudo instructions
1397 1397
1398 // Different nop operations are used by the code generator to detect certain 1398 // Different nop operations are used by the code generator to detect certain
1399 // states of the generated code. 1399 // states of the generated code.
1400 enum NopMarkerTypes { 1400 enum NopMarkerTypes {
1401 NON_MARKING_NOP = 0, 1401 NON_MARKING_NOP = 0,
1402 DEBUG_BREAK_NOP, 1402 DEBUG_BREAK_NOP,
1403 // IC markers. 1403 // IC markers.
1404 PROPERTY_ACCESS_INLINED, 1404 PROPERTY_ACCESS_INLINED,
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after
1789 class EnsureSpace BASE_EMBEDDED { 1789 class EnsureSpace BASE_EMBEDDED {
1790 public: 1790 public:
1791 INLINE(explicit EnsureSpace(Assembler* assembler)); 1791 INLINE(explicit EnsureSpace(Assembler* assembler));
1792 }; 1792 };
1793 1793
1794 1794
1795 } // namespace internal 1795 } // namespace internal
1796 } // namespace v8 1796 } // namespace v8
1797 1797
1798 #endif // V8_ARM_ASSEMBLER_ARM_H_ 1798 #endif // V8_ARM_ASSEMBLER_ARM_H_
OLDNEW
« no previous file with comments | « no previous file | src/arm/assembler-arm.cc » ('j') | src/arm/assembler-arm.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698