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 975 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
986 // TODO(rmcilroy): List of things not currently dealt with here but done in | 986 // TODO(rmcilroy): List of things not currently dealt with here but done in |
987 // fullcodegen's EmitReturnSequence. | 987 // fullcodegen's EmitReturnSequence. |
988 // - Supporting FLAG_trace for Runtime::TraceExit. | 988 // - Supporting FLAG_trace for Runtime::TraceExit. |
989 // - Support profiler (specifically decrementing profiling_counter | 989 // - Support profiler (specifically decrementing profiling_counter |
990 // appropriately and calling out to HandleInterrupts if necessary). | 990 // appropriately and calling out to HandleInterrupts if necessary). |
991 | 991 |
992 // The return value is in accumulator, which is already in v0. | 992 // The return value is in accumulator, which is already in v0. |
993 | 993 |
994 // Leave the frame (also dropping the register file). | 994 // Leave the frame (also dropping the register file). |
995 __ LeaveFrame(StackFrame::JAVA_SCRIPT); | 995 __ LeaveFrame(StackFrame::JAVA_SCRIPT); |
996 // Drop receiver + arguments. | 996 |
997 __ Drop(1); // TODO(rmcilroy): Get number of arguments from BytecodeArray. | 997 // Drop receiver + arguments and return. |
| 998 __ lw(at, FieldMemOperand(kInterpreterBytecodeArrayRegister, |
| 999 BytecodeArray::kParameterSizeOffset)); |
| 1000 __ Daddu(sp, sp, at); |
998 __ Jump(ra); | 1001 __ Jump(ra); |
999 } | 1002 } |
1000 | 1003 |
1001 | 1004 |
1002 void Builtins::Generate_CompileLazy(MacroAssembler* masm) { | 1005 void Builtins::Generate_CompileLazy(MacroAssembler* masm) { |
1003 CallRuntimePassFunction(masm, Runtime::kCompileLazy); | 1006 CallRuntimePassFunction(masm, Runtime::kCompileLazy); |
1004 GenerateTailCallToReturnedCode(masm); | 1007 GenerateTailCallToReturnedCode(masm); |
1005 } | 1008 } |
1006 | 1009 |
1007 | 1010 |
(...skipping 866 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1874 } | 1877 } |
1875 } | 1878 } |
1876 | 1879 |
1877 | 1880 |
1878 #undef __ | 1881 #undef __ |
1879 | 1882 |
1880 } // namespace internal | 1883 } // namespace internal |
1881 } // namespace v8 | 1884 } // namespace v8 |
1882 | 1885 |
1883 #endif // V8_TARGET_ARCH_MIPS64 | 1886 #endif // V8_TARGET_ARCH_MIPS64 |
OLD | NEW |