| 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_ASSEMBLER_ARM64_H_ | 5 #ifndef V8_ARM64_ASSEMBLER_ARM64_H_ |
| 6 #define V8_ARM64_ASSEMBLER_ARM64_H_ | 6 #define V8_ARM64_ASSEMBLER_ARM64_H_ |
| 7 | 7 |
| 8 #include <list> | 8 #include <list> |
| 9 #include <map> | 9 #include <map> |
| 10 | 10 |
| (...skipping 851 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 862 | 862 |
| 863 // Number of instructions generated for the return sequence in | 863 // Number of instructions generated for the return sequence in |
| 864 // FullCodeGenerator::EmitReturnSequence. | 864 // FullCodeGenerator::EmitReturnSequence. |
| 865 static const int kJSRetSequenceInstructions = 7; | 865 static const int kJSRetSequenceInstructions = 7; |
| 866 // Distance between start of patched return sequence and the emitted address | 866 // Distance between start of patched return sequence and the emitted address |
| 867 // to jump to. | 867 // to jump to. |
| 868 static const int kPatchReturnSequenceAddressOffset = 0; | 868 static const int kPatchReturnSequenceAddressOffset = 0; |
| 869 static const int kPatchDebugBreakSlotAddressOffset = 0; | 869 static const int kPatchDebugBreakSlotAddressOffset = 0; |
| 870 | 870 |
| 871 // Number of instructions necessary to be able to later patch it to a call. | 871 // Number of instructions necessary to be able to later patch it to a call. |
| 872 // See Debug::GenerateSlot() and BreakLocationIterator::SetDebugBreakAtSlot(). | 872 // See DebugCodegen::GenerateSlot() and |
| 873 // BreakLocationIterator::SetDebugBreakAtSlot(). |
| 873 static const int kDebugBreakSlotInstructions = 4; | 874 static const int kDebugBreakSlotInstructions = 4; |
| 874 static const int kDebugBreakSlotLength = | 875 static const int kDebugBreakSlotLength = |
| 875 kDebugBreakSlotInstructions * kInstructionSize; | 876 kDebugBreakSlotInstructions * kInstructionSize; |
| 876 | 877 |
| 877 static const int kPatchDebugBreakSlotReturnOffset = 2 * kInstructionSize; | 878 static const int kPatchDebugBreakSlotReturnOffset = 2 * kInstructionSize; |
| 878 | 879 |
| 879 // Prevent contant pool emission until EndBlockConstPool is called. | 880 // Prevent contant pool emission until EndBlockConstPool is called. |
| 880 // Call to this function can be nested but must be followed by an equal | 881 // Call to this function can be nested but must be followed by an equal |
| 881 // number of call to EndBlockConstpool. | 882 // number of call to EndBlockConstpool. |
| 882 void StartBlockConstPool(); | 883 void StartBlockConstPool(); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 928 void RecordDebugBreakSlot(); | 929 void RecordDebugBreakSlot(); |
| 929 | 930 |
| 930 // Record the emission of a constant pool. | 931 // Record the emission of a constant pool. |
| 931 // | 932 // |
| 932 // The emission of constant and veneer pools depends on the size of the code | 933 // The emission of constant and veneer pools depends on the size of the code |
| 933 // generated and the number of RelocInfo recorded. | 934 // generated and the number of RelocInfo recorded. |
| 934 // The Debug mechanism needs to map code offsets between two versions of a | 935 // The Debug mechanism needs to map code offsets between two versions of a |
| 935 // function, compiled with and without debugger support (see for example | 936 // function, compiled with and without debugger support (see for example |
| 936 // Debug::PrepareForBreakPoints()). | 937 // Debug::PrepareForBreakPoints()). |
| 937 // Compiling functions with debugger support generates additional code | 938 // Compiling functions with debugger support generates additional code |
| 938 // (Debug::GenerateSlot()). This may affect the emission of the pools and | 939 // (DebugCodegen::GenerateSlot()). This may affect the emission of the pools |
| 939 // cause the version of the code with debugger support to have pools generated | 940 // and cause the version of the code with debugger support to have pools |
| 940 // in different places. | 941 // generated in different places. |
| 941 // Recording the position and size of emitted pools allows to correctly | 942 // Recording the position and size of emitted pools allows to correctly |
| 942 // compute the offset mappings between the different versions of a function in | 943 // compute the offset mappings between the different versions of a function in |
| 943 // all situations. | 944 // all situations. |
| 944 // | 945 // |
| 945 // The parameter indicates the size of the pool (in bytes), including | 946 // The parameter indicates the size of the pool (in bytes), including |
| 946 // the marker and branch over the data. | 947 // the marker and branch over the data. |
| 947 void RecordConstPool(int size); | 948 void RecordConstPool(int size); |
| 948 | 949 |
| 949 | 950 |
| 950 // Instruction set functions ------------------------------------------------ | 951 // Instruction set functions ------------------------------------------------ |
| (...skipping 1286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2237 class EnsureSpace BASE_EMBEDDED { | 2238 class EnsureSpace BASE_EMBEDDED { |
| 2238 public: | 2239 public: |
| 2239 explicit EnsureSpace(Assembler* assembler) { | 2240 explicit EnsureSpace(Assembler* assembler) { |
| 2240 assembler->CheckBufferSpace(); | 2241 assembler->CheckBufferSpace(); |
| 2241 } | 2242 } |
| 2242 }; | 2243 }; |
| 2243 | 2244 |
| 2244 } } // namespace v8::internal | 2245 } } // namespace v8::internal |
| 2245 | 2246 |
| 2246 #endif // V8_ARM64_ASSEMBLER_ARM64_H_ | 2247 #endif // V8_ARM64_ASSEMBLER_ARM64_H_ |
| OLD | NEW |