| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 | 186 |
| 187 void CallRuntime(Runtime::FunctionId id, | 187 void CallRuntime(Runtime::FunctionId id, |
| 188 int num_arguments, | 188 int num_arguments, |
| 189 LInstruction* instr) { | 189 LInstruction* instr) { |
| 190 const Runtime::Function* function = Runtime::FunctionForId(id); | 190 const Runtime::Function* function = Runtime::FunctionForId(id); |
| 191 CallRuntime(function, num_arguments, instr); | 191 CallRuntime(function, num_arguments, instr); |
| 192 } | 192 } |
| 193 | 193 |
| 194 void CallRuntimeFromDeferred(Runtime::FunctionId id, | 194 void CallRuntimeFromDeferred(Runtime::FunctionId id, |
| 195 int argc, | 195 int argc, |
| 196 LInstruction* instr); | 196 LInstruction* instr, |
| 197 LOperand* context); |
| 198 |
| 199 void LoadContextFromDeferred(LOperand* context); |
| 197 | 200 |
| 198 enum RDIState { | 201 enum RDIState { |
| 199 RDI_UNINITIALIZED, | 202 RDI_UNINITIALIZED, |
| 200 RDI_CONTAINS_TARGET | 203 RDI_CONTAINS_TARGET |
| 201 }; | 204 }; |
| 202 | 205 |
| 203 // Generate a direct call to a known function. Expects the function | 206 // Generate a direct call to a known function. Expects the function |
| 204 // to be in rdi. | 207 // to be in rdi. |
| 205 void CallKnownFunction(Handle<JSFunction> function, | 208 void CallKnownFunction(Handle<JSFunction> function, |
| 206 int formal_parameter_count, | 209 int formal_parameter_count, |
| 207 int arity, | 210 int arity, |
| 208 LInstruction* instr, | 211 LInstruction* instr, |
| 209 CallKind call_kind, | 212 CallKind call_kind, |
| 210 RDIState rdi_state); | 213 RDIState rdi_state); |
| 211 | 214 |
| 212 void RecordSafepointWithLazyDeopt(LInstruction* instr, | 215 void RecordSafepointWithLazyDeopt(LInstruction* instr, |
| 213 SafepointMode safepoint_mode, | 216 SafepointMode safepoint_mode, |
| 214 int argc); | 217 int argc); |
| 215 void RegisterEnvironmentForDeoptimization(LEnvironment* environment, | 218 void RegisterEnvironmentForDeoptimization(LEnvironment* environment, |
| 216 Safepoint::DeoptMode mode); | 219 Safepoint::DeoptMode mode); |
| 217 void DeoptimizeIf(Condition cc, | 220 void DeoptimizeIf(Condition cc, |
| 218 LEnvironment* environment, | 221 LEnvironment* environment, |
| 219 Deoptimizer::BailoutType bailout_type); | 222 Deoptimizer::BailoutType bailout_type); |
| 220 void DeoptimizeIf(Condition cc, LEnvironment* environment); | 223 void DeoptimizeIf(Condition cc, LEnvironment* environment); |
| 221 void ApplyCheckIf(Condition cc, LBoundsCheck* check); | 224 void ApplyCheckIf(Condition cc, LBoundsCheck* check); |
| 222 | 225 |
| 226 bool DeoptEveryNTimes() { |
| 227 return FLAG_deopt_every_n_times != 0 && !info()->IsStub(); |
| 228 } |
| 229 |
| 223 void AddToTranslation(LEnvironment* environment, | 230 void AddToTranslation(LEnvironment* environment, |
| 224 Translation* translation, | 231 Translation* translation, |
| 225 LOperand* op, | 232 LOperand* op, |
| 226 bool is_tagged, | 233 bool is_tagged, |
| 227 bool is_uint32, | 234 bool is_uint32, |
| 228 int* object_index_pointer, | 235 int* object_index_pointer, |
| 229 int* dematerialized_index_pointer); | 236 int* dematerialized_index_pointer); |
| 230 void RegisterDependentCodeForEmbeddedMaps(Handle<Code> code); | 237 void RegisterDependentCodeForEmbeddedMaps(Handle<Code> code); |
| 231 void PopulateDeoptimizationData(Handle<Code> code); | 238 void PopulateDeoptimizationData(Handle<Code> code); |
| 232 int DefineDeoptimizationLiteral(Handle<Object> literal); | 239 int DefineDeoptimizationLiteral(Handle<Object> literal); |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 403 Label entry_; | 410 Label entry_; |
| 404 Label exit_; | 411 Label exit_; |
| 405 Label done_; | 412 Label done_; |
| 406 Label* external_exit_; | 413 Label* external_exit_; |
| 407 int instruction_index_; | 414 int instruction_index_; |
| 408 }; | 415 }; |
| 409 | 416 |
| 410 } } // namespace v8::internal | 417 } } // namespace v8::internal |
| 411 | 418 |
| 412 #endif // V8_X64_LITHIUM_CODEGEN_X64_H_ | 419 #endif // V8_X64_LITHIUM_CODEGEN_X64_H_ |
| OLD | NEW |