| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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_TYPE_FEEDBACK_VECTOR_H_ | 5 #ifndef V8_TYPE_FEEDBACK_VECTOR_H_ |
| 6 #define V8_TYPE_FEEDBACK_VECTOR_H_ | 6 #define V8_TYPE_FEEDBACK_VECTOR_H_ |
| 7 | 7 |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "src/checks.h" | 10 #include "src/checks.h" |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 221 | 221 |
| 222 // A raw version of the uninitialized sentinel that's safe to read during | 222 // A raw version of the uninitialized sentinel that's safe to read during |
| 223 // garbage collection (e.g., for patching the cache). | 223 // garbage collection (e.g., for patching the cache). |
| 224 static inline Object* RawUninitializedSentinel(Heap* heap); | 224 static inline Object* RawUninitializedSentinel(Heap* heap); |
| 225 | 225 |
| 226 private: | 226 private: |
| 227 enum VectorICKind { | 227 enum VectorICKind { |
| 228 KindUnused = 0x0, | 228 KindUnused = 0x0, |
| 229 KindCallIC = 0x1, | 229 KindCallIC = 0x1, |
| 230 KindLoadIC = 0x2, | 230 KindLoadIC = 0x2, |
| 231 KindKeyedLoadIC = 0x3 | 231 KindKeyedLoadIC = 0x3, |
| 232 KindStoreIC = 0x4, |
| 233 KindKeyedStoreIC = 0x5, |
| 232 }; | 234 }; |
| 233 | 235 |
| 234 static const int kVectorICKindBits = 2; | 236 static const int kVectorICKindBits = 3; |
| 235 static VectorICKind FromCodeKind(Code::Kind kind); | 237 static VectorICKind FromCodeKind(Code::Kind kind); |
| 236 static Code::Kind FromVectorICKind(VectorICKind kind); | 238 static Code::Kind FromVectorICKind(VectorICKind kind); |
| 237 void SetKind(FeedbackVectorICSlot slot, Code::Kind kind); | 239 void SetKind(FeedbackVectorICSlot slot, Code::Kind kind); |
| 238 | 240 |
| 239 typedef BitSetComputer<VectorICKind, kVectorICKindBits, kSmiValueSize, | 241 typedef BitSetComputer<VectorICKind, kVectorICKindBits, kSmiValueSize, |
| 240 uint32_t> VectorICComputer; | 242 uint32_t> VectorICComputer; |
| 241 | 243 |
| 242 void ClearSlotsImpl(SharedFunctionInfo* shared, bool force_clear); | 244 void ClearSlotsImpl(SharedFunctionInfo* shared, bool force_clear); |
| 243 void ClearICSlotsImpl(SharedFunctionInfo* shared, bool force_clear); | 245 void ClearICSlotsImpl(SharedFunctionInfo* shared, bool force_clear); |
| 244 | 246 |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 414 void ConfigurePolymorphic(Handle<Name> name, MapHandleList* maps, | 416 void ConfigurePolymorphic(Handle<Name> name, MapHandleList* maps, |
| 415 CodeHandleList* handlers); | 417 CodeHandleList* handlers); |
| 416 | 418 |
| 417 InlineCacheState StateFromFeedback() const override; | 419 InlineCacheState StateFromFeedback() const override; |
| 418 Name* FindFirstName() const override; | 420 Name* FindFirstName() const override; |
| 419 }; | 421 }; |
| 420 } | 422 } |
| 421 } // namespace v8::internal | 423 } // namespace v8::internal |
| 422 | 424 |
| 423 #endif // V8_TRANSITIONS_H_ | 425 #endif // V8_TRANSITIONS_H_ |
| OLD | NEW |