| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/arm/macro-assembler-arm.h" | 7 #include "src/arm/macro-assembler-arm.h" |
| 8 #include "src/compilation-info.h" | 8 #include "src/compilation-info.h" |
| 9 #include "src/compiler/code-generator-impl.h" | 9 #include "src/compiler/code-generator-impl.h" |
| 10 #include "src/compiler/gap-resolver.h" | 10 #include "src/compiler/gap-resolver.h" |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 class ArmOperandConverter final : public InstructionOperandConverter { | 25 class ArmOperandConverter final : public InstructionOperandConverter { |
| 26 public: | 26 public: |
| 27 ArmOperandConverter(CodeGenerator* gen, Instruction* instr) | 27 ArmOperandConverter(CodeGenerator* gen, Instruction* instr) |
| 28 : InstructionOperandConverter(gen, instr) {} | 28 : InstructionOperandConverter(gen, instr) {} |
| 29 | 29 |
| 30 SBit OutputSBit() const { | 30 SBit OutputSBit() const { |
| 31 switch (instr_->flags_mode()) { | 31 switch (instr_->flags_mode()) { |
| 32 case kFlags_branch: | 32 case kFlags_branch: |
| 33 case kFlags_deoptimize: | 33 case kFlags_deoptimize: |
| 34 case kFlags_set: | 34 case kFlags_set: |
| 35 case kFlags_trap: |
| 35 return SetCC; | 36 return SetCC; |
| 36 case kFlags_none: | 37 case kFlags_none: |
| 37 return LeaveCC; | 38 return LeaveCC; |
| 38 } | 39 } |
| 39 UNREACHABLE(); | 40 UNREACHABLE(); |
| 40 return LeaveCC; | 41 return LeaveCC; |
| 41 } | 42 } |
| 42 | 43 |
| 43 Operand InputImmediate(size_t index) { | 44 Operand InputImmediate(size_t index) { |
| 44 Constant constant = ToConstant(instr_->InputAt(index)); | 45 Constant constant = ToConstant(instr_->InputAt(index)); |
| (...skipping 1538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1583 Condition cc = FlagsConditionToCondition(branch->condition); | 1584 Condition cc = FlagsConditionToCondition(branch->condition); |
| 1584 __ b(cc, tlabel); | 1585 __ b(cc, tlabel); |
| 1585 if (!branch->fallthru) __ b(flabel); // no fallthru to flabel. | 1586 if (!branch->fallthru) __ b(flabel); // no fallthru to flabel. |
| 1586 } | 1587 } |
| 1587 | 1588 |
| 1588 | 1589 |
| 1589 void CodeGenerator::AssembleArchJump(RpoNumber target) { | 1590 void CodeGenerator::AssembleArchJump(RpoNumber target) { |
| 1590 if (!IsNextInAssemblyOrder(target)) __ b(GetLabel(target)); | 1591 if (!IsNextInAssemblyOrder(target)) __ b(GetLabel(target)); |
| 1591 } | 1592 } |
| 1592 | 1593 |
| 1594 void CodeGenerator::AssembleArchTrap(Instruction* instr, |
| 1595 FlagsCondition condition) { |
| 1596 UNREACHABLE(); |
| 1597 } |
| 1593 | 1598 |
| 1594 // Assembles boolean materializations after an instruction. | 1599 // Assembles boolean materializations after an instruction. |
| 1595 void CodeGenerator::AssembleArchBoolean(Instruction* instr, | 1600 void CodeGenerator::AssembleArchBoolean(Instruction* instr, |
| 1596 FlagsCondition condition) { | 1601 FlagsCondition condition) { |
| 1597 ArmOperandConverter i(this, instr); | 1602 ArmOperandConverter i(this, instr); |
| 1598 | 1603 |
| 1599 // Materialize a full 32-bit 1 or 0 value. The result register is always the | 1604 // Materialize a full 32-bit 1 or 0 value. The result register is always the |
| 1600 // last output of the instruction. | 1605 // last output of the instruction. |
| 1601 DCHECK_NE(0u, instr->OutputCount()); | 1606 DCHECK_NE(0u, instr->OutputCount()); |
| 1602 Register reg = i.OutputRegister(instr->OutputCount() - 1); | 1607 Register reg = i.OutputRegister(instr->OutputCount() - 1); |
| (...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2103 padding_size -= v8::internal::Assembler::kInstrSize; | 2108 padding_size -= v8::internal::Assembler::kInstrSize; |
| 2104 } | 2109 } |
| 2105 } | 2110 } |
| 2106 } | 2111 } |
| 2107 | 2112 |
| 2108 #undef __ | 2113 #undef __ |
| 2109 | 2114 |
| 2110 } // namespace compiler | 2115 } // namespace compiler |
| 2111 } // namespace internal | 2116 } // namespace internal |
| 2112 } // namespace v8 | 2117 } // namespace v8 |
| OLD | NEW |