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 #ifndef V8_CRANKSHAFT_PPC_LITHIUM_CODEGEN_PPC_H_ | 5 #ifndef V8_CRANKSHAFT_PPC_LITHIUM_CODEGEN_PPC_H_ |
6 #define V8_CRANKSHAFT_PPC_LITHIUM_CODEGEN_PPC_H_ | 6 #define V8_CRANKSHAFT_PPC_LITHIUM_CODEGEN_PPC_H_ |
7 | 7 |
8 #include "src/ast/scopes.h" | 8 #include "src/ast/scopes.h" |
9 #include "src/crankshaft/lithium-codegen.h" | 9 #include "src/crankshaft/lithium-codegen.h" |
10 #include "src/crankshaft/ppc/lithium-gap-resolver-ppc.h" | 10 #include "src/crankshaft/ppc/lithium-gap-resolver-ppc.h" |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
187 | 187 |
188 void CallRuntime(Runtime::FunctionId id, LInstruction* instr) { | 188 void CallRuntime(Runtime::FunctionId id, LInstruction* instr) { |
189 const Runtime::Function* function = Runtime::FunctionForId(id); | 189 const Runtime::Function* function = Runtime::FunctionForId(id); |
190 CallRuntime(function, function->nargs, instr); | 190 CallRuntime(function, function->nargs, instr); |
191 } | 191 } |
192 | 192 |
193 void LoadContextFromDeferred(LOperand* context); | 193 void LoadContextFromDeferred(LOperand* context); |
194 void CallRuntimeFromDeferred(Runtime::FunctionId id, int argc, | 194 void CallRuntimeFromDeferred(Runtime::FunctionId id, int argc, |
195 LInstruction* instr, LOperand* context); | 195 LInstruction* instr, LOperand* context); |
196 | 196 |
| 197 void PrepareForTailCall(const ParameterCount& actual, Register scratch1, |
| 198 Register scratch2, Register scratch3); |
| 199 |
197 // Generate a direct call to a known function. Expects the function | 200 // Generate a direct call to a known function. Expects the function |
198 // to be in r4. | 201 // to be in r4. |
199 void CallKnownFunction(Handle<JSFunction> function, | 202 void CallKnownFunction(Handle<JSFunction> function, |
200 int formal_parameter_count, int arity, | 203 int formal_parameter_count, int arity, |
201 LInstruction* instr); | 204 bool is_tail_call, LInstruction* instr); |
202 | 205 |
203 void RecordSafepointWithLazyDeopt(LInstruction* instr, | 206 void RecordSafepointWithLazyDeopt(LInstruction* instr, |
204 SafepointMode safepoint_mode); | 207 SafepointMode safepoint_mode); |
205 | 208 |
206 void RegisterEnvironmentForDeoptimization(LEnvironment* environment, | 209 void RegisterEnvironmentForDeoptimization(LEnvironment* environment, |
207 Safepoint::DeoptMode mode); | 210 Safepoint::DeoptMode mode); |
208 void DeoptimizeIf(Condition condition, LInstruction* instr, | 211 void DeoptimizeIf(Condition condition, LInstruction* instr, |
209 Deoptimizer::DeoptReason deopt_reason, | 212 Deoptimizer::DeoptReason deopt_reason, |
210 Deoptimizer::BailoutType bailout_type, CRegister cr = cr7); | 213 Deoptimizer::BailoutType bailout_type, CRegister cr = cr7); |
211 void DeoptimizeIf(Condition condition, LInstruction* instr, | 214 void DeoptimizeIf(Condition condition, LInstruction* instr, |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 LCodeGen* codegen_; | 353 LCodeGen* codegen_; |
351 Label entry_; | 354 Label entry_; |
352 Label exit_; | 355 Label exit_; |
353 Label* external_exit_; | 356 Label* external_exit_; |
354 int instruction_index_; | 357 int instruction_index_; |
355 }; | 358 }; |
356 } // namespace internal | 359 } // namespace internal |
357 } // namespace v8 | 360 } // namespace v8 |
358 | 361 |
359 #endif // V8_CRANKSHAFT_PPC_LITHIUM_CODEGEN_PPC_H_ | 362 #endif // V8_CRANKSHAFT_PPC_LITHIUM_CODEGEN_PPC_H_ |
OLD | NEW |