OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 5 #ifndef V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "v8globals.h" | 10 #include "v8globals.h" |
(...skipping 770 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
781 // pointer is not accessed. | 781 // pointer is not accessed. |
782 // | 782 // |
783 // This method asserts that StackPointer() is not csp, since the call does | 783 // This method asserts that StackPointer() is not csp, since the call does |
784 // not make sense in that context. | 784 // not make sense in that context. |
785 inline void BumpSystemStackPointer(const Operand& space); | 785 inline void BumpSystemStackPointer(const Operand& space); |
786 | 786 |
787 // Helpers ------------------------------------------------------------------ | 787 // Helpers ------------------------------------------------------------------ |
788 // Root register. | 788 // Root register. |
789 inline void InitializeRootRegister(); | 789 inline void InitializeRootRegister(); |
790 | 790 |
| 791 void AssertFPCRState(Register fpcr = NoReg); |
| 792 void ConfigureFPCR(); |
| 793 void CanonicalizeNaN(const FPRegister& dst, const FPRegister& src); |
| 794 void CanonicalizeNaN(const FPRegister& reg) { |
| 795 CanonicalizeNaN(reg, reg); |
| 796 } |
| 797 |
791 // Load an object from the root table. | 798 // Load an object from the root table. |
792 void LoadRoot(CPURegister destination, | 799 void LoadRoot(CPURegister destination, |
793 Heap::RootListIndex index); | 800 Heap::RootListIndex index); |
794 // Store an object to the root table. | 801 // Store an object to the root table. |
795 void StoreRoot(Register source, | 802 void StoreRoot(Register source, |
796 Heap::RootListIndex index); | 803 Heap::RootListIndex index); |
797 | 804 |
798 // Load both TrueValue and FalseValue roots. | 805 // Load both TrueValue and FalseValue roots. |
799 void LoadTrueFalseRoots(Register true_root, Register false_root); | 806 void LoadTrueFalseRoots(Register true_root, Register false_root); |
800 | 807 |
(...skipping 725 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1526 void CheckFastObjectElements(Register map, Register scratch, Label* fail); | 1533 void CheckFastObjectElements(Register map, Register scratch, Label* fail); |
1527 | 1534 |
1528 // Check to see if number can be stored as a double in FastDoubleElements. | 1535 // Check to see if number can be stored as a double in FastDoubleElements. |
1529 // If it can, store it at the index specified by key_reg in the array, | 1536 // If it can, store it at the index specified by key_reg in the array, |
1530 // otherwise jump to fail. | 1537 // otherwise jump to fail. |
1531 void StoreNumberToDoubleElements(Register value_reg, | 1538 void StoreNumberToDoubleElements(Register value_reg, |
1532 Register key_reg, | 1539 Register key_reg, |
1533 Register elements_reg, | 1540 Register elements_reg, |
1534 Register scratch1, | 1541 Register scratch1, |
1535 FPRegister fpscratch1, | 1542 FPRegister fpscratch1, |
1536 FPRegister fpscratch2, | |
1537 Label* fail, | 1543 Label* fail, |
1538 int elements_offset = 0); | 1544 int elements_offset = 0); |
1539 | 1545 |
1540 // Picks out an array index from the hash field. | 1546 // Picks out an array index from the hash field. |
1541 // Register use: | 1547 // Register use: |
1542 // hash - holds the index's hash. Clobbered. | 1548 // hash - holds the index's hash. Clobbered. |
1543 // index - holds the overwritten index on exit. | 1549 // index - holds the overwritten index on exit. |
1544 void IndexFromHash(Register hash, Register index); | 1550 void IndexFromHash(Register hash, Register index); |
1545 | 1551 |
1546 // --------------------------------------------------------------------------- | 1552 // --------------------------------------------------------------------------- |
(...skipping 737 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2284 #error "Unsupported option" | 2290 #error "Unsupported option" |
2285 #define CODE_COVERAGE_STRINGIFY(x) #x | 2291 #define CODE_COVERAGE_STRINGIFY(x) #x |
2286 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) | 2292 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) |
2287 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 2293 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
2288 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 2294 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
2289 #else | 2295 #else |
2290 #define ACCESS_MASM(masm) masm-> | 2296 #define ACCESS_MASM(masm) masm-> |
2291 #endif | 2297 #endif |
2292 | 2298 |
2293 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 2299 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
OLD | NEW |