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 |