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 5534 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5545 inline bool back_edges_patched_for_osr(); | 5545 inline bool back_edges_patched_for_osr(); |
5546 | 5546 |
5547 // [to_boolean_foo]: For kind TO_BOOLEAN_IC tells what state the stub is in. | 5547 // [to_boolean_foo]: For kind TO_BOOLEAN_IC tells what state the stub is in. |
5548 inline uint16_t to_boolean_state(); | 5548 inline uint16_t to_boolean_state(); |
5549 | 5549 |
5550 // [marked_for_deoptimization]: For kind OPTIMIZED_FUNCTION tells whether | 5550 // [marked_for_deoptimization]: For kind OPTIMIZED_FUNCTION tells whether |
5551 // the code is going to be deoptimized because of dead embedded maps. | 5551 // the code is going to be deoptimized because of dead embedded maps. |
5552 inline bool marked_for_deoptimization(); | 5552 inline bool marked_for_deoptimization(); |
5553 inline void set_marked_for_deoptimization(bool flag); | 5553 inline void set_marked_for_deoptimization(bool flag); |
5554 | 5554 |
5555 // [is_promise_rejection]: For kind BUILTIN tells whether the exception | |
5556 // thrown by the code will lead to promise rejection. | |
5557 inline bool is_promise_rejection(); | |
gsathya
2016/11/23 14:31:18
let me know if you can think of a better name, i c
| |
5558 inline void set_is_promise_rejection(bool flag); | |
5559 | |
5555 // [constant_pool]: The constant pool for this function. | 5560 // [constant_pool]: The constant pool for this function. |
5556 inline Address constant_pool(); | 5561 inline Address constant_pool(); |
5557 | 5562 |
5558 // Get the safepoint entry for the given pc. | 5563 // Get the safepoint entry for the given pc. |
5559 SafepointEntry GetSafepointEntry(Address pc); | 5564 SafepointEntry GetSafepointEntry(Address pc); |
5560 | 5565 |
5561 // Find an object in a stub with a specified map | 5566 // Find an object in a stub with a specified map |
5562 Object* FindNthObject(int n, Map* match_map); | 5567 Object* FindNthObject(int n, Map* match_map); |
5563 | 5568 |
5564 // Find the first allocation site in an IC stub. | 5569 // Find the first allocation site in an IC stub. |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5819 | 5824 |
5820 // KindSpecificFlags1 layout (STUB, BUILTIN and OPTIMIZED_FUNCTION) | 5825 // KindSpecificFlags1 layout (STUB, BUILTIN and OPTIMIZED_FUNCTION) |
5821 static const int kStackSlotsFirstBit = 0; | 5826 static const int kStackSlotsFirstBit = 0; |
5822 static const int kStackSlotsBitCount = 24; | 5827 static const int kStackSlotsBitCount = 24; |
5823 static const int kMarkedForDeoptimizationBit = | 5828 static const int kMarkedForDeoptimizationBit = |
5824 kStackSlotsFirstBit + kStackSlotsBitCount; | 5829 kStackSlotsFirstBit + kStackSlotsBitCount; |
5825 static const int kIsTurbofannedBit = kMarkedForDeoptimizationBit + 1; | 5830 static const int kIsTurbofannedBit = kMarkedForDeoptimizationBit + 1; |
5826 static const int kCanHaveWeakObjects = kIsTurbofannedBit + 1; | 5831 static const int kCanHaveWeakObjects = kIsTurbofannedBit + 1; |
5827 // Could be moved to overlap previous bits when we need more space. | 5832 // Could be moved to overlap previous bits when we need more space. |
5828 static const int kIsConstructStub = kCanHaveWeakObjects + 1; | 5833 static const int kIsConstructStub = kCanHaveWeakObjects + 1; |
5834 static const int kIsPromiseRejection = kIsConstructStub + 1; | |
5829 | 5835 |
5830 STATIC_ASSERT(kStackSlotsFirstBit + kStackSlotsBitCount <= 32); | 5836 STATIC_ASSERT(kStackSlotsFirstBit + kStackSlotsBitCount <= 32); |
5831 STATIC_ASSERT(kIsConstructStub + 1 <= 32); | 5837 STATIC_ASSERT(kIsPromiseRejection + 1 <= 32); |
5832 | 5838 |
5833 class StackSlotsField: public BitField<int, | 5839 class StackSlotsField: public BitField<int, |
5834 kStackSlotsFirstBit, kStackSlotsBitCount> {}; // NOLINT | 5840 kStackSlotsFirstBit, kStackSlotsBitCount> {}; // NOLINT |
5835 class MarkedForDeoptimizationField | 5841 class MarkedForDeoptimizationField |
5836 : public BitField<bool, kMarkedForDeoptimizationBit, 1> {}; // NOLINT | 5842 : public BitField<bool, kMarkedForDeoptimizationBit, 1> {}; // NOLINT |
5837 class IsTurbofannedField : public BitField<bool, kIsTurbofannedBit, 1> { | 5843 class IsTurbofannedField : public BitField<bool, kIsTurbofannedBit, 1> { |
5838 }; // NOLINT | 5844 }; // NOLINT |
5839 class CanHaveWeakObjectsField | 5845 class CanHaveWeakObjectsField |
5840 : public BitField<bool, kCanHaveWeakObjects, 1> {}; // NOLINT | 5846 : public BitField<bool, kCanHaveWeakObjects, 1> {}; // NOLINT |
5841 class IsConstructStubField : public BitField<bool, kIsConstructStub, 1> { | 5847 class IsConstructStubField : public BitField<bool, kIsConstructStub, 1> { |
5842 }; // NOLINT | 5848 }; // NOLINT |
5849 class IsPromiseRejectionField | |
5850 : public BitField<bool, kIsPromiseRejection, 1> {}; // NOLINT | |
5843 | 5851 |
5844 // KindSpecificFlags2 layout (ALL) | 5852 // KindSpecificFlags2 layout (ALL) |
5845 static const int kIsCrankshaftedBit = 0; | 5853 static const int kIsCrankshaftedBit = 0; |
5846 class IsCrankshaftedField: public BitField<bool, | 5854 class IsCrankshaftedField: public BitField<bool, |
5847 kIsCrankshaftedBit, 1> {}; // NOLINT | 5855 kIsCrankshaftedBit, 1> {}; // NOLINT |
5848 | 5856 |
5849 // KindSpecificFlags2 layout (STUB and OPTIMIZED_FUNCTION) | 5857 // KindSpecificFlags2 layout (STUB and OPTIMIZED_FUNCTION) |
5850 static const int kSafepointTableOffsetFirstBit = kIsCrankshaftedBit + 1; | 5858 static const int kSafepointTableOffsetFirstBit = kIsCrankshaftedBit + 1; |
5851 static const int kSafepointTableOffsetBitCount = 30; | 5859 static const int kSafepointTableOffsetBitCount = 30; |
5852 | 5860 |
(...skipping 6009 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
11862 } | 11870 } |
11863 return value; | 11871 return value; |
11864 } | 11872 } |
11865 }; | 11873 }; |
11866 | 11874 |
11867 | 11875 |
11868 } // NOLINT, false-positive due to second-order macros. | 11876 } // NOLINT, false-positive due to second-order macros. |
11869 } // NOLINT, false-positive due to second-order macros. | 11877 } // NOLINT, false-positive due to second-order macros. |
11870 | 11878 |
11871 #endif // V8_OBJECTS_H_ | 11879 #endif // V8_OBJECTS_H_ |
OLD | NEW |