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 #include "src/compiler/code-generator.h" | 5 #include "src/compiler/code-generator.h" |
6 | 6 |
7 #include "src/address-map.h" | 7 #include "src/address-map.h" |
8 #include "src/compiler/code-generator-impl.h" | 8 #include "src/compiler/code-generator-impl.h" |
9 #include "src/compiler/linkage.h" | 9 #include "src/compiler/linkage.h" |
10 #include "src/compiler/pipeline.h" | 10 #include "src/compiler/pipeline.h" |
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
500 instr->reference_map(), Safepoint::kSimple, 0, | 500 instr->reference_map(), Safepoint::kSimple, 0, |
501 needs_frame_state ? Safepoint::kLazyDeopt : Safepoint::kNoLazyDeopt); | 501 needs_frame_state ? Safepoint::kLazyDeopt : Safepoint::kNoLazyDeopt); |
502 | 502 |
503 if (flags & CallDescriptor::kHasExceptionHandler) { | 503 if (flags & CallDescriptor::kHasExceptionHandler) { |
504 InstructionOperandConverter i(this, instr); | 504 InstructionOperandConverter i(this, instr); |
505 bool caught = flags & CallDescriptor::kHasLocalCatchHandler; | 505 bool caught = flags & CallDescriptor::kHasLocalCatchHandler; |
506 RpoNumber handler_rpo = i.InputRpo(instr->InputCount() - 1); | 506 RpoNumber handler_rpo = i.InputRpo(instr->InputCount() - 1); |
507 handlers_.push_back({caught, GetLabel(handler_rpo), masm()->pc_offset()}); | 507 handlers_.push_back({caught, GetLabel(handler_rpo), masm()->pc_offset()}); |
508 } | 508 } |
509 | 509 |
510 if (flags & CallDescriptor::kNeedsNopAfterCall) { | |
511 AddNopForSmiCodeInlining(); | |
512 } | |
513 | |
514 if (needs_frame_state) { | 510 if (needs_frame_state) { |
515 MarkLazyDeoptSite(); | 511 MarkLazyDeoptSite(); |
516 // If the frame state is present, it starts at argument 1 (just after the | 512 // If the frame state is present, it starts at argument 1 (just after the |
517 // code address). | 513 // code address). |
518 size_t frame_state_offset = 1; | 514 size_t frame_state_offset = 1; |
519 FrameStateDescriptor* descriptor = | 515 FrameStateDescriptor* descriptor = |
520 GetFrameStateDescriptor(instr, frame_state_offset); | 516 GetFrameStateDescriptor(instr, frame_state_offset); |
521 int pc_offset = masm()->pc_offset(); | 517 int pc_offset = masm()->pc_offset(); |
522 int deopt_state_id = BuildTranslation(instr, pc_offset, frame_state_offset, | 518 int deopt_state_id = BuildTranslation(instr, pc_offset, frame_state_offset, |
523 descriptor->state_combine()); | 519 descriptor->state_combine()); |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
811 : frame_(gen->frame()), masm_(gen->masm()), next_(gen->ools_) { | 807 : frame_(gen->frame()), masm_(gen->masm()), next_(gen->ools_) { |
812 gen->ools_ = this; | 808 gen->ools_ = this; |
813 } | 809 } |
814 | 810 |
815 | 811 |
816 OutOfLineCode::~OutOfLineCode() {} | 812 OutOfLineCode::~OutOfLineCode() {} |
817 | 813 |
818 } // namespace compiler | 814 } // namespace compiler |
819 } // namespace internal | 815 } // namespace internal |
820 } // namespace v8 | 816 } // namespace v8 |
OLD | NEW |