| OLD | NEW |
| 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 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 411 const QwNeonRegister q13 = { 13 }; | 411 const QwNeonRegister q13 = { 13 }; |
| 412 const QwNeonRegister q14 = { 14 }; | 412 const QwNeonRegister q14 = { 14 }; |
| 413 const QwNeonRegister q15 = { 15 }; | 413 const QwNeonRegister q15 = { 15 }; |
| 414 | 414 |
| 415 | 415 |
| 416 // Aliases for double registers. Defined using #define instead of | 416 // Aliases for double registers. Defined using #define instead of |
| 417 // "static const DwVfpRegister&" because Clang complains otherwise when a | 417 // "static const DwVfpRegister&" because Clang complains otherwise when a |
| 418 // compilation unit that includes this header doesn't use the variables. | 418 // compilation unit that includes this header doesn't use the variables. |
| 419 #define kFirstCalleeSavedDoubleReg d8 | 419 #define kFirstCalleeSavedDoubleReg d8 |
| 420 #define kLastCalleeSavedDoubleReg d15 | 420 #define kLastCalleeSavedDoubleReg d15 |
| 421 // kDoubleRegZero and kScratchDoubleReg must pair to form kScratchQuadReg. | 421 // kDoubleRegZero and kScratchDoubleReg must pair to form kScratchQuadReg. SIMD |
| 422 // code depends on kDoubleRegZero before kScratchDoubleReg. |
| 422 #define kDoubleRegZero d14 | 423 #define kDoubleRegZero d14 |
| 423 #define kScratchDoubleReg d15 | 424 #define kScratchDoubleReg d15 |
| 424 // After using kScratchQuadReg, kDoubleRegZero must be reset to 0. | 425 // After using kScratchQuadReg, kDoubleRegZero must be reset to 0. |
| 425 #define kScratchQuadReg q7 | 426 #define kScratchQuadReg q7 |
| 426 | 427 |
| 427 // Coprocessor register | 428 // Coprocessor register |
| 428 struct CRegister { | 429 struct CRegister { |
| 429 bool is_valid() const { return 0 <= reg_code && reg_code < 16; } | 430 bool is_valid() const { return 0 <= reg_code && reg_code < 16; } |
| 430 bool is(CRegister creg) const { return reg_code == creg.reg_code; } | 431 bool is(CRegister creg) const { return reg_code == creg.reg_code; } |
| 431 int code() const { | 432 int code() const { |
| (...skipping 920 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1352 void vmul(QwNeonRegister dst, QwNeonRegister src1, | 1353 void vmul(QwNeonRegister dst, QwNeonRegister src1, |
| 1353 QwNeonRegister src2); | 1354 QwNeonRegister src2); |
| 1354 void vmul(NeonSize size, QwNeonRegister dst, QwNeonRegister src1, | 1355 void vmul(NeonSize size, QwNeonRegister dst, QwNeonRegister src1, |
| 1355 QwNeonRegister src2); | 1356 QwNeonRegister src2); |
| 1356 void vmin(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); | 1357 void vmin(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); |
| 1357 void vmin(NeonDataType dt, QwNeonRegister dst, | 1358 void vmin(NeonDataType dt, QwNeonRegister dst, |
| 1358 QwNeonRegister src1, QwNeonRegister src2); | 1359 QwNeonRegister src1, QwNeonRegister src2); |
| 1359 void vmax(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); | 1360 void vmax(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); |
| 1360 void vmax(NeonDataType dt, QwNeonRegister dst, | 1361 void vmax(NeonDataType dt, QwNeonRegister dst, |
| 1361 QwNeonRegister src1, QwNeonRegister src2); | 1362 QwNeonRegister src1, QwNeonRegister src2); |
| 1363 void vpmin(NeonDataType dt, DwVfpRegister dst, DwVfpRegister src1, |
| 1364 DwVfpRegister src2); |
| 1365 void vpmax(NeonDataType dt, DwVfpRegister dst, DwVfpRegister src1, |
| 1366 DwVfpRegister src2); |
| 1362 void vshl(NeonDataType dt, QwNeonRegister dst, QwNeonRegister src, int shift); | 1367 void vshl(NeonDataType dt, QwNeonRegister dst, QwNeonRegister src, int shift); |
| 1363 void vshr(NeonDataType dt, QwNeonRegister dst, QwNeonRegister src, int shift); | 1368 void vshr(NeonDataType dt, QwNeonRegister dst, QwNeonRegister src, int shift); |
| 1364 // vrecpe and vrsqrte only support floating point lanes. | 1369 // vrecpe and vrsqrte only support floating point lanes. |
| 1365 void vrecpe(QwNeonRegister dst, QwNeonRegister src); | 1370 void vrecpe(QwNeonRegister dst, QwNeonRegister src); |
| 1366 void vrsqrte(QwNeonRegister dst, QwNeonRegister src); | 1371 void vrsqrte(QwNeonRegister dst, QwNeonRegister src); |
| 1367 void vrecps(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); | 1372 void vrecps(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); |
| 1368 void vrsqrts(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); | 1373 void vrsqrts(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); |
| 1369 void vtst(NeonSize size, QwNeonRegister dst, QwNeonRegister src1, | 1374 void vtst(NeonSize size, QwNeonRegister dst, QwNeonRegister src1, |
| 1370 QwNeonRegister src2); | 1375 QwNeonRegister src2); |
| 1371 void vceq(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); | 1376 void vceq(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); |
| (...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1785 class EnsureSpace BASE_EMBEDDED { | 1790 class EnsureSpace BASE_EMBEDDED { |
| 1786 public: | 1791 public: |
| 1787 INLINE(explicit EnsureSpace(Assembler* assembler)); | 1792 INLINE(explicit EnsureSpace(Assembler* assembler)); |
| 1788 }; | 1793 }; |
| 1789 | 1794 |
| 1790 | 1795 |
| 1791 } // namespace internal | 1796 } // namespace internal |
| 1792 } // namespace v8 | 1797 } // namespace v8 |
| 1793 | 1798 |
| 1794 #endif // V8_ARM_ASSEMBLER_ARM_H_ | 1799 #endif // V8_ARM_ASSEMBLER_ARM_H_ |
| OLD | NEW |