| 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 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 400 }; | 400 }; |
| 401 | 401 |
| 402 | 402 |
| 403 class KeyedStoreICNexus : public FeedbackNexus { | 403 class KeyedStoreICNexus : public FeedbackNexus { |
| 404 public: | 404 public: |
| 405 KeyedStoreICNexus(Handle<TypeFeedbackVector> vector, | 405 KeyedStoreICNexus(Handle<TypeFeedbackVector> vector, |
| 406 FeedbackVectorICSlot slot) | 406 FeedbackVectorICSlot slot) |
| 407 : FeedbackNexus(vector, slot) { | 407 : FeedbackNexus(vector, slot) { |
| 408 DCHECK(vector->GetKind(slot) == Code::KEYED_STORE_IC); | 408 DCHECK(vector->GetKind(slot) == Code::KEYED_STORE_IC); |
| 409 } | 409 } |
| 410 explicit KeyedStoreICNexus(Isolate* isolate) |
| 411 : FeedbackNexus(TypeFeedbackVector::DummyVector(isolate), |
| 412 TypeFeedbackVector::DummySlot( |
| 413 TypeFeedbackVector::kDummyKeyedStoreICSlot)) {} |
| 410 KeyedStoreICNexus(TypeFeedbackVector* vector, FeedbackVectorICSlot slot) | 414 KeyedStoreICNexus(TypeFeedbackVector* vector, FeedbackVectorICSlot slot) |
| 411 : FeedbackNexus(vector, slot) { | 415 : FeedbackNexus(vector, slot) { |
| 412 DCHECK(vector->GetKind(slot) == Code::KEYED_STORE_IC); | 416 DCHECK(vector->GetKind(slot) == Code::KEYED_STORE_IC); |
| 413 } | 417 } |
| 414 | 418 |
| 415 void Clear(Code* host); | 419 void Clear(Code* host); |
| 416 | 420 |
| 417 // name can be a null handle for element loads. | 421 // name can be a null handle for element loads. |
| 418 void ConfigureMonomorphic(Handle<Name> name, Handle<Map> receiver_map, | 422 void ConfigureMonomorphic(Handle<Name> name, Handle<Map> receiver_map, |
| 419 Handle<Code> handler); | 423 Handle<Code> handler); |
| 420 // name can be null. | 424 // name can be null. |
| 421 void ConfigurePolymorphic(Handle<Name> name, MapHandleList* maps, | 425 void ConfigurePolymorphic(Handle<Name> name, MapHandleList* maps, |
| 422 CodeHandleList* handlers); | 426 CodeHandleList* handlers); |
| 423 void ConfigurePolymorphic(MapHandleList* maps, | 427 void ConfigurePolymorphic(MapHandleList* maps, |
| 424 MapHandleList* transitioned_maps, | 428 MapHandleList* transitioned_maps, |
| 425 CodeHandleList* handlers); | 429 CodeHandleList* handlers); |
| 426 | 430 |
| 427 KeyedAccessStoreMode GetKeyedAccessStoreMode() const; | 431 KeyedAccessStoreMode GetKeyedAccessStoreMode() const; |
| 428 IcCheckType GetKeyType() const; | 432 IcCheckType GetKeyType() const; |
| 429 | 433 |
| 430 InlineCacheState StateFromFeedback() const override; | 434 InlineCacheState StateFromFeedback() const override; |
| 431 Name* FindFirstName() const override; | 435 Name* FindFirstName() const override; |
| 432 }; | 436 }; |
| 433 } | 437 } |
| 434 } // namespace v8::internal | 438 } // namespace v8::internal |
| 435 | 439 |
| 436 #endif // V8_TRANSITIONS_H_ | 440 #endif // V8_TRANSITIONS_H_ |
| OLD | NEW |