| 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 |