| 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_IC_H_ | 5 #ifndef V8_IC_H_ |
| 6 #define V8_IC_H_ | 6 #define V8_IC_H_ |
| 7 | 7 |
| 8 #include "src/ic/ic-state.h" | 8 #include "src/ic/ic-state.h" |
| 9 #include "src/macro-assembler.h" | 9 #include "src/macro-assembler.h" |
| 10 | 10 |
| (...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 426 | 426 |
| 427 Handle<Code> slow_stub() const { | 427 Handle<Code> slow_stub() const { |
| 428 if (kind() == Code::LOAD_IC) { | 428 if (kind() == Code::LOAD_IC) { |
| 429 return isolate()->builtins()->LoadIC_Slow(); | 429 return isolate()->builtins()->LoadIC_Slow(); |
| 430 } else { | 430 } else { |
| 431 DCHECK_EQ(Code::KEYED_LOAD_IC, kind()); | 431 DCHECK_EQ(Code::KEYED_LOAD_IC, kind()); |
| 432 return isolate()->builtins()->KeyedLoadIC_Slow(); | 432 return isolate()->builtins()->KeyedLoadIC_Slow(); |
| 433 } | 433 } |
| 434 } | 434 } |
| 435 | 435 |
| 436 virtual Handle<Code> megamorphic_stub() OVERRIDE; | 436 Handle<Code> megamorphic_stub() OVERRIDE; |
| 437 | 437 |
| 438 // Update the inline cache and the global stub cache based on the | 438 // Update the inline cache and the global stub cache based on the |
| 439 // lookup result. | 439 // lookup result. |
| 440 void UpdateCaches(LookupIterator* lookup); | 440 void UpdateCaches(LookupIterator* lookup); |
| 441 | 441 |
| 442 virtual Handle<Code> CompileHandler(LookupIterator* lookup, | 442 virtual Handle<Code> CompileHandler(LookupIterator* lookup, |
| 443 Handle<Object> unused, | 443 Handle<Object> unused, |
| 444 CacheHolderFlag cache_holder) OVERRIDE; | 444 CacheHolderFlag cache_holder) OVERRIDE; |
| 445 | 445 |
| 446 private: | 446 private: |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 547 | 547 |
| 548 MUST_USE_RESULT MaybeHandle<Object> Store( | 548 MUST_USE_RESULT MaybeHandle<Object> Store( |
| 549 Handle<Object> object, Handle<Name> name, Handle<Object> value, | 549 Handle<Object> object, Handle<Name> name, Handle<Object> value, |
| 550 JSReceiver::StoreFromKeyed store_mode = | 550 JSReceiver::StoreFromKeyed store_mode = |
| 551 JSReceiver::CERTAINLY_NOT_STORE_FROM_KEYED); | 551 JSReceiver::CERTAINLY_NOT_STORE_FROM_KEYED); |
| 552 | 552 |
| 553 bool LookupForWrite(LookupIterator* it, Handle<Object> value, | 553 bool LookupForWrite(LookupIterator* it, Handle<Object> value, |
| 554 JSReceiver::StoreFromKeyed store_mode); | 554 JSReceiver::StoreFromKeyed store_mode); |
| 555 | 555 |
| 556 protected: | 556 protected: |
| 557 virtual Handle<Code> megamorphic_stub() OVERRIDE; | 557 Handle<Code> megamorphic_stub() OVERRIDE; |
| 558 | 558 |
| 559 // Stub accessors. | 559 // Stub accessors. |
| 560 Handle<Code> generic_stub() const; | 560 Handle<Code> generic_stub() const; |
| 561 | 561 |
| 562 Handle<Code> slow_stub() const; | 562 Handle<Code> slow_stub() const; |
| 563 | 563 |
| 564 virtual Handle<Code> pre_monomorphic_stub() const { | 564 virtual Handle<Code> pre_monomorphic_stub() const { |
| 565 return pre_monomorphic_stub(isolate(), strict_mode()); | 565 return pre_monomorphic_stub(isolate(), strict_mode()); |
| 566 } | 566 } |
| 567 | 567 |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 761 | 761 |
| 762 // Support functions for interceptor handlers. | 762 // Support functions for interceptor handlers. |
| 763 DECLARE_RUNTIME_FUNCTION(LoadPropertyWithInterceptorOnly); | 763 DECLARE_RUNTIME_FUNCTION(LoadPropertyWithInterceptorOnly); |
| 764 DECLARE_RUNTIME_FUNCTION(LoadPropertyWithInterceptor); | 764 DECLARE_RUNTIME_FUNCTION(LoadPropertyWithInterceptor); |
| 765 DECLARE_RUNTIME_FUNCTION(LoadElementWithInterceptor); | 765 DECLARE_RUNTIME_FUNCTION(LoadElementWithInterceptor); |
| 766 DECLARE_RUNTIME_FUNCTION(StorePropertyWithInterceptor); | 766 DECLARE_RUNTIME_FUNCTION(StorePropertyWithInterceptor); |
| 767 } | 767 } |
| 768 } // namespace v8::internal | 768 } // namespace v8::internal |
| 769 | 769 |
| 770 #endif // V8_IC_H_ | 770 #endif // V8_IC_H_ |
| OLD | NEW |