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 | 9 |
10 #include "src/assert-scope.h" | 10 #include "src/assert-scope.h" |
(...skipping 5373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5384 static const int kFullCodeFlags = kKindSpecificFlags1Offset; | 5384 static const int kFullCodeFlags = kKindSpecificFlags1Offset; |
5385 class FullCodeFlagsHasDeoptimizationSupportField: | 5385 class FullCodeFlagsHasDeoptimizationSupportField: |
5386 public BitField<bool, 0, 1> {}; // NOLINT | 5386 public BitField<bool, 0, 1> {}; // NOLINT |
5387 class FullCodeFlagsHasDebugBreakSlotsField: public BitField<bool, 1, 1> {}; | 5387 class FullCodeFlagsHasDebugBreakSlotsField: public BitField<bool, 1, 1> {}; |
5388 class FullCodeFlagsHasRelocInfoForSerialization | 5388 class FullCodeFlagsHasRelocInfoForSerialization |
5389 : public BitField<bool, 2, 1> {}; | 5389 : public BitField<bool, 2, 1> {}; |
5390 // Bit 3 in this bitfield is unused. | 5390 // Bit 3 in this bitfield is unused. |
5391 class ProfilerTicksField : public BitField<int, 4, 28> {}; | 5391 class ProfilerTicksField : public BitField<int, 4, 28> {}; |
5392 | 5392 |
5393 // Flags layout. BitField<type, shift, size>. | 5393 // Flags layout. BitField<type, shift, size>. |
5394 class ICStateField : public BitField<InlineCacheState, 0, 3> {}; | 5394 class ICStateField : public BitField<InlineCacheState, 0, 2> {}; |
| 5395 class HasUnwindingInfoField : public BitField<bool, ICStateField::kNext, 1> { |
| 5396 }; |
5395 class CacheHolderField | 5397 class CacheHolderField |
5396 : public BitField<CacheHolderFlag, ICStateField::kNext, 2> {}; | 5398 : public BitField<CacheHolderFlag, HasUnwindingInfoField::kNext, 2> {}; |
5397 class KindField : public BitField<Kind, CacheHolderField::kNext, 5> {}; | 5399 class KindField : public BitField<Kind, CacheHolderField::kNext, 5> {}; |
5398 STATIC_ASSERT(NUMBER_OF_KINDS <= KindField::kMax); | 5400 STATIC_ASSERT(NUMBER_OF_KINDS <= KindField::kMax); |
5399 class HasUnwindingInfoField : public BitField<bool, KindField::kNext, 1> {}; | 5401 class ExtraICStateField : public BitField<ExtraICState, KindField::kNext, |
5400 class ExtraICStateField | 5402 PlatformSmiTagging::kSmiValueSize - |
5401 : public BitField<ExtraICState, HasUnwindingInfoField::kNext, | 5403 KindField::kNext + 1> {}; |
5402 PlatformSmiTagging::kSmiValueSize - | |
5403 HasUnwindingInfoField::kNext + 1> {}; | |
5404 | 5404 |
5405 // KindSpecificFlags1 layout (STUB, BUILTIN and OPTIMIZED_FUNCTION) | 5405 // KindSpecificFlags1 layout (STUB, BUILTIN and OPTIMIZED_FUNCTION) |
5406 static const int kStackSlotsFirstBit = 0; | 5406 static const int kStackSlotsFirstBit = 0; |
5407 static const int kStackSlotsBitCount = 24; | 5407 static const int kStackSlotsBitCount = 24; |
5408 static const int kMarkedForDeoptimizationBit = | 5408 static const int kMarkedForDeoptimizationBit = |
5409 kStackSlotsFirstBit + kStackSlotsBitCount; | 5409 kStackSlotsFirstBit + kStackSlotsBitCount; |
5410 static const int kIsTurbofannedBit = kMarkedForDeoptimizationBit + 1; | 5410 static const int kIsTurbofannedBit = kMarkedForDeoptimizationBit + 1; |
5411 static const int kCanHaveWeakObjects = kIsTurbofannedBit + 1; | 5411 static const int kCanHaveWeakObjects = kIsTurbofannedBit + 1; |
5412 | 5412 |
5413 STATIC_ASSERT(kStackSlotsFirstBit + kStackSlotsBitCount <= 32); | 5413 STATIC_ASSERT(kStackSlotsFirstBit + kStackSlotsBitCount <= 32); |
(...skipping 5556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10970 } | 10970 } |
10971 return value; | 10971 return value; |
10972 } | 10972 } |
10973 }; | 10973 }; |
10974 | 10974 |
10975 | 10975 |
10976 } // NOLINT, false-positive due to second-order macros. | 10976 } // NOLINT, false-positive due to second-order macros. |
10977 } // NOLINT, false-positive due to second-order macros. | 10977 } // NOLINT, false-positive due to second-order macros. |
10978 | 10978 |
10979 #endif // V8_OBJECTS_H_ | 10979 #endif // V8_OBJECTS_H_ |
OLD | NEW |