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

Side by Side Diff: src/interpreter/interpreter.cc

Issue 2580533002: [stubs] Remove CSA::INTEGER_PARAMETERS in favor of CSA::INTPTR_PARAMETERS. (Closed)
Patch Set: Addressing comments Created 4 years 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/ic/keyed-store-generic.cc ('k') | src/interpreter/interpreter-assembler.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 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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 #include "src/interpreter/interpreter.h" 5 #include "src/interpreter/interpreter.h"
6 6
7 #include <fstream> 7 #include <fstream>
8 #include <memory> 8 #include <memory>
9 9
10 #include "src/ast/prettyprinter.h" 10 #include "src/ast/prettyprinter.h"
(...skipping 866 matching lines...) Expand 10 before | Expand all | Expand 10 after
877 Label if_export(assembler), if_import(assembler), end(assembler); 877 Label if_export(assembler), if_import(assembler), end(assembler);
878 __ Branch(__ IntPtrGreaterThan(cell_index, __ IntPtrConstant(0)), &if_export, 878 __ Branch(__ IntPtrGreaterThan(cell_index, __ IntPtrConstant(0)), &if_export,
879 &if_import); 879 &if_import);
880 880
881 __ Bind(&if_export); 881 __ Bind(&if_export);
882 { 882 {
883 Node* regular_exports = 883 Node* regular_exports =
884 __ LoadObjectField(module, Module::kRegularExportsOffset); 884 __ LoadObjectField(module, Module::kRegularExportsOffset);
885 // The actual array index is (cell_index - 1). 885 // The actual array index is (cell_index - 1).
886 Node* export_index = __ IntPtrSub(cell_index, __ IntPtrConstant(1)); 886 Node* export_index = __ IntPtrSub(cell_index, __ IntPtrConstant(1));
887 Node* cell = __ LoadFixedArrayElement(regular_exports, export_index, 0, 887 Node* cell = __ LoadFixedArrayElement(regular_exports, export_index);
888 CodeStubAssembler::INTPTR_PARAMETERS);
889 __ SetAccumulator(__ LoadObjectField(cell, Cell::kValueOffset)); 888 __ SetAccumulator(__ LoadObjectField(cell, Cell::kValueOffset));
890 __ Goto(&end); 889 __ Goto(&end);
891 } 890 }
892 891
893 __ Bind(&if_import); 892 __ Bind(&if_import);
894 { 893 {
895 Node* regular_imports = 894 Node* regular_imports =
896 __ LoadObjectField(module, Module::kRegularImportsOffset); 895 __ LoadObjectField(module, Module::kRegularImportsOffset);
897 // The actual array index is (-cell_index - 1). 896 // The actual array index is (-cell_index - 1).
898 Node* import_index = __ IntPtrSub(__ IntPtrConstant(-1), cell_index); 897 Node* import_index = __ IntPtrSub(__ IntPtrConstant(-1), cell_index);
899 Node* cell = __ LoadFixedArrayElement(regular_imports, import_index, 0, 898 Node* cell = __ LoadFixedArrayElement(regular_imports, import_index);
900 CodeStubAssembler::INTPTR_PARAMETERS);
901 __ SetAccumulator(__ LoadObjectField(cell, Cell::kValueOffset)); 899 __ SetAccumulator(__ LoadObjectField(cell, Cell::kValueOffset));
902 __ Goto(&end); 900 __ Goto(&end);
903 } 901 }
904 902
905 __ Bind(&end); 903 __ Bind(&end);
906 __ Dispatch(); 904 __ Dispatch();
907 } 905 }
908 906
909 // StaModuleVariable <cell_index> <depth> 907 // StaModuleVariable <cell_index> <depth>
910 // 908 //
(...skipping 11 matching lines...) Expand all
922 Label if_export(assembler), if_import(assembler), end(assembler); 920 Label if_export(assembler), if_import(assembler), end(assembler);
923 __ Branch(__ IntPtrGreaterThan(cell_index, __ IntPtrConstant(0)), &if_export, 921 __ Branch(__ IntPtrGreaterThan(cell_index, __ IntPtrConstant(0)), &if_export,
924 &if_import); 922 &if_import);
925 923
926 __ Bind(&if_export); 924 __ Bind(&if_export);
927 { 925 {
928 Node* regular_exports = 926 Node* regular_exports =
929 __ LoadObjectField(module, Module::kRegularExportsOffset); 927 __ LoadObjectField(module, Module::kRegularExportsOffset);
930 // The actual array index is (cell_index - 1). 928 // The actual array index is (cell_index - 1).
931 Node* export_index = __ IntPtrSub(cell_index, __ IntPtrConstant(1)); 929 Node* export_index = __ IntPtrSub(cell_index, __ IntPtrConstant(1));
932 Node* cell = __ LoadFixedArrayElement(regular_exports, export_index, 0, 930 Node* cell = __ LoadFixedArrayElement(regular_exports, export_index);
933 CodeStubAssembler::INTPTR_PARAMETERS);
934 __ StoreObjectField(cell, Cell::kValueOffset, value); 931 __ StoreObjectField(cell, Cell::kValueOffset, value);
935 __ Goto(&end); 932 __ Goto(&end);
936 } 933 }
937 934
938 __ Bind(&if_import); 935 __ Bind(&if_import);
939 { 936 {
940 // Not supported (probably never). 937 // Not supported (probably never).
941 __ Abort(kUnsupportedModuleOperation); 938 __ Abort(kUnsupportedModuleOperation);
942 __ Goto(&end); 939 __ Goto(&end);
943 } 940 }
(...skipping 1767 matching lines...) Expand 10 before | Expand all | Expand 10 after
2711 __ Dispatch(); 2708 __ Dispatch();
2712 } 2709 }
2713 __ Bind(&if_slow); 2710 __ Bind(&if_slow);
2714 { 2711 {
2715 // Record the fact that we hit the for-in slow path. 2712 // Record the fact that we hit the for-in slow path.
2716 Node* vector_index = __ BytecodeOperandIdx(3); 2713 Node* vector_index = __ BytecodeOperandIdx(3);
2717 Node* type_feedback_vector = __ LoadTypeFeedbackVector(); 2714 Node* type_feedback_vector = __ LoadTypeFeedbackVector();
2718 Node* megamorphic_sentinel = 2715 Node* megamorphic_sentinel =
2719 __ HeapConstant(TypeFeedbackVector::MegamorphicSentinel(isolate_)); 2716 __ HeapConstant(TypeFeedbackVector::MegamorphicSentinel(isolate_));
2720 __ StoreFixedArrayElement(type_feedback_vector, vector_index, 2717 __ StoreFixedArrayElement(type_feedback_vector, vector_index,
2721 megamorphic_sentinel, SKIP_WRITE_BARRIER, 0, 2718 megamorphic_sentinel, SKIP_WRITE_BARRIER);
2722 CodeStubAssembler::INTPTR_PARAMETERS);
2723 2719
2724 // Need to filter the {key} for the {receiver}. 2720 // Need to filter the {key} for the {receiver}.
2725 Node* context = __ GetContext(); 2721 Node* context = __ GetContext();
2726 Callable callable = CodeFactory::ForInFilter(assembler->isolate()); 2722 Callable callable = CodeFactory::ForInFilter(assembler->isolate());
2727 Node* result = __ CallStub(callable, context, key, receiver); 2723 Node* result = __ CallStub(callable, context, key, receiver);
2728 __ SetAccumulator(result); 2724 __ SetAccumulator(result);
2729 __ Dispatch(); 2725 __ Dispatch();
2730 } 2726 }
2731 } 2727 }
2732 2728
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
2856 __ StoreObjectField(generator, JSGeneratorObject::kContinuationOffset, 2852 __ StoreObjectField(generator, JSGeneratorObject::kContinuationOffset,
2857 __ SmiTag(new_state)); 2853 __ SmiTag(new_state));
2858 __ SetAccumulator(old_state); 2854 __ SetAccumulator(old_state);
2859 2855
2860 __ Dispatch(); 2856 __ Dispatch();
2861 } 2857 }
2862 2858
2863 } // namespace interpreter 2859 } // namespace interpreter
2864 } // namespace internal 2860 } // namespace internal
2865 } // namespace v8 2861 } // namespace v8
OLDNEW
« no previous file with comments | « src/ic/keyed-store-generic.cc ('k') | src/interpreter/interpreter-assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698