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 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
283 CallKind call_kind, | 283 CallKind call_kind, |
284 R1State r1_state); | 284 R1State r1_state); |
285 | 285 |
286 void LoadHeapObject(Register result, Handle<HeapObject> object); | 286 void LoadHeapObject(Register result, Handle<HeapObject> object); |
287 | 287 |
288 void RecordSafepointWithLazyDeopt(LInstruction* instr, | 288 void RecordSafepointWithLazyDeopt(LInstruction* instr, |
289 SafepointMode safepoint_mode); | 289 SafepointMode safepoint_mode); |
290 | 290 |
291 void RegisterEnvironmentForDeoptimization(LEnvironment* environment, | 291 void RegisterEnvironmentForDeoptimization(LEnvironment* environment, |
292 Safepoint::DeoptMode mode); | 292 Safepoint::DeoptMode mode); |
| 293 void DeoptimizeIf(Condition cc, |
| 294 LEnvironment* environment, |
| 295 Deoptimizer::BailoutType bailout_type); |
293 void DeoptimizeIf(Condition cc, LEnvironment* environment); | 296 void DeoptimizeIf(Condition cc, LEnvironment* environment); |
| 297 void SoftDeoptimize(LEnvironment* environment); |
294 | 298 |
295 void AddToTranslation(Translation* translation, | 299 void AddToTranslation(Translation* translation, |
296 LOperand* op, | 300 LOperand* op, |
297 bool is_tagged, | 301 bool is_tagged, |
298 bool is_uint32, | 302 bool is_uint32, |
299 bool arguments_known, | 303 bool arguments_known, |
300 int arguments_index, | 304 int arguments_index, |
301 int arguments_count); | 305 int arguments_count); |
302 void RegisterDependentCodeForEmbeddedMaps(Handle<Code> code); | 306 void RegisterDependentCodeForEmbeddedMaps(Handle<Code> code); |
303 void PopulateDeoptimizationData(Handle<Code> code); | 307 void PopulateDeoptimizationData(Handle<Code> code); |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
380 // Inputs are signed. | 384 // Inputs are signed. |
381 // All registers are clobbered. | 385 // All registers are clobbered. |
382 // If 'remainder' is no_reg, it is not computed. | 386 // If 'remainder' is no_reg, it is not computed. |
383 void EmitSignedIntegerDivisionByConstant(Register result, | 387 void EmitSignedIntegerDivisionByConstant(Register result, |
384 Register dividend, | 388 Register dividend, |
385 int32_t divisor, | 389 int32_t divisor, |
386 Register remainder, | 390 Register remainder, |
387 Register scratch, | 391 Register scratch, |
388 LEnvironment* environment); | 392 LEnvironment* environment); |
389 | 393 |
390 struct JumpTableEntry { | |
391 inline JumpTableEntry(Address entry, bool frame, bool is_lazy) | |
392 : label(), | |
393 address(entry), | |
394 needs_frame(frame), | |
395 is_lazy_deopt(is_lazy) { } | |
396 Label label; | |
397 Address address; | |
398 bool needs_frame; | |
399 bool is_lazy_deopt; | |
400 }; | |
401 | |
402 void EnsureSpaceForLazyDeopt(); | 394 void EnsureSpaceForLazyDeopt(); |
403 void DoLoadKeyedExternalArray(LLoadKeyed* instr); | 395 void DoLoadKeyedExternalArray(LLoadKeyed* instr); |
404 void DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr); | 396 void DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr); |
405 void DoLoadKeyedFixedArray(LLoadKeyed* instr); | 397 void DoLoadKeyedFixedArray(LLoadKeyed* instr); |
406 void DoStoreKeyedExternalArray(LStoreKeyed* instr); | 398 void DoStoreKeyedExternalArray(LStoreKeyed* instr); |
407 void DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr); | 399 void DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr); |
408 void DoStoreKeyedFixedArray(LStoreKeyed* instr); | 400 void DoStoreKeyedFixedArray(LStoreKeyed* instr); |
409 | 401 |
410 Zone* zone_; | 402 Zone* zone_; |
411 LPlatformChunk* const chunk_; | 403 LPlatformChunk* const chunk_; |
412 MacroAssembler* const masm_; | 404 MacroAssembler* const masm_; |
413 CompilationInfo* const info_; | 405 CompilationInfo* const info_; |
414 | 406 |
415 int current_block_; | 407 int current_block_; |
416 int current_instruction_; | 408 int current_instruction_; |
417 const ZoneList<LInstruction*>* instructions_; | 409 const ZoneList<LInstruction*>* instructions_; |
418 ZoneList<LEnvironment*> deoptimizations_; | 410 ZoneList<LEnvironment*> deoptimizations_; |
419 ZoneList<JumpTableEntry> deopt_jump_table_; | 411 ZoneList<Deoptimizer::JumpTableEntry> deopt_jump_table_; |
420 ZoneList<Handle<Object> > deoptimization_literals_; | 412 ZoneList<Handle<Object> > deoptimization_literals_; |
421 ZoneList<Handle<Map> > prototype_maps_; | 413 ZoneList<Handle<Map> > prototype_maps_; |
422 ZoneList<Handle<Map> > transition_maps_; | 414 ZoneList<Handle<Map> > transition_maps_; |
423 int inlined_function_count_; | 415 int inlined_function_count_; |
424 Scope* const scope_; | 416 Scope* const scope_; |
425 Status status_; | 417 Status status_; |
426 TranslationBuffer translations_; | 418 TranslationBuffer translations_; |
427 ZoneList<LDeferredCode*> deferred_; | 419 ZoneList<LDeferredCode*> deferred_; |
428 int osr_pc_offset_; | 420 int osr_pc_offset_; |
429 int last_lazy_deopt_pc_; | 421 int last_lazy_deopt_pc_; |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
512 LCodeGen* codegen_; | 504 LCodeGen* codegen_; |
513 Label entry_; | 505 Label entry_; |
514 Label exit_; | 506 Label exit_; |
515 Label* external_exit_; | 507 Label* external_exit_; |
516 int instruction_index_; | 508 int instruction_index_; |
517 }; | 509 }; |
518 | 510 |
519 } } // namespace v8::internal | 511 } } // namespace v8::internal |
520 | 512 |
521 #endif // V8_ARM_LITHIUM_CODEGEN_ARM_H_ | 513 #endif // V8_ARM_LITHIUM_CODEGEN_ARM_H_ |
OLD | NEW |