| 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 #ifndef V8_COMPILER_CODE_GENERATOR_IMPL_H_ | 5 #ifndef V8_COMPILER_CODE_GENERATOR_IMPL_H_ |
| 6 #define V8_COMPILER_CODE_GENERATOR_IMPL_H_ | 6 #define V8_COMPILER_CODE_GENERATOR_IMPL_H_ |
| 7 | 7 |
| 8 #include "src/compiler/code-generator.h" | 8 #include "src/compiler/code-generator.h" |
| 9 #include "src/compiler/common-operator.h" | |
| 10 #include "src/compiler/generic-graph.h" | |
| 11 #include "src/compiler/instruction.h" | 9 #include "src/compiler/instruction.h" |
| 12 #include "src/compiler/linkage.h" | 10 #include "src/compiler/linkage.h" |
| 13 #include "src/compiler/machine-operator.h" | |
| 14 #include "src/compiler/node.h" | |
| 15 #include "src/compiler/opcodes.h" | 11 #include "src/compiler/opcodes.h" |
| 16 #include "src/compiler/operator.h" | |
| 17 | 12 |
| 18 namespace v8 { | 13 namespace v8 { |
| 19 namespace internal { | 14 namespace internal { |
| 20 namespace compiler { | 15 namespace compiler { |
| 21 | 16 |
| 22 // Converts InstructionOperands from a given instruction to | 17 // Converts InstructionOperands from a given instruction to |
| 23 // architecture-specific | 18 // architecture-specific |
| 24 // registers and operands after they have been assigned by the register | 19 // registers and operands after they have been assigned by the register |
| 25 // allocator. | 20 // allocator. |
| 26 class InstructionOperandConverter { | 21 class InstructionOperandConverter { |
| (...skipping 27 matching lines...) Expand all Loading... |
| 54 | 49 |
| 55 uint8_t InputInt6(int index) { | 50 uint8_t InputInt6(int index) { |
| 56 return static_cast<uint8_t>(InputInt32(index) & 0x3F); | 51 return static_cast<uint8_t>(InputInt32(index) & 0x3F); |
| 57 } | 52 } |
| 58 | 53 |
| 59 Handle<HeapObject> InputHeapObject(int index) { | 54 Handle<HeapObject> InputHeapObject(int index) { |
| 60 return ToHeapObject(instr_->InputAt(index)); | 55 return ToHeapObject(instr_->InputAt(index)); |
| 61 } | 56 } |
| 62 | 57 |
| 63 Label* InputLabel(int index) { | 58 Label* InputLabel(int index) { |
| 64 return gen_->code()->GetLabel(InputBlock(index)); | 59 return gen_->code()->GetLabel(InputRpo(index)); |
| 65 } | 60 } |
| 66 | 61 |
| 67 BasicBlock* InputBlock(int index) { | 62 BasicBlock::RpoNumber InputRpo(int index) { |
| 68 int block_id = InputInt32(index); | 63 int rpo_number = InputInt32(index); |
| 69 return gen_->schedule()->GetBlockById(BasicBlock::Id::FromInt(block_id)); | 64 return BasicBlock::RpoNumber::FromInt(rpo_number); |
| 70 } | 65 } |
| 71 | 66 |
| 72 Register OutputRegister(int index = 0) { | 67 Register OutputRegister(int index = 0) { |
| 73 return ToRegister(instr_->OutputAt(index)); | 68 return ToRegister(instr_->OutputAt(index)); |
| 74 } | 69 } |
| 75 | 70 |
| 76 DoubleRegister OutputDoubleRegister() { | 71 DoubleRegister OutputDoubleRegister() { |
| 77 return ToDoubleRegister(instr_->Output()); | 72 return ToDoubleRegister(instr_->Output()); |
| 78 } | 73 } |
| 79 | 74 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 #if V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_ARM | 115 #if V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_ARM |
| 121 masm->CheckConstPool(true, false); | 116 masm->CheckConstPool(true, false); |
| 122 #endif | 117 #endif |
| 123 } | 118 } |
| 124 | 119 |
| 125 } // namespace compiler | 120 } // namespace compiler |
| 126 } // namespace internal | 121 } // namespace internal |
| 127 } // namespace v8 | 122 } // namespace v8 |
| 128 | 123 |
| 129 #endif // V8_COMPILER_CODE_GENERATOR_IMPL_H | 124 #endif // V8_COMPILER_CODE_GENERATOR_IMPL_H |
| OLD | NEW |