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

Side by Side Diff: src/mips64/builtins-mips64.cc

Issue 1379933003: Revert of [Interpreter] Add CallRuntime support to the interpreter. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 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
« no previous file with comments | « src/mips/interface-descriptors-mips.cc ('k') | src/mips64/code-stubs-mips64.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 #if V8_TARGET_ARCH_MIPS64 5 #if V8_TARGET_ARCH_MIPS64
6 6
7 #include "src/codegen.h" 7 #include "src/codegen.h"
8 #include "src/debug/debug.h" 8 #include "src/debug/debug.h"
9 #include "src/deoptimizer.h" 9 #include "src/deoptimizer.h"
10 #include "src/full-codegen/full-codegen.h" 10 #include "src/full-codegen/full-codegen.h"
(...skipping 942 matching lines...) Expand 10 before | Expand all | Expand 10 after
953 __ LeaveFrame(StackFrame::JAVA_SCRIPT); 953 __ LeaveFrame(StackFrame::JAVA_SCRIPT);
954 954
955 // Drop receiver + arguments and return. 955 // Drop receiver + arguments and return.
956 __ lw(at, FieldMemOperand(kInterpreterBytecodeArrayRegister, 956 __ lw(at, FieldMemOperand(kInterpreterBytecodeArrayRegister,
957 BytecodeArray::kParameterSizeOffset)); 957 BytecodeArray::kParameterSizeOffset));
958 __ Daddu(sp, sp, at); 958 __ Daddu(sp, sp, at);
959 __ Jump(ra); 959 __ Jump(ra);
960 } 960 }
961 961
962 962
963 // static
964 void Builtins::Generate_InterpreterPushArgsAndCall(MacroAssembler* masm) {
965 // ----------- S t a t e -------------
966 // -- a0 : the number of arguments (not including the receiver)
967 // -- a2 : the address of the first argument to be pushed. Subsequent
968 // arguments should be consecutive above this, in the same order as
969 // they are to be pushed onto the stack.
970 // -- a1 : the target to call (can be any Object).
971
972 // Find the address of the last argument.
973 __ Addu(a3, a0, Operand(1)); // Add one for receiver.
974 __ sll(a3, a3, kPointerSizeLog2);
975 __ Subu(a3, a2, Operand(a3));
976
977 // Push the arguments.
978 Label loop_header, loop_check;
979 __ Branch(&loop_check);
980 __ bind(&loop_header);
981 __ lw(t0, MemOperand(a2));
982 __ Addu(a2, a2, Operand(-kPointerSize));
983 __ push(t0);
984 __ bind(&loop_check);
985 __ Branch(&loop_header, gt, a2, Operand(a3));
986
987 // Call the target.
988 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
989 }
990
991
992 void Builtins::Generate_CompileLazy(MacroAssembler* masm) { 963 void Builtins::Generate_CompileLazy(MacroAssembler* masm) {
993 CallRuntimePassFunction(masm, Runtime::kCompileLazy); 964 CallRuntimePassFunction(masm, Runtime::kCompileLazy);
994 GenerateTailCallToReturnedCode(masm); 965 GenerateTailCallToReturnedCode(masm);
995 } 966 }
996 967
997 968
998 static void CallCompileOptimized(MacroAssembler* masm, bool concurrent) { 969 static void CallCompileOptimized(MacroAssembler* masm, bool concurrent) {
999 FrameScope scope(masm, StackFrame::INTERNAL); 970 FrameScope scope(masm, StackFrame::INTERNAL);
1000 // Push a copy of the function onto the stack. 971 // Push a copy of the function onto the stack.
1001 // Push function as parameter to the runtime call. 972 // Push function as parameter to the runtime call.
(...skipping 726 matching lines...) Expand 10 before | Expand all | Expand 10 after
1728 // method. 1699 // method.
1729 __ bind(&non_constructor); 1700 __ bind(&non_constructor);
1730 { 1701 {
1731 FrameScope scope(masm, StackFrame::INTERNAL); 1702 FrameScope scope(masm, StackFrame::INTERNAL);
1732 __ Push(a1); 1703 __ Push(a1);
1733 __ CallRuntime(Runtime::kThrowCalledNonCallable, 1); 1704 __ CallRuntime(Runtime::kThrowCalledNonCallable, 1);
1734 } 1705 }
1735 } 1706 }
1736 1707
1737 1708
1709 // static
1710 void Builtins::Generate_PushArgsAndCall(MacroAssembler* masm) {
1711 // ----------- S t a t e -------------
1712 // -- a0 : the number of arguments (not including the receiver)
1713 // -- a2 : the address of the first argument to be pushed. Subsequent
1714 // arguments should be consecutive above this, in the same order as
1715 // they are to be pushed onto the stack.
1716 // -- a1 : the target to call (can be any Object).
1717
1718 // Find the address of the last argument.
1719 __ Daddu(a3, a0, Operand(1)); // Add one for receiver.
1720 __ dsll(a3, a3, kPointerSizeLog2);
1721 __ Dsubu(a3, a2, Operand(a3));
1722
1723 // Push the arguments.
1724 Label loop_header, loop_check;
1725 __ Branch(&loop_check);
1726 __ bind(&loop_header);
1727 __ ld(a4, MemOperand(a2));
1728 __ Daddu(a2, a2, Operand(-kPointerSize));
1729 __ push(a4);
1730 __ bind(&loop_check);
1731 __ Branch(&loop_header, gt, a2, Operand(a3));
1732
1733 // Call the target.
1734 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
1735 }
1736
1737
1738 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) { 1738 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
1739 // State setup as expected by MacroAssembler::InvokePrologue. 1739 // State setup as expected by MacroAssembler::InvokePrologue.
1740 // ----------- S t a t e ------------- 1740 // ----------- S t a t e -------------
1741 // -- a0: actual arguments count 1741 // -- a0: actual arguments count
1742 // -- a1: function (passed through to callee) 1742 // -- a1: function (passed through to callee)
1743 // -- a2: expected arguments count 1743 // -- a2: expected arguments count
1744 // ----------------------------------- 1744 // -----------------------------------
1745 1745
1746 Label stack_overflow; 1746 Label stack_overflow;
1747 ArgumentAdaptorStackCheck(masm, &stack_overflow); 1747 ArgumentAdaptorStackCheck(masm, &stack_overflow);
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
1887 } 1887 }
1888 } 1888 }
1889 1889
1890 1890
1891 #undef __ 1891 #undef __
1892 1892
1893 } // namespace internal 1893 } // namespace internal
1894 } // namespace v8 1894 } // namespace v8
1895 1895
1896 #endif // V8_TARGET_ARCH_MIPS64 1896 #endif // V8_TARGET_ARCH_MIPS64
OLDNEW
« no previous file with comments | « src/mips/interface-descriptors-mips.cc ('k') | src/mips64/code-stubs-mips64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698