| 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/gap-resolver.h" | 8 #include "src/compiler/gap-resolver.h" |
| 9 #include "src/compiler/node-matchers.h" | 9 #include "src/compiler/node-matchers.h" |
| 10 #include "src/compiler/node-properties-inl.h" | 10 #include "src/compiler/node-properties-inl.h" |
| (...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 589 | 589 |
| 590 | 590 |
| 591 // Assembles branches after this instruction. | 591 // Assembles branches after this instruction. |
| 592 void CodeGenerator::AssembleArchBranch(Instruction* instr, | 592 void CodeGenerator::AssembleArchBranch(Instruction* instr, |
| 593 FlagsCondition condition) { | 593 FlagsCondition condition) { |
| 594 X64OperandConverter i(this, instr); | 594 X64OperandConverter i(this, instr); |
| 595 Label done; | 595 Label done; |
| 596 | 596 |
| 597 // Emit a branch. The true and false targets are always the last two inputs | 597 // Emit a branch. The true and false targets are always the last two inputs |
| 598 // to the instruction. | 598 // to the instruction. |
| 599 BasicBlock* tblock = i.InputBlock(instr->InputCount() - 2); | 599 BasicBlock* tblock = i.InputBlock(static_cast<int>(instr->InputCount()) - 2); |
| 600 BasicBlock* fblock = i.InputBlock(instr->InputCount() - 1); | 600 BasicBlock* fblock = i.InputBlock(static_cast<int>(instr->InputCount()) - 1); |
| 601 bool fallthru = IsNextInAssemblyOrder(fblock); | 601 bool fallthru = IsNextInAssemblyOrder(fblock); |
| 602 Label* tlabel = code()->GetLabel(tblock); | 602 Label* tlabel = code()->GetLabel(tblock); |
| 603 Label* flabel = fallthru ? &done : code()->GetLabel(fblock); | 603 Label* flabel = fallthru ? &done : code()->GetLabel(fblock); |
| 604 Label::Distance flabel_distance = fallthru ? Label::kNear : Label::kFar; | 604 Label::Distance flabel_distance = fallthru ? Label::kNear : Label::kFar; |
| 605 switch (condition) { | 605 switch (condition) { |
| 606 case kUnorderedEqual: | 606 case kUnorderedEqual: |
| 607 __ j(parity_even, flabel, flabel_distance); | 607 __ j(parity_even, flabel, flabel_distance); |
| 608 // Fall through. | 608 // Fall through. |
| 609 case kEqual: | 609 case kEqual: |
| 610 __ j(equal, tlabel); | 610 __ j(equal, tlabel); |
| (...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 963 return false; | 963 return false; |
| 964 } | 964 } |
| 965 return *(code->instruction_start() + start_pc) == | 965 return *(code->instruction_start() + start_pc) == |
| 966 v8::internal::Assembler::kNopByte; | 966 v8::internal::Assembler::kNopByte; |
| 967 } | 967 } |
| 968 | 968 |
| 969 #endif | 969 #endif |
| 970 } | 970 } |
| 971 } | 971 } |
| 972 } // namespace v8::internal::compiler | 972 } // namespace v8::internal::compiler |
| OLD | NEW |