| 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 |