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

Side by Side Diff: src/ic.h

Issue 26807003: Add a slow stub for store ICs. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « src/builtins.cc ('k') | src/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 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after
548 } 548 }
549 // Stub accessors. 549 // Stub accessors.
550 virtual Handle<Code> generic_stub() const { 550 virtual Handle<Code> generic_stub() const {
551 if (strict_mode() == kStrictMode) { 551 if (strict_mode() == kStrictMode) {
552 return isolate()->builtins()->StoreIC_Generic_Strict(); 552 return isolate()->builtins()->StoreIC_Generic_Strict();
553 } else { 553 } else {
554 return isolate()->builtins()->StoreIC_Generic(); 554 return isolate()->builtins()->StoreIC_Generic();
555 } 555 }
556 } 556 }
557 557
558 virtual Handle<Code> slow_stub() const {
559 if (strict_mode() == kStrictMode) {
560 return isolate()->builtins()->StoreIC_Slow_Strict();
561 } else {
562 return isolate()->builtins()->StoreIC_Slow();
563 }
564 }
565
558 virtual Handle<Code> pre_monomorphic_stub() { 566 virtual Handle<Code> pre_monomorphic_stub() {
559 return pre_monomorphic_stub(isolate(), strict_mode()); 567 return pre_monomorphic_stub(isolate(), strict_mode());
560 } 568 }
561 569
562 static Handle<Code> pre_monomorphic_stub(Isolate* isolate, 570 static Handle<Code> pre_monomorphic_stub(Isolate* isolate,
563 StrictModeFlag strict_mode) { 571 StrictModeFlag strict_mode) {
564 if (strict_mode == kStrictMode) { 572 if (strict_mode == kStrictMode) {
565 return isolate->builtins()->StoreIC_PreMonomorphic_Strict(); 573 return isolate->builtins()->StoreIC_PreMonomorphic_Strict();
566 } else { 574 } else {
567 return isolate->builtins()->StoreIC_PreMonomorphic(); 575 return isolate->builtins()->StoreIC_PreMonomorphic();
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
670 return pre_monomorphic_stub(isolate(), strict_mode()); 678 return pre_monomorphic_stub(isolate(), strict_mode());
671 } 679 }
672 static Handle<Code> pre_monomorphic_stub(Isolate* isolate, 680 static Handle<Code> pre_monomorphic_stub(Isolate* isolate,
673 StrictModeFlag strict_mode) { 681 StrictModeFlag strict_mode) {
674 if (strict_mode == kStrictMode) { 682 if (strict_mode == kStrictMode) {
675 return isolate->builtins()->KeyedStoreIC_PreMonomorphic_Strict(); 683 return isolate->builtins()->KeyedStoreIC_PreMonomorphic_Strict();
676 } else { 684 } else {
677 return isolate->builtins()->KeyedStoreIC_PreMonomorphic(); 685 return isolate->builtins()->KeyedStoreIC_PreMonomorphic();
678 } 686 }
679 } 687 }
688 virtual Handle<Code> slow_stub() const {
689 if (strict_mode() == kStrictMode) {
690 return isolate()->builtins()->KeyedStoreIC_Slow_Strict();
691 } else {
692 return isolate()->builtins()->KeyedStoreIC_Slow();
693 }
694 }
680 virtual Handle<Code> megamorphic_stub() { 695 virtual Handle<Code> megamorphic_stub() {
681 if (strict_mode() == kStrictMode) { 696 if (strict_mode() == kStrictMode) {
682 return isolate()->builtins()->KeyedStoreIC_Generic_Strict(); 697 return isolate()->builtins()->KeyedStoreIC_Generic_Strict();
683 } else { 698 } else {
684 return isolate()->builtins()->KeyedStoreIC_Generic(); 699 return isolate()->builtins()->KeyedStoreIC_Generic();
685 } 700 }
686 } 701 }
687 702
688 Handle<Code> StoreElementStub(Handle<JSObject> receiver, 703 Handle<Code> StoreElementStub(Handle<JSObject> receiver,
689 KeyedAccessStoreMode store_mode); 704 KeyedAccessStoreMode store_mode);
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
858 DECLARE_RUNTIME_FUNCTION(MaybeObject*, StoreIC_MissFromStubFailure); 873 DECLARE_RUNTIME_FUNCTION(MaybeObject*, StoreIC_MissFromStubFailure);
859 DECLARE_RUNTIME_FUNCTION(MaybeObject*, ElementsTransitionAndStoreIC_Miss); 874 DECLARE_RUNTIME_FUNCTION(MaybeObject*, ElementsTransitionAndStoreIC_Miss);
860 DECLARE_RUNTIME_FUNCTION(MaybeObject*, BinaryOpIC_Miss); 875 DECLARE_RUNTIME_FUNCTION(MaybeObject*, BinaryOpIC_Miss);
861 DECLARE_RUNTIME_FUNCTION(MaybeObject*, CompareNilIC_Miss); 876 DECLARE_RUNTIME_FUNCTION(MaybeObject*, CompareNilIC_Miss);
862 DECLARE_RUNTIME_FUNCTION(MaybeObject*, ToBooleanIC_Miss); 877 DECLARE_RUNTIME_FUNCTION(MaybeObject*, ToBooleanIC_Miss);
863 878
864 879
865 } } // namespace v8::internal 880 } } // namespace v8::internal
866 881
867 #endif // V8_IC_H_ 882 #endif // V8_IC_H_
OLDNEW
« no previous file with comments | « src/builtins.cc ('k') | src/ic.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698