OLD | NEW |
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 952 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
963 // static | 963 // static |
964 void Builtins::Generate_InterpreterPushArgsAndCall(MacroAssembler* masm) { | 964 void Builtins::Generate_InterpreterPushArgsAndCall(MacroAssembler* masm) { |
965 // ----------- S t a t e ------------- | 965 // ----------- S t a t e ------------- |
966 // -- a0 : the number of arguments (not including the receiver) | 966 // -- a0 : the number of arguments (not including the receiver) |
967 // -- a2 : the address of the first argument to be pushed. Subsequent | 967 // -- a2 : the address of the first argument to be pushed. Subsequent |
968 // arguments should be consecutive above this, in the same order as | 968 // arguments should be consecutive above this, in the same order as |
969 // they are to be pushed onto the stack. | 969 // they are to be pushed onto the stack. |
970 // -- a1 : the target to call (can be any Object). | 970 // -- a1 : the target to call (can be any Object). |
971 | 971 |
972 // Find the address of the last argument. | 972 // Find the address of the last argument. |
973 __ Addu(a3, a0, Operand(1)); // Add one for receiver. | 973 __ Daddu(a3, a0, Operand(1)); // Add one for receiver. |
974 __ sll(a3, a3, kPointerSizeLog2); | 974 __ dsll(a3, a3, kPointerSizeLog2); |
975 __ Subu(a3, a2, Operand(a3)); | 975 __ Dsubu(a3, a2, Operand(a3)); |
976 | 976 |
977 // Push the arguments. | 977 // Push the arguments. |
978 Label loop_header, loop_check; | 978 Label loop_header, loop_check; |
979 __ Branch(&loop_check); | 979 __ Branch(&loop_check); |
980 __ bind(&loop_header); | 980 __ bind(&loop_header); |
981 __ lw(t0, MemOperand(a2)); | 981 __ ld(t0, MemOperand(a2)); |
982 __ Addu(a2, a2, Operand(-kPointerSize)); | 982 __ Daddu(a2, a2, Operand(-kPointerSize)); |
983 __ push(t0); | 983 __ push(t0); |
984 __ bind(&loop_check); | 984 __ bind(&loop_check); |
985 __ Branch(&loop_header, gt, a2, Operand(a3)); | 985 __ Branch(&loop_header, gt, a2, Operand(a3)); |
986 | 986 |
987 // Call the target. | 987 // Call the target. |
988 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET); | 988 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET); |
989 } | 989 } |
990 | 990 |
991 | 991 |
992 void Builtins::Generate_CompileLazy(MacroAssembler* masm) { | 992 void Builtins::Generate_CompileLazy(MacroAssembler* masm) { |
(...skipping 894 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 |
OLD | NEW |