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 #ifndef V8_CRANKSHAFT_X87_LITHIUM_CODEGEN_X87_H_ | 5 #ifndef V8_CRANKSHAFT_X87_LITHIUM_CODEGEN_X87_H_ |
6 #define V8_CRANKSHAFT_X87_LITHIUM_CODEGEN_X87_H_ | 6 #define V8_CRANKSHAFT_X87_LITHIUM_CODEGEN_X87_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 | 9 |
10 #include "src/ast/scopes.h" | 10 #include "src/ast/scopes.h" |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
212 CallRuntime(function, function->nargs, instr); | 212 CallRuntime(function, function->nargs, instr); |
213 } | 213 } |
214 | 214 |
215 void CallRuntimeFromDeferred(Runtime::FunctionId id, | 215 void CallRuntimeFromDeferred(Runtime::FunctionId id, |
216 int argc, | 216 int argc, |
217 LInstruction* instr, | 217 LInstruction* instr, |
218 LOperand* context); | 218 LOperand* context); |
219 | 219 |
220 void LoadContextFromDeferred(LOperand* context); | 220 void LoadContextFromDeferred(LOperand* context); |
221 | 221 |
222 // Generate a direct call to a known function. Expects the function | 222 void PrepareForTailCall(const ParameterCount& actual, Register scratch1, |
| 223 Register scratch2, Register scratch3); |
| 224 |
| 225 // Generate a direct call to a known function. Expects the function |
223 // to be in edi. | 226 // to be in edi. |
224 void CallKnownFunction(Handle<JSFunction> function, | 227 void CallKnownFunction(Handle<JSFunction> function, |
225 int formal_parameter_count, int arity, | 228 int formal_parameter_count, int arity, |
226 LInstruction* instr); | 229 bool is_tail_call, LInstruction* instr); |
227 | 230 |
228 void RecordSafepointWithLazyDeopt(LInstruction* instr, | 231 void RecordSafepointWithLazyDeopt(LInstruction* instr, |
229 SafepointMode safepoint_mode); | 232 SafepointMode safepoint_mode); |
230 | 233 |
231 void RegisterEnvironmentForDeoptimization(LEnvironment* environment, | 234 void RegisterEnvironmentForDeoptimization(LEnvironment* environment, |
232 Safepoint::DeoptMode mode); | 235 Safepoint::DeoptMode mode); |
233 void DeoptimizeIf(Condition cc, LInstruction* instr, | 236 void DeoptimizeIf(Condition cc, LInstruction* instr, |
234 Deoptimizer::DeoptReason deopt_reason, | 237 Deoptimizer::DeoptReason deopt_reason, |
235 Deoptimizer::BailoutType bailout_type); | 238 Deoptimizer::BailoutType bailout_type); |
236 void DeoptimizeIf(Condition cc, LInstruction* instr, | 239 void DeoptimizeIf(Condition cc, LInstruction* instr, |
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
486 Label* external_exit_; | 489 Label* external_exit_; |
487 Label done_; | 490 Label done_; |
488 int instruction_index_; | 491 int instruction_index_; |
489 LCodeGen::X87Stack x87_stack_; | 492 LCodeGen::X87Stack x87_stack_; |
490 }; | 493 }; |
491 | 494 |
492 } // namespace internal | 495 } // namespace internal |
493 } // namespace v8 | 496 } // namespace v8 |
494 | 497 |
495 #endif // V8_CRANKSHAFT_X87_LITHIUM_CODEGEN_X87_H_ | 498 #endif // V8_CRANKSHAFT_X87_LITHIUM_CODEGEN_X87_H_ |
OLD | NEW |