| 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_MIPS | 5 #if V8_TARGET_ARCH_MIPS |
| 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 1572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1583 static void Generate_NotifyStubFailureHelper(MacroAssembler* masm, | 1583 static void Generate_NotifyStubFailureHelper(MacroAssembler* masm, |
| 1584 SaveFPRegsMode save_doubles) { | 1584 SaveFPRegsMode save_doubles) { |
| 1585 { | 1585 { |
| 1586 FrameScope scope(masm, StackFrame::INTERNAL); | 1586 FrameScope scope(masm, StackFrame::INTERNAL); |
| 1587 | 1587 |
| 1588 // Preserve registers across notification, this is important for compiled | 1588 // Preserve registers across notification, this is important for compiled |
| 1589 // stubs that tail call the runtime on deopts passing their parameters in | 1589 // stubs that tail call the runtime on deopts passing their parameters in |
| 1590 // registers. | 1590 // registers. |
| 1591 __ MultiPush(kJSCallerSaved | kCalleeSaved); | 1591 __ MultiPush(kJSCallerSaved | kCalleeSaved); |
| 1592 // Pass the function and deoptimization type to the runtime system. | 1592 // Pass the function and deoptimization type to the runtime system. |
| 1593 __ CallRuntime(Runtime::kNotifyStubFailure, save_doubles); | 1593 __ CallRuntime(Runtime::kNotifyBuiltinContinuation, save_doubles); |
| 1594 __ MultiPop(kJSCallerSaved | kCalleeSaved); | 1594 __ MultiPop(kJSCallerSaved | kCalleeSaved); |
| 1595 } | 1595 } |
| 1596 | 1596 |
| 1597 __ Addu(sp, sp, Operand(kPointerSize)); // Ignore state | 1597 __ Addu(sp, sp, Operand(kPointerSize)); // Ignore state |
| 1598 __ Jump(ra); // Jump to miss handler | 1598 __ Jump(ra); // Jump to miss handler |
| 1599 } | 1599 } |
| 1600 | 1600 |
| 1601 void Builtins::Generate_NotifyStubFailure(MacroAssembler* masm) { | 1601 void Builtins::Generate_NotifyStubFailure(MacroAssembler* masm) { |
| 1602 Generate_NotifyStubFailureHelper(masm, kDontSaveFPRegs); | 1602 Generate_NotifyStubFailureHelper(masm, kDontSaveFPRegs); |
| 1603 } | 1603 } |
| (...skipping 1472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3076 // Now jump to the instructions of the returned code object. | 3076 // Now jump to the instructions of the returned code object. |
| 3077 __ Jump(at, v0, Code::kHeaderSize - kHeapObjectTag); | 3077 __ Jump(at, v0, Code::kHeaderSize - kHeapObjectTag); |
| 3078 } | 3078 } |
| 3079 | 3079 |
| 3080 #undef __ | 3080 #undef __ |
| 3081 | 3081 |
| 3082 } // namespace internal | 3082 } // namespace internal |
| 3083 } // namespace v8 | 3083 } // namespace v8 |
| 3084 | 3084 |
| 3085 #endif // V8_TARGET_ARCH_MIPS | 3085 #endif // V8_TARGET_ARCH_MIPS |
| OLD | NEW |