OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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_OBJECTS_H_ | 5 #ifndef V8_OBJECTS_H_ |
6 #define V8_OBJECTS_H_ | 6 #define V8_OBJECTS_H_ |
7 | 7 |
8 #include <iosfwd> | 8 #include <iosfwd> |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
(...skipping 4799 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4810 // Setters for handler table based on ranges. | 4810 // Setters for handler table based on ranges. |
4811 inline void SetRangeStart(int index, int value); | 4811 inline void SetRangeStart(int index, int value); |
4812 inline void SetRangeEnd(int index, int value); | 4812 inline void SetRangeEnd(int index, int value); |
4813 inline void SetRangeHandler(int index, int offset, CatchPrediction pred); | 4813 inline void SetRangeHandler(int index, int offset, CatchPrediction pred); |
4814 inline void SetRangeData(int index, int value); | 4814 inline void SetRangeData(int index, int value); |
4815 | 4815 |
4816 // Setters for handler table based on return addresses. | 4816 // Setters for handler table based on return addresses. |
4817 inline void SetReturnOffset(int index, int value); | 4817 inline void SetReturnOffset(int index, int value); |
4818 inline void SetReturnHandler(int index, int offset); | 4818 inline void SetReturnHandler(int index, int offset); |
4819 | 4819 |
4820 // Lookup handler in a table based on ranges. | 4820 // Lookup handler in a table based on ranges. The {pc_offset} is an offset to |
| 4821 // the start of the potentially throwing instruction (using return addresses |
| 4822 // for this value would be invalid). |
4821 int LookupRange(int pc_offset, int* data, CatchPrediction* prediction); | 4823 int LookupRange(int pc_offset, int* data, CatchPrediction* prediction); |
4822 | 4824 |
4823 // Lookup handler in a table based on return addresses. | 4825 // Lookup handler in a table based on return addresses. |
4824 int LookupReturn(int pc_offset); | 4826 int LookupReturn(int pc_offset); |
4825 | 4827 |
4826 // Returns the number of entries in the table. | 4828 // Returns the number of entries in the table. |
4827 inline int NumberOfRangeEntries() const; | 4829 inline int NumberOfRangeEntries() const; |
4828 | 4830 |
4829 // Returns the required length of the underlying fixed array. | 4831 // Returns the required length of the underlying fixed array. |
4830 static int LengthForRange(int entries) { return entries * kRangeEntrySize; } | 4832 static int LengthForRange(int entries) { return entries * kRangeEntrySize; } |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4995 int SourcePosition(int offset); | 4997 int SourcePosition(int offset); |
4996 int SourceStatementPosition(int offset); | 4998 int SourceStatementPosition(int offset); |
4997 | 4999 |
4998 DECLARE_PRINTER(BytecodeArray) | 5000 DECLARE_PRINTER(BytecodeArray) |
4999 DECLARE_VERIFIER(BytecodeArray) | 5001 DECLARE_VERIFIER(BytecodeArray) |
5000 | 5002 |
5001 void Disassemble(std::ostream& os); | 5003 void Disassemble(std::ostream& os); |
5002 | 5004 |
5003 void CopyBytecodesTo(BytecodeArray* to); | 5005 void CopyBytecodesTo(BytecodeArray* to); |
5004 | 5006 |
5005 int LookupRangeInHandlerTable(int code_offset, int* data, | |
5006 HandlerTable::CatchPrediction* prediction); | |
5007 | |
5008 // Layout description. | 5007 // Layout description. |
5009 static const int kConstantPoolOffset = FixedArrayBase::kHeaderSize; | 5008 static const int kConstantPoolOffset = FixedArrayBase::kHeaderSize; |
5010 static const int kHandlerTableOffset = kConstantPoolOffset + kPointerSize; | 5009 static const int kHandlerTableOffset = kConstantPoolOffset + kPointerSize; |
5011 static const int kSourcePositionTableOffset = | 5010 static const int kSourcePositionTableOffset = |
5012 kHandlerTableOffset + kPointerSize; | 5011 kHandlerTableOffset + kPointerSize; |
5013 static const int kFrameSizeOffset = kSourcePositionTableOffset + kPointerSize; | 5012 static const int kFrameSizeOffset = kSourcePositionTableOffset + kPointerSize; |
5014 static const int kParameterSizeOffset = kFrameSizeOffset + kIntSize; | 5013 static const int kParameterSizeOffset = kFrameSizeOffset + kIntSize; |
5015 static const int kInterruptBudgetOffset = kParameterSizeOffset + kIntSize; | 5014 static const int kInterruptBudgetOffset = kParameterSizeOffset + kIntSize; |
5016 static const int kOSRNestingLevelOffset = kInterruptBudgetOffset + kIntSize; | 5015 static const int kOSRNestingLevelOffset = kInterruptBudgetOffset + kIntSize; |
5017 static const int kHeaderSize = kOSRNestingLevelOffset + kCharSize; | 5016 static const int kHeaderSize = kOSRNestingLevelOffset + kCharSize; |
(...skipping 6894 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11912 } | 11911 } |
11913 return value; | 11912 return value; |
11914 } | 11913 } |
11915 }; | 11914 }; |
11916 | 11915 |
11917 | 11916 |
11918 } // NOLINT, false-positive due to second-order macros. | 11917 } // NOLINT, false-positive due to second-order macros. |
11919 } // NOLINT, false-positive due to second-order macros. | 11918 } // NOLINT, false-positive due to second-order macros. |
11920 | 11919 |
11921 #endif // V8_OBJECTS_H_ | 11920 #endif // V8_OBJECTS_H_ |
OLD | NEW |