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/compiler/code-generator-impl.h" | 7 #include "src/compiler/code-generator-impl.h" |
8 #include "src/compiler/linkage.h" | 8 #include "src/compiler/linkage.h" |
9 #include "src/compiler/pipeline.h" | 9 #include "src/compiler/pipeline.h" |
10 #include "src/frames-inl.h" | 10 #include "src/frames-inl.h" |
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
296 BranchInfo branch; | 296 BranchInfo branch; |
297 branch.condition = condition; | 297 branch.condition = condition; |
298 branch.true_label = GetLabel(true_rpo); | 298 branch.true_label = GetLabel(true_rpo); |
299 branch.false_label = GetLabel(false_rpo); | 299 branch.false_label = GetLabel(false_rpo); |
300 branch.fallthru = IsNextInAssemblyOrder(false_rpo); | 300 branch.fallthru = IsNextInAssemblyOrder(false_rpo); |
301 // Assemble architecture-specific branch. | 301 // Assemble architecture-specific branch. |
302 AssembleArchBranch(instr, &branch); | 302 AssembleArchBranch(instr, &branch); |
303 } else if (mode == kFlags_set) { | 303 } else if (mode == kFlags_set) { |
304 // Assemble a boolean materialization after this instruction. | 304 // Assemble a boolean materialization after this instruction. |
305 AssembleArchBoolean(instr, condition); | 305 AssembleArchBoolean(instr, condition); |
| 306 } else if (mode == kFlags_select) { |
| 307 // Assemble a select after this instruction. |
| 308 AssembleArchSelect(instr, condition); |
306 } | 309 } |
307 } | 310 } |
308 | 311 |
309 | 312 |
310 void CodeGenerator::AssembleSourcePosition(Instruction* instr) { | 313 void CodeGenerator::AssembleSourcePosition(Instruction* instr) { |
311 SourcePosition source_position; | 314 SourcePosition source_position; |
312 if (!code()->GetSourcePosition(instr, &source_position)) return; | 315 if (!code()->GetSourcePosition(instr, &source_position)) return; |
313 if (source_position == current_source_position_) return; | 316 if (source_position == current_source_position_) return; |
314 current_source_position_ = source_position; | 317 current_source_position_ = source_position; |
315 if (source_position.IsUnknown()) return; | 318 if (source_position.IsUnknown()) return; |
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
665 : masm_(gen->masm()), next_(gen->ools_) { | 668 : masm_(gen->masm()), next_(gen->ools_) { |
666 gen->ools_ = this; | 669 gen->ools_ = this; |
667 } | 670 } |
668 | 671 |
669 | 672 |
670 OutOfLineCode::~OutOfLineCode() {} | 673 OutOfLineCode::~OutOfLineCode() {} |
671 | 674 |
672 } // namespace compiler | 675 } // namespace compiler |
673 } // namespace internal | 676 } // namespace internal |
674 } // namespace v8 | 677 } // namespace v8 |
OLD | NEW |