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/base/bits.h" | 10 #include "src/base/bits.h" |
(...skipping 8354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8365 | 8365 |
8366 // Dispatched behavior. | 8366 // Dispatched behavior. |
8367 DECLARE_PRINTER(TypeFeedbackInfo) | 8367 DECLARE_PRINTER(TypeFeedbackInfo) |
8368 DECLARE_VERIFIER(TypeFeedbackInfo) | 8368 DECLARE_VERIFIER(TypeFeedbackInfo) |
8369 | 8369 |
8370 static const int kStorage1Offset = HeapObject::kHeaderSize; | 8370 static const int kStorage1Offset = HeapObject::kHeaderSize; |
8371 static const int kStorage2Offset = kStorage1Offset + kPointerSize; | 8371 static const int kStorage2Offset = kStorage1Offset + kPointerSize; |
8372 static const int kStorage3Offset = kStorage2Offset + kPointerSize; | 8372 static const int kStorage3Offset = kStorage2Offset + kPointerSize; |
8373 static const int kSize = kStorage3Offset + kPointerSize; | 8373 static const int kSize = kStorage3Offset + kPointerSize; |
8374 | 8374 |
8375 // TODO(mvstanton): move these sentinel declarations to shared function info. | |
8376 // The object that indicates an uninitialized cache. | |
8377 static inline Handle<Object> UninitializedSentinel(Isolate* isolate); | |
8378 | |
8379 // The object that indicates a megamorphic state. | |
8380 static inline Handle<Object> MegamorphicSentinel(Isolate* isolate); | |
8381 | |
8382 // The object that indicates a premonomorphic state. | |
8383 static inline Handle<Object> PremonomorphicSentinel(Isolate* isolate); | |
8384 | |
8385 // The object that indicates a generic state. | |
8386 static inline Handle<Object> GenericSentinel(Isolate* isolate); | |
8387 | |
8388 // The object that indicates a monomorphic state of Array with | |
8389 // ElementsKind | |
8390 static inline Handle<Object> MonomorphicArraySentinel(Isolate* isolate, | |
8391 ElementsKind elements_kind); | |
8392 | |
8393 // A raw version of the uninitialized sentinel that's safe to read during | |
8394 // garbage collection (e.g., for patching the cache). | |
8395 static inline Object* RawUninitializedSentinel(Heap* heap); | |
8396 | |
8397 private: | 8375 private: |
8398 static const int kTypeChangeChecksumBits = 7; | 8376 static const int kTypeChangeChecksumBits = 7; |
8399 | 8377 |
8400 class ICTotalCountField: public BitField<int, 0, | 8378 class ICTotalCountField: public BitField<int, 0, |
8401 kSmiValueSize - kTypeChangeChecksumBits> {}; // NOLINT | 8379 kSmiValueSize - kTypeChangeChecksumBits> {}; // NOLINT |
8402 class OwnTypeChangeChecksum: public BitField<int, | 8380 class OwnTypeChangeChecksum: public BitField<int, |
8403 kSmiValueSize - kTypeChangeChecksumBits, | 8381 kSmiValueSize - kTypeChangeChecksumBits, |
8404 kTypeChangeChecksumBits> {}; // NOLINT | 8382 kTypeChangeChecksumBits> {}; // NOLINT |
8405 class ICsWithTypeInfoCountField: public BitField<int, 0, | 8383 class ICsWithTypeInfoCountField: public BitField<int, 0, |
8406 kSmiValueSize - kTypeChangeChecksumBits> {}; // NOLINT | 8384 kSmiValueSize - kTypeChangeChecksumBits> {}; // NOLINT |
(...skipping 2731 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11138 } else { | 11116 } else { |
11139 value &= ~(1 << bit_position); | 11117 value &= ~(1 << bit_position); |
11140 } | 11118 } |
11141 return value; | 11119 return value; |
11142 } | 11120 } |
11143 }; | 11121 }; |
11144 | 11122 |
11145 } } // namespace v8::internal | 11123 } } // namespace v8::internal |
11146 | 11124 |
11147 #endif // V8_OBJECTS_H_ | 11125 #endif // V8_OBJECTS_H_ |
OLD | NEW |