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 |