OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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_PPC | 5 #if V8_TARGET_ARCH_PPC |
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 1118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1129 Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::SOFT); | 1129 Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::SOFT); |
1130 } | 1130 } |
1131 | 1131 |
1132 | 1132 |
1133 void Builtins::Generate_InterpreterNotifyLazyDeoptimized(MacroAssembler* masm) { | 1133 void Builtins::Generate_InterpreterNotifyLazyDeoptimized(MacroAssembler* masm) { |
1134 Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::LAZY); | 1134 Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::LAZY); |
1135 } | 1135 } |
1136 | 1136 |
1137 | 1137 |
1138 void Builtins::Generate_InterpreterEnterExceptionHandler(MacroAssembler* masm) { | 1138 void Builtins::Generate_InterpreterEnterExceptionHandler(MacroAssembler* masm) { |
| 1139 // Set the address of the interpreter entry trampoline as a return address. |
| 1140 // This simulates the initial call to bytecode handlers in interpreter entry |
| 1141 // trampoline. The return will never actually be taken, but our stack walker |
| 1142 // uses this address to determine whether a frame is interpreted. |
| 1143 __ mov(r0, |
| 1144 Operand(masm->isolate()->builtins()->InterpreterEntryTrampoline())); |
| 1145 __ mtlr(r0); |
| 1146 |
1139 Generate_EnterBytecodeDispatch(masm); | 1147 Generate_EnterBytecodeDispatch(masm); |
1140 } | 1148 } |
1141 | 1149 |
1142 | 1150 |
1143 void Builtins::Generate_CompileLazy(MacroAssembler* masm) { | 1151 void Builtins::Generate_CompileLazy(MacroAssembler* masm) { |
1144 CallRuntimePassFunction(masm, Runtime::kCompileLazy); | 1152 CallRuntimePassFunction(masm, Runtime::kCompileLazy); |
1145 GenerateTailCallToReturnedCode(masm); | 1153 GenerateTailCallToReturnedCode(masm); |
1146 } | 1154 } |
1147 | 1155 |
1148 | 1156 |
(...skipping 1381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2530 __ bkpt(0); | 2538 __ bkpt(0); |
2531 } | 2539 } |
2532 } | 2540 } |
2533 | 2541 |
2534 | 2542 |
2535 #undef __ | 2543 #undef __ |
2536 } // namespace internal | 2544 } // namespace internal |
2537 } // namespace v8 | 2545 } // namespace v8 |
2538 | 2546 |
2539 #endif // V8_TARGET_ARCH_PPC | 2547 #endif // V8_TARGET_ARCH_PPC |
OLD | NEW |