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 46 matching lines...) Loading... |
57 scope_(info->scope()), | 57 scope_(info->scope()), |
58 translations_(info->zone()), | 58 translations_(info->zone()), |
59 deferred_(8, info->zone()), | 59 deferred_(8, info->zone()), |
60 dynamic_frame_alignment_(false), | 60 dynamic_frame_alignment_(false), |
61 support_aligned_spilled_doubles_(false), | 61 support_aligned_spilled_doubles_(false), |
62 osr_pc_offset_(-1), | 62 osr_pc_offset_(-1), |
63 frame_is_built_(false), | 63 frame_is_built_(false), |
64 x87_stack_(assembler), | 64 x87_stack_(assembler), |
65 safepoints_(info->zone()), | 65 safepoints_(info->zone()), |
66 resolver_(this), | 66 resolver_(this), |
67 expected_safepoint_kind_(Safepoint::kSimple), | 67 expected_safepoint_kind_(Safepoint::kSimple) { |
68 old_position_(RelocInfo::kNoPosition) { | |
69 PopulateDeoptimizationLiteralsWithInlinedFunctions(); | 68 PopulateDeoptimizationLiteralsWithInlinedFunctions(); |
70 } | 69 } |
71 | 70 |
72 int LookupDestination(int block_id) const { | 71 int LookupDestination(int block_id) const { |
73 return chunk()->LookupDestination(block_id); | 72 return chunk()->LookupDestination(block_id); |
74 } | 73 } |
75 | 74 |
76 bool IsNextEmittedBlock(int block_id) const { | 75 bool IsNextEmittedBlock(int block_id) const { |
77 return LookupDestination(block_id) == GetNextEmittedBlock(); | 76 return LookupDestination(block_id) == GetNextEmittedBlock(); |
78 } | 77 } |
(...skipping 222 matching lines...) Loading... |
301 // Support for recording safepoint and position information. | 300 // Support for recording safepoint and position information. |
302 void RecordSafepoint(LPointerMap* pointers, | 301 void RecordSafepoint(LPointerMap* pointers, |
303 Safepoint::Kind kind, | 302 Safepoint::Kind kind, |
304 int arguments, | 303 int arguments, |
305 Safepoint::DeoptMode mode); | 304 Safepoint::DeoptMode mode); |
306 void RecordSafepoint(LPointerMap* pointers, Safepoint::DeoptMode mode); | 305 void RecordSafepoint(LPointerMap* pointers, Safepoint::DeoptMode mode); |
307 void RecordSafepoint(Safepoint::DeoptMode mode); | 306 void RecordSafepoint(Safepoint::DeoptMode mode); |
308 void RecordSafepointWithRegisters(LPointerMap* pointers, | 307 void RecordSafepointWithRegisters(LPointerMap* pointers, |
309 int arguments, | 308 int arguments, |
310 Safepoint::DeoptMode mode); | 309 Safepoint::DeoptMode mode); |
311 void RecordPosition(int position); | |
312 | 310 |
313 void RecordAndUpdatePosition(int position) V8_OVERRIDE; | 311 void RecordAndWritePosition(int position) V8_OVERRIDE; |
314 | 312 |
315 static Condition TokenToCondition(Token::Value op, bool is_unsigned); | 313 static Condition TokenToCondition(Token::Value op, bool is_unsigned); |
316 void EmitGoto(int block); | 314 void EmitGoto(int block); |
317 template<class InstrType> | 315 template<class InstrType> |
318 void EmitBranch(InstrType instr, Condition cc); | 316 void EmitBranch(InstrType instr, Condition cc); |
319 template<class InstrType> | 317 template<class InstrType> |
320 void EmitFalseBranch(InstrType instr, Condition cc); | 318 void EmitFalseBranch(InstrType instr, Condition cc); |
321 void EmitNumberUntagD( | 319 void EmitNumberUntagD( |
322 Register input, | 320 Register input, |
323 Register temp, | 321 Register temp, |
(...skipping 141 matching lines...) Loading... |
465 | 463 |
466 // Builder that keeps track of safepoints in the code. The table | 464 // Builder that keeps track of safepoints in the code. The table |
467 // itself is emitted at the end of the generated code. | 465 // itself is emitted at the end of the generated code. |
468 SafepointTableBuilder safepoints_; | 466 SafepointTableBuilder safepoints_; |
469 | 467 |
470 // Compiler from a set of parallel moves to a sequential list of moves. | 468 // Compiler from a set of parallel moves to a sequential list of moves. |
471 LGapResolver resolver_; | 469 LGapResolver resolver_; |
472 | 470 |
473 Safepoint::Kind expected_safepoint_kind_; | 471 Safepoint::Kind expected_safepoint_kind_; |
474 | 472 |
475 int old_position_; | |
476 | |
477 class PushSafepointRegistersScope V8_FINAL BASE_EMBEDDED { | 473 class PushSafepointRegistersScope V8_FINAL BASE_EMBEDDED { |
478 public: | 474 public: |
479 explicit PushSafepointRegistersScope(LCodeGen* codegen) | 475 explicit PushSafepointRegistersScope(LCodeGen* codegen) |
480 : codegen_(codegen) { | 476 : codegen_(codegen) { |
481 ASSERT(codegen_->expected_safepoint_kind_ == Safepoint::kSimple); | 477 ASSERT(codegen_->expected_safepoint_kind_ == Safepoint::kSimple); |
482 codegen_->masm_->PushSafepointRegisters(); | 478 codegen_->masm_->PushSafepointRegisters(); |
483 codegen_->expected_safepoint_kind_ = Safepoint::kWithRegisters; | 479 codegen_->expected_safepoint_kind_ = Safepoint::kWithRegisters; |
484 ASSERT(codegen_->info()->is_calling()); | 480 ASSERT(codegen_->info()->is_calling()); |
485 } | 481 } |
486 | 482 |
(...skipping 45 matching lines...) Loading... |
532 Label exit_; | 528 Label exit_; |
533 Label* external_exit_; | 529 Label* external_exit_; |
534 Label done_; | 530 Label done_; |
535 int instruction_index_; | 531 int instruction_index_; |
536 LCodeGen::X87Stack x87_stack_; | 532 LCodeGen::X87Stack x87_stack_; |
537 }; | 533 }; |
538 | 534 |
539 } } // namespace v8::internal | 535 } } // namespace v8::internal |
540 | 536 |
541 #endif // V8_IA32_LITHIUM_CODEGEN_IA32_H_ | 537 #endif // V8_IA32_LITHIUM_CODEGEN_IA32_H_ |
OLD | NEW |