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_X64_LITHIUM_CODEGEN_X64_H_ | 5 #ifndef V8_X64_LITHIUM_CODEGEN_X64_H_ |
6 #define V8_X64_LITHIUM_CODEGEN_X64_H_ | 6 #define V8_X64_LITHIUM_CODEGEN_X64_H_ |
7 | 7 |
8 #include "src/x64/lithium-x64.h" | 8 #include "src/x64/lithium-x64.h" |
9 | 9 |
10 #include "src/base/logging.h" | 10 #include "src/base/logging.h" |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
181 CallRuntime(function, num_arguments, instr); | 181 CallRuntime(function, num_arguments, instr); |
182 } | 182 } |
183 | 183 |
184 void CallRuntimeFromDeferred(Runtime::FunctionId id, | 184 void CallRuntimeFromDeferred(Runtime::FunctionId id, |
185 int argc, | 185 int argc, |
186 LInstruction* instr, | 186 LInstruction* instr, |
187 LOperand* context); | 187 LOperand* context); |
188 | 188 |
189 void LoadContextFromDeferred(LOperand* context); | 189 void LoadContextFromDeferred(LOperand* context); |
190 | 190 |
191 enum RDIState { | |
192 RDI_UNINITIALIZED, | |
193 RDI_CONTAINS_TARGET | |
194 }; | |
195 | |
196 // Generate a direct call to a known function. Expects the function | 191 // Generate a direct call to a known function. Expects the function |
197 // to be in rdi. | 192 // to be in rdi. |
198 void CallKnownFunction(Handle<JSFunction> function, | 193 void CallKnownFunction(Handle<JSFunction> function, |
199 int formal_parameter_count, | 194 int formal_parameter_count, int arity, |
200 int arity, | 195 LInstruction* instr); |
201 LInstruction* instr, | |
202 RDIState rdi_state); | |
203 | 196 |
204 void RecordSafepointWithLazyDeopt(LInstruction* instr, | 197 void RecordSafepointWithLazyDeopt(LInstruction* instr, |
205 SafepointMode safepoint_mode, | 198 SafepointMode safepoint_mode, |
206 int argc); | 199 int argc); |
207 void RegisterEnvironmentForDeoptimization(LEnvironment* environment, | 200 void RegisterEnvironmentForDeoptimization(LEnvironment* environment, |
208 Safepoint::DeoptMode mode); | 201 Safepoint::DeoptMode mode); |
209 void DeoptimizeIf(Condition cc, LInstruction* instr, const char* detail, | 202 void DeoptimizeIf(Condition cc, LInstruction* instr, const char* detail, |
210 Deoptimizer::BailoutType bailout_type); | 203 Deoptimizer::BailoutType bailout_type); |
211 void DeoptimizeIf(Condition cc, LInstruction* instr, const char* detail); | 204 void DeoptimizeIf(Condition cc, LInstruction* instr, const char* detail); |
212 | 205 |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 Label entry_; | 387 Label entry_; |
395 Label exit_; | 388 Label exit_; |
396 Label done_; | 389 Label done_; |
397 Label* external_exit_; | 390 Label* external_exit_; |
398 int instruction_index_; | 391 int instruction_index_; |
399 }; | 392 }; |
400 | 393 |
401 } } // namespace v8::internal | 394 } } // namespace v8::internal |
402 | 395 |
403 #endif // V8_X64_LITHIUM_CODEGEN_X64_H_ | 396 #endif // V8_X64_LITHIUM_CODEGEN_X64_H_ |
OLD | NEW |