Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: src/ic/ic.h

Issue 1209903003: VectorICs: Lithium support for vector-based stores. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix and REBASE. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/ia32/lithium-ia32.cc ('k') | src/ic/ic.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "src/messages.h" 10 #include "src/messages.h"
(...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 } 513 }
514 static void GenerateMiss(MacroAssembler* masm); 514 static void GenerateMiss(MacroAssembler* masm);
515 static void GenerateMegamorphic(MacroAssembler* masm); 515 static void GenerateMegamorphic(MacroAssembler* masm);
516 static void GenerateNormal(MacroAssembler* masm); 516 static void GenerateNormal(MacroAssembler* masm);
517 static void GenerateRuntimeSetProperty(MacroAssembler* masm, 517 static void GenerateRuntimeSetProperty(MacroAssembler* masm,
518 LanguageMode language_mode); 518 LanguageMode language_mode);
519 519
520 static Handle<Code> initialize_stub(Isolate* isolate, 520 static Handle<Code> initialize_stub(Isolate* isolate,
521 LanguageMode language_mode, 521 LanguageMode language_mode,
522 State initialization_state); 522 State initialization_state);
523 static Handle<Code> initialize_stub_in_optimized_code(
524 Isolate* isolate, LanguageMode language_mode, State initialization_state);
523 525
524 MUST_USE_RESULT MaybeHandle<Object> Store( 526 MUST_USE_RESULT MaybeHandle<Object> Store(
525 Handle<Object> object, Handle<Name> name, Handle<Object> value, 527 Handle<Object> object, Handle<Name> name, Handle<Object> value,
526 JSReceiver::StoreFromKeyed store_mode = 528 JSReceiver::StoreFromKeyed store_mode =
527 JSReceiver::CERTAINLY_NOT_STORE_FROM_KEYED); 529 JSReceiver::CERTAINLY_NOT_STORE_FROM_KEYED);
528 530
529 bool LookupForWrite(LookupIterator* it, Handle<Object> value, 531 bool LookupForWrite(LookupIterator* it, Handle<Object> value,
530 JSReceiver::StoreFromKeyed store_mode); 532 JSReceiver::StoreFromKeyed store_mode);
531 533
532 protected: 534 protected:
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 } 609 }
608 static void GenerateMiss(MacroAssembler* masm); 610 static void GenerateMiss(MacroAssembler* masm);
609 static void GenerateSlow(MacroAssembler* masm); 611 static void GenerateSlow(MacroAssembler* masm);
610 static void GenerateMegamorphic(MacroAssembler* masm, 612 static void GenerateMegamorphic(MacroAssembler* masm,
611 LanguageMode language_mode); 613 LanguageMode language_mode);
612 614
613 static Handle<Code> initialize_stub(Isolate* isolate, 615 static Handle<Code> initialize_stub(Isolate* isolate,
614 LanguageMode language_mode, 616 LanguageMode language_mode,
615 State initialization_state); 617 State initialization_state);
616 618
619 static Handle<Code> initialize_stub_in_optimized_code(
620 Isolate* isolate, LanguageMode language_mode, State initialization_state);
621
617 protected: 622 protected:
618 virtual Handle<Code> pre_monomorphic_stub() const { 623 virtual Handle<Code> pre_monomorphic_stub() const {
619 return pre_monomorphic_stub(isolate(), language_mode()); 624 return pre_monomorphic_stub(isolate(), language_mode());
620 } 625 }
621 static Handle<Code> pre_monomorphic_stub(Isolate* isolate, 626 static Handle<Code> pre_monomorphic_stub(Isolate* isolate,
622 LanguageMode language_mode) { 627 LanguageMode language_mode) {
623 if (is_strict(language_mode)) { 628 if (is_strict(language_mode)) {
624 return isolate->builtins()->KeyedStoreIC_PreMonomorphic_Strict(); 629 return isolate->builtins()->KeyedStoreIC_PreMonomorphic_Strict();
625 } else { 630 } else {
626 return isolate->builtins()->KeyedStoreIC_PreMonomorphic(); 631 return isolate->builtins()->KeyedStoreIC_PreMonomorphic();
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 741
737 // Support functions for interceptor handlers. 742 // Support functions for interceptor handlers.
738 DECLARE_RUNTIME_FUNCTION(LoadPropertyWithInterceptorOnly); 743 DECLARE_RUNTIME_FUNCTION(LoadPropertyWithInterceptorOnly);
739 DECLARE_RUNTIME_FUNCTION(LoadPropertyWithInterceptor); 744 DECLARE_RUNTIME_FUNCTION(LoadPropertyWithInterceptor);
740 DECLARE_RUNTIME_FUNCTION(LoadElementWithInterceptor); 745 DECLARE_RUNTIME_FUNCTION(LoadElementWithInterceptor);
741 DECLARE_RUNTIME_FUNCTION(StorePropertyWithInterceptor); 746 DECLARE_RUNTIME_FUNCTION(StorePropertyWithInterceptor);
742 } 747 }
743 } // namespace v8::internal 748 } // namespace v8::internal
744 749
745 #endif // V8_IC_H_ 750 #endif // V8_IC_H_
OLDNEW
« no previous file with comments | « src/ia32/lithium-ia32.cc ('k') | src/ic/ic.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698