| 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/base/logging.h" | 10 #include "src/base/logging.h" |
| (...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 468 | 468 |
| 469 void Clear(Code* host); | 469 void Clear(Code* host); |
| 470 | 470 |
| 471 // name can be a null handle for element loads. | 471 // name can be a null handle for element loads. |
| 472 void ConfigureMonomorphic(Handle<Name> name, Handle<Map> receiver_map, | 472 void ConfigureMonomorphic(Handle<Name> name, Handle<Map> receiver_map, |
| 473 Handle<Code> handler); | 473 Handle<Code> handler); |
| 474 // name can be null. | 474 // name can be null. |
| 475 void ConfigurePolymorphic(Handle<Name> name, MapHandleList* maps, | 475 void ConfigurePolymorphic(Handle<Name> name, MapHandleList* maps, |
| 476 CodeHandleList* handlers); | 476 CodeHandleList* handlers); |
| 477 | 477 |
| 478 void ConfigureMegamorphicKeyed(IcCheckType property_type); |
| 479 |
| 480 IcCheckType GetKeyType() const; |
| 478 InlineCacheState StateFromFeedback() const override; | 481 InlineCacheState StateFromFeedback() const override; |
| 479 Name* FindFirstName() const override; | 482 Name* FindFirstName() const override; |
| 480 }; | 483 }; |
| 481 | 484 |
| 482 | 485 |
| 483 class StoreICNexus : public FeedbackNexus { | 486 class StoreICNexus : public FeedbackNexus { |
| 484 public: | 487 public: |
| 485 StoreICNexus(Handle<TypeFeedbackVector> vector, FeedbackVectorSlot slot) | 488 StoreICNexus(Handle<TypeFeedbackVector> vector, FeedbackVectorSlot slot) |
| 486 : FeedbackNexus(vector, slot) { | 489 : FeedbackNexus(vector, slot) { |
| 487 DCHECK_EQ(FeedbackVectorSlotKind::STORE_IC, vector->GetKind(slot)); | 490 DCHECK_EQ(FeedbackVectorSlotKind::STORE_IC, vector->GetKind(slot)); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 524 | 527 |
| 525 // name can be a null handle for element loads. | 528 // name can be a null handle for element loads. |
| 526 void ConfigureMonomorphic(Handle<Name> name, Handle<Map> receiver_map, | 529 void ConfigureMonomorphic(Handle<Name> name, Handle<Map> receiver_map, |
| 527 Handle<Code> handler); | 530 Handle<Code> handler); |
| 528 // name can be null. | 531 // name can be null. |
| 529 void ConfigurePolymorphic(Handle<Name> name, MapHandleList* maps, | 532 void ConfigurePolymorphic(Handle<Name> name, MapHandleList* maps, |
| 530 CodeHandleList* handlers); | 533 CodeHandleList* handlers); |
| 531 void ConfigurePolymorphic(MapHandleList* maps, | 534 void ConfigurePolymorphic(MapHandleList* maps, |
| 532 MapHandleList* transitioned_maps, | 535 MapHandleList* transitioned_maps, |
| 533 CodeHandleList* handlers); | 536 CodeHandleList* handlers); |
| 537 void ConfigureMegamorphicKeyed(IcCheckType property_type); |
| 534 | 538 |
| 535 KeyedAccessStoreMode GetKeyedAccessStoreMode() const; | 539 KeyedAccessStoreMode GetKeyedAccessStoreMode() const; |
| 536 IcCheckType GetKeyType() const; | 540 IcCheckType GetKeyType() const; |
| 537 | 541 |
| 538 InlineCacheState StateFromFeedback() const override; | 542 InlineCacheState StateFromFeedback() const override; |
| 539 Name* FindFirstName() const override; | 543 Name* FindFirstName() const override; |
| 540 }; | 544 }; |
| 541 } // namespace internal | 545 } // namespace internal |
| 542 } // namespace v8 | 546 } // namespace v8 |
| 543 | 547 |
| 544 #endif // V8_TRANSITIONS_H_ | 548 #endif // V8_TRANSITIONS_H_ |
| OLD | NEW |