OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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_ARM64_LITHIUM_CODEGEN_ARM64_H_ | 5 #ifndef V8_ARM64_LITHIUM_CODEGEN_ARM64_H_ |
6 #define V8_ARM64_LITHIUM_CODEGEN_ARM64_H_ | 6 #define V8_ARM64_LITHIUM_CODEGEN_ARM64_H_ |
7 | 7 |
8 #include "src/arm64/lithium-arm64.h" | 8 #include "src/arm64/lithium-arm64.h" |
9 | 9 |
10 #include "src/arm64/lithium-gap-resolver-arm64.h" | 10 #include "src/arm64/lithium-gap-resolver-arm64.h" |
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
266 LOperand* op, | 266 LOperand* op, |
267 bool is_tagged, | 267 bool is_tagged, |
268 bool is_uint32, | 268 bool is_uint32, |
269 int* object_index_pointer, | 269 int* object_index_pointer, |
270 int* dematerialized_index_pointer); | 270 int* dematerialized_index_pointer); |
271 | 271 |
272 void SaveCallerDoubles(); | 272 void SaveCallerDoubles(); |
273 void RestoreCallerDoubles(); | 273 void RestoreCallerDoubles(); |
274 | 274 |
275 // Code generation steps. Returns true if code generation should continue. | 275 // Code generation steps. Returns true if code generation should continue. |
276 void GenerateBodyInstructionPre(LInstruction* instr) V8_OVERRIDE; | 276 void GenerateBodyInstructionPre(LInstruction* instr) OVERRIDE; |
277 bool GeneratePrologue(); | 277 bool GeneratePrologue(); |
278 bool GenerateDeferredCode(); | 278 bool GenerateDeferredCode(); |
279 bool GenerateDeoptJumpTable(); | 279 bool GenerateDeoptJumpTable(); |
280 bool GenerateSafepointTable(); | 280 bool GenerateSafepointTable(); |
281 | 281 |
282 // Generates the custom OSR entrypoint and sets the osr_pc_offset. | 282 // Generates the custom OSR entrypoint and sets the osr_pc_offset. |
283 void GenerateOsrPrologue(); | 283 void GenerateOsrPrologue(); |
284 | 284 |
285 enum SafepointMode { | 285 enum SafepointMode { |
286 RECORD_SIMPLE_SAFEPOINT, | 286 RECORD_SIMPLE_SAFEPOINT, |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 // If the function is already loaded into x1 by the caller, function_reg may | 318 // If the function is already loaded into x1 by the caller, function_reg may |
319 // be set to x1. Otherwise, it must be NoReg, and CallKnownFunction will | 319 // be set to x1. Otherwise, it must be NoReg, and CallKnownFunction will |
320 // automatically load it. | 320 // automatically load it. |
321 void CallKnownFunction(Handle<JSFunction> function, | 321 void CallKnownFunction(Handle<JSFunction> function, |
322 int formal_parameter_count, | 322 int formal_parameter_count, |
323 int arity, | 323 int arity, |
324 LInstruction* instr, | 324 LInstruction* instr, |
325 Register function_reg = NoReg); | 325 Register function_reg = NoReg); |
326 | 326 |
327 // Support for recording safepoint and position information. | 327 // Support for recording safepoint and position information. |
328 void RecordAndWritePosition(int position) V8_OVERRIDE; | 328 void RecordAndWritePosition(int position) OVERRIDE; |
329 void RecordSafepoint(LPointerMap* pointers, | 329 void RecordSafepoint(LPointerMap* pointers, |
330 Safepoint::Kind kind, | 330 Safepoint::Kind kind, |
331 int arguments, | 331 int arguments, |
332 Safepoint::DeoptMode mode); | 332 Safepoint::DeoptMode mode); |
333 void RecordSafepoint(LPointerMap* pointers, Safepoint::DeoptMode mode); | 333 void RecordSafepoint(LPointerMap* pointers, Safepoint::DeoptMode mode); |
334 void RecordSafepoint(Safepoint::DeoptMode mode); | 334 void RecordSafepoint(Safepoint::DeoptMode mode); |
335 void RecordSafepointWithRegisters(LPointerMap* pointers, | 335 void RecordSafepointWithRegisters(LPointerMap* pointers, |
336 int arguments, | 336 int arguments, |
337 Safepoint::DeoptMode mode); | 337 Safepoint::DeoptMode mode); |
338 void RecordSafepointWithLazyDeopt(LInstruction* instr, | 338 void RecordSafepointWithLazyDeopt(LInstruction* instr, |
339 SafepointMode safepoint_mode); | 339 SafepointMode safepoint_mode); |
340 | 340 |
341 void EnsureSpaceForLazyDeopt(int space_needed) V8_OVERRIDE; | 341 void EnsureSpaceForLazyDeopt(int space_needed) OVERRIDE; |
342 | 342 |
343 ZoneList<LEnvironment*> deoptimizations_; | 343 ZoneList<LEnvironment*> deoptimizations_; |
344 ZoneList<Deoptimizer::JumpTableEntry*> deopt_jump_table_; | 344 ZoneList<Deoptimizer::JumpTableEntry*> deopt_jump_table_; |
345 ZoneList<Handle<Object> > deoptimization_literals_; | 345 ZoneList<Handle<Object> > deoptimization_literals_; |
346 int inlined_function_count_; | 346 int inlined_function_count_; |
347 Scope* const scope_; | 347 Scope* const scope_; |
348 TranslationBuffer translations_; | 348 TranslationBuffer translations_; |
349 ZoneList<LDeferredCode*> deferred_; | 349 ZoneList<LDeferredCode*> deferred_; |
350 int osr_pc_offset_; | 350 int osr_pc_offset_; |
351 bool frame_is_built_; | 351 bool frame_is_built_; |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
455 | 455 |
456 protected: | 456 protected: |
457 MacroAssembler* masm() const { return codegen_->masm(); } | 457 MacroAssembler* masm() const { return codegen_->masm(); } |
458 | 458 |
459 LCodeGen* codegen_; | 459 LCodeGen* codegen_; |
460 }; | 460 }; |
461 | 461 |
462 } } // namespace v8::internal | 462 } } // namespace v8::internal |
463 | 463 |
464 #endif // V8_ARM64_LITHIUM_CODEGEN_ARM64_H_ | 464 #endif // V8_ARM64_LITHIUM_CODEGEN_ARM64_H_ |
OLD | NEW |