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

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

Issue 1880413002: Revert of [stubs] Introduce LeftShift, SignedRightShift and UnsignedRightShift stubs. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 8 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/compiler/code-stub-assembler.cc ('k') | no next file » | 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 8
9 #include "src/ast/prettyprinter.h" 9 #include "src/ast/prettyprinter.h"
10 #include "src/code-factory.h" 10 #include "src/code-factory.h"
(...skipping 751 matching lines...) Expand 10 before | Expand all | Expand 10 after
762 } 762 }
763 763
764 764
765 // ShiftLeft <src> 765 // ShiftLeft <src>
766 // 766 //
767 // Left shifts register <src> by the count specified in the accumulator. 767 // Left shifts register <src> by the count specified in the accumulator.
768 // Register <src> is converted to an int32 and the accumulator to uint32 768 // Register <src> is converted to an int32 and the accumulator to uint32
769 // before the operation. 5 lsb bits from the accumulator are used as count 769 // before the operation. 5 lsb bits from the accumulator are used as count
770 // i.e. <src> << (accumulator & 0x1F). 770 // i.e. <src> << (accumulator & 0x1F).
771 void Interpreter::DoShiftLeft(InterpreterAssembler* assembler) { 771 void Interpreter::DoShiftLeft(InterpreterAssembler* assembler) {
772 DoBinaryOp(CodeFactory::ShiftLeft(isolate_), assembler); 772 DoBinaryOp(Runtime::kShiftLeft, assembler);
773 } 773 }
774 774
775 775
776 // ShiftRight <src> 776 // ShiftRight <src>
777 // 777 //
778 // Right shifts register <src> by the count specified in the accumulator. 778 // Right shifts register <src> by the count specified in the accumulator.
779 // Result is sign extended. Register <src> is converted to an int32 and the 779 // Result is sign extended. Register <src> is converted to an int32 and the
780 // accumulator to uint32 before the operation. 5 lsb bits from the accumulator 780 // accumulator to uint32 before the operation. 5 lsb bits from the accumulator
781 // are used as count i.e. <src> >> (accumulator & 0x1F). 781 // are used as count i.e. <src> >> (accumulator & 0x1F).
782 void Interpreter::DoShiftRight(InterpreterAssembler* assembler) { 782 void Interpreter::DoShiftRight(InterpreterAssembler* assembler) {
783 DoBinaryOp(CodeFactory::ShiftRight(isolate_), assembler); 783 DoBinaryOp(Runtime::kShiftRight, assembler);
784 } 784 }
785 785
786 786
787 // ShiftRightLogical <src> 787 // ShiftRightLogical <src>
788 // 788 //
789 // Right Shifts register <src> by the count specified in the accumulator. 789 // Right Shifts register <src> by the count specified in the accumulator.
790 // Result is zero-filled. The accumulator and register <src> are converted to 790 // Result is zero-filled. The accumulator and register <src> are converted to
791 // uint32 before the operation 5 lsb bits from the accumulator are used as 791 // uint32 before the operation 5 lsb bits from the accumulator are used as
792 // count i.e. <src> << (accumulator & 0x1F). 792 // count i.e. <src> << (accumulator & 0x1F).
793 void Interpreter::DoShiftRightLogical(InterpreterAssembler* assembler) { 793 void Interpreter::DoShiftRightLogical(InterpreterAssembler* assembler) {
794 DoBinaryOp(CodeFactory::ShiftRightLogical(isolate_), assembler); 794 DoBinaryOp(Runtime::kShiftRightLogical, assembler);
795 } 795 }
796 796
797 void Interpreter::DoCountOp(Runtime::FunctionId function_id, 797 void Interpreter::DoCountOp(Runtime::FunctionId function_id,
798 InterpreterAssembler* assembler) { 798 InterpreterAssembler* assembler) {
799 Node* value = __ GetAccumulator(); 799 Node* value = __ GetAccumulator();
800 Node* one = __ NumberConstant(1); 800 Node* one = __ NumberConstant(1);
801 Node* context = __ GetContext(); 801 Node* context = __ GetContext();
802 Node* result = __ CallRuntime(function_id, context, value, one); 802 Node* result = __ CallRuntime(function_id, context, value, one);
803 __ SetAccumulator(result); 803 __ SetAccumulator(result);
804 __ Dispatch(); 804 __ Dispatch();
(...skipping 866 matching lines...) Expand 10 before | Expand all | Expand 10 after
1671 // Illegal 1671 // Illegal
1672 // 1672 //
1673 // An invalid bytecode aborting execution if dispatched. 1673 // An invalid bytecode aborting execution if dispatched.
1674 void Interpreter::DoIllegal(InterpreterAssembler* assembler) { 1674 void Interpreter::DoIllegal(InterpreterAssembler* assembler) {
1675 __ Abort(kInvalidBytecode); 1675 __ Abort(kInvalidBytecode);
1676 } 1676 }
1677 1677
1678 } // namespace interpreter 1678 } // namespace interpreter
1679 } // namespace internal 1679 } // namespace internal
1680 } // namespace v8 1680 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/code-stub-assembler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698