| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/assert-scope.h" | 9 #include "src/assert-scope.h" |
| 10 #include "src/builtins.h" | 10 #include "src/builtins.h" |
| (...skipping 5559 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5570 // the instruction stream where the safepoint table starts. | 5570 // the instruction stream where the safepoint table starts. |
| 5571 inline unsigned safepoint_table_offset(); | 5571 inline unsigned safepoint_table_offset(); |
| 5572 inline void set_safepoint_table_offset(unsigned offset); | 5572 inline void set_safepoint_table_offset(unsigned offset); |
| 5573 | 5573 |
| 5574 // [back_edge_table_start]: For kind FUNCTION, the offset in the | 5574 // [back_edge_table_start]: For kind FUNCTION, the offset in the |
| 5575 // instruction stream where the back edge table starts. | 5575 // instruction stream where the back edge table starts. |
| 5576 inline unsigned back_edge_table_offset(); | 5576 inline unsigned back_edge_table_offset(); |
| 5577 inline void set_back_edge_table_offset(unsigned offset); | 5577 inline void set_back_edge_table_offset(unsigned offset); |
| 5578 | 5578 |
| 5579 inline bool back_edges_patched_for_osr(); | 5579 inline bool back_edges_patched_for_osr(); |
| 5580 inline void set_back_edges_patched_for_osr(bool value); | |
| 5581 | 5580 |
| 5582 // [to_boolean_foo]: For kind TO_BOOLEAN_IC tells what state the stub is in. | 5581 // [to_boolean_foo]: For kind TO_BOOLEAN_IC tells what state the stub is in. |
| 5583 inline byte to_boolean_state(); | 5582 inline byte to_boolean_state(); |
| 5584 | 5583 |
| 5585 // [has_function_cache]: For kind STUB tells whether there is a function | 5584 // [has_function_cache]: For kind STUB tells whether there is a function |
| 5586 // cache is passed to the stub. | 5585 // cache is passed to the stub. |
| 5587 inline bool has_function_cache(); | 5586 inline bool has_function_cache(); |
| 5588 inline void set_has_function_cache(bool flag); | 5587 inline void set_has_function_cache(bool flag); |
| 5589 | 5588 |
| 5590 | 5589 |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5815 | 5814 |
| 5816 // Byte offsets within kKindSpecificFlags1Offset. | 5815 // Byte offsets within kKindSpecificFlags1Offset. |
| 5817 static const int kOptimizableOffset = kKindSpecificFlags1Offset; | 5816 static const int kOptimizableOffset = kKindSpecificFlags1Offset; |
| 5818 | 5817 |
| 5819 static const int kFullCodeFlags = kOptimizableOffset + 1; | 5818 static const int kFullCodeFlags = kOptimizableOffset + 1; |
| 5820 class FullCodeFlagsHasDeoptimizationSupportField: | 5819 class FullCodeFlagsHasDeoptimizationSupportField: |
| 5821 public BitField<bool, 0, 1> {}; // NOLINT | 5820 public BitField<bool, 0, 1> {}; // NOLINT |
| 5822 class FullCodeFlagsHasDebugBreakSlotsField: public BitField<bool, 1, 1> {}; | 5821 class FullCodeFlagsHasDebugBreakSlotsField: public BitField<bool, 1, 1> {}; |
| 5823 class FullCodeFlagsIsCompiledOptimizable: public BitField<bool, 2, 1> {}; | 5822 class FullCodeFlagsIsCompiledOptimizable: public BitField<bool, 2, 1> {}; |
| 5824 | 5823 |
| 5825 static const int kAllowOSRAtLoopNestingLevelOffset = kFullCodeFlags + 1; | 5824 static const int kProfilerTicksOffset = kFullCodeFlags + 1; |
| 5826 static const int kProfilerTicksOffset = kAllowOSRAtLoopNestingLevelOffset + 1; | |
| 5827 | 5825 |
| 5828 // Flags layout. BitField<type, shift, size>. | 5826 // Flags layout. BitField<type, shift, size>. |
| 5829 class ICStateField: public BitField<InlineCacheState, 0, 3> {}; | 5827 class ICStateField: public BitField<InlineCacheState, 0, 3> {}; |
| 5830 class TypeField: public BitField<StubType, 3, 1> {}; | 5828 class TypeField: public BitField<StubType, 3, 1> {}; |
| 5831 class CacheHolderField: public BitField<InlineCacheHolderFlag, 5, 1> {}; | 5829 class CacheHolderField: public BitField<InlineCacheHolderFlag, 5, 1> {}; |
| 5832 class KindField: public BitField<Kind, 6, 4> {}; | 5830 class KindField: public BitField<Kind, 6, 4> {}; |
| 5833 // TODO(bmeurer): Bit 10 is available for free use. :-) | 5831 // TODO(bmeurer): Bit 10 is available for free use. :-) |
| 5834 class ExtraICStateField: public BitField<ExtraICState, 11, | 5832 class ExtraICStateField: public BitField<ExtraICState, 11, |
| 5835 PlatformSmiTagging::kSmiValueSize - 11 + 1> {}; // NOLINT | 5833 PlatformSmiTagging::kSmiValueSize - 11 + 1> {}; // NOLINT |
| 5836 | 5834 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5887 kSafepointTableOffsetBitCount <= 32); | 5885 kSafepointTableOffsetBitCount <= 32); |
| 5888 | 5886 |
| 5889 class SafepointTableOffsetField: public BitField<int, | 5887 class SafepointTableOffsetField: public BitField<int, |
| 5890 kSafepointTableOffsetFirstBit, | 5888 kSafepointTableOffsetFirstBit, |
| 5891 kSafepointTableOffsetBitCount> {}; // NOLINT | 5889 kSafepointTableOffsetBitCount> {}; // NOLINT |
| 5892 class StubMajorKeyField: public BitField<int, | 5890 class StubMajorKeyField: public BitField<int, |
| 5893 kStubMajorKeyFirstBit, kStubMajorKeyBits> {}; // NOLINT | 5891 kStubMajorKeyFirstBit, kStubMajorKeyBits> {}; // NOLINT |
| 5894 | 5892 |
| 5895 // KindSpecificFlags2 layout (FUNCTION) | 5893 // KindSpecificFlags2 layout (FUNCTION) |
| 5896 class BackEdgeTableOffsetField: public BitField<int, | 5894 class BackEdgeTableOffsetField: public BitField<int, |
| 5897 kIsCrankshaftedBit + 1, 29> {}; // NOLINT | 5895 kIsCrankshaftedBit + 1, 27> {}; // NOLINT |
| 5898 class BackEdgesPatchedForOSRField: public BitField<bool, | 5896 class AllowOSRAtLoopNestingLevelField: public BitField<int, |
| 5899 kIsCrankshaftedBit + 1 + 29, 1> {}; // NOLINT | 5897 kIsCrankshaftedBit + 1 + 27, 4> {}; // NOLINT |
| 5898 STATIC_ASSERT(AllowOSRAtLoopNestingLevelField::kMax >= kMaxLoopNestingMarker); |
| 5900 | 5899 |
| 5901 static const int kArgumentsBits = 16; | 5900 static const int kArgumentsBits = 16; |
| 5902 static const int kMaxArguments = (1 << kArgumentsBits) - 1; | 5901 static const int kMaxArguments = (1 << kArgumentsBits) - 1; |
| 5903 | 5902 |
| 5904 // This constant should be encodable in an ARM instruction. | 5903 // This constant should be encodable in an ARM instruction. |
| 5905 static const int kFlagsNotUsedInLookup = | 5904 static const int kFlagsNotUsedInLookup = |
| 5906 TypeField::kMask | CacheHolderField::kMask; | 5905 TypeField::kMask | CacheHolderField::kMask; |
| 5907 | 5906 |
| 5908 private: | 5907 private: |
| 5909 friend class RelocIterator; | 5908 friend class RelocIterator; |
| (...skipping 5234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11144 } else { | 11143 } else { |
| 11145 value &= ~(1 << bit_position); | 11144 value &= ~(1 << bit_position); |
| 11146 } | 11145 } |
| 11147 return value; | 11146 return value; |
| 11148 } | 11147 } |
| 11149 }; | 11148 }; |
| 11150 | 11149 |
| 11151 } } // namespace v8::internal | 11150 } } // namespace v8::internal |
| 11152 | 11151 |
| 11153 #endif // V8_OBJECTS_H_ | 11152 #endif // V8_OBJECTS_H_ |
| OLD | NEW |