| 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/common-operator.h" | 5 #include "src/compiler/common-operator.h" |
| 6 | 6 |
| 7 #include "src/assembler.h" | 7 #include "src/assembler.h" |
| 8 #include "src/base/lazy-instance.h" | 8 #include "src/base/lazy-instance.h" |
| 9 #include "src/compiler/linkage.h" | 9 #include "src/compiler/linkage.h" |
| 10 #include "src/compiler/opcodes.h" | 10 #include "src/compiler/opcodes.h" |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 | 142 |
| 143 | 143 |
| 144 std::ostream& operator<<(std::ostream& os, ParameterInfo const& i) { | 144 std::ostream& operator<<(std::ostream& os, ParameterInfo const& i) { |
| 145 if (i.debug_name()) os << i.debug_name() << '#'; | 145 if (i.debug_name()) os << i.debug_name() << '#'; |
| 146 os << i.index(); | 146 os << i.index(); |
| 147 return os; | 147 return os; |
| 148 } | 148 } |
| 149 | 149 |
| 150 bool operator==(RelocatablePtrConstantInfo const& lhs, | 150 bool operator==(RelocatablePtrConstantInfo const& lhs, |
| 151 RelocatablePtrConstantInfo const& rhs) { | 151 RelocatablePtrConstantInfo const& rhs) { |
| 152 return lhs.rmode() == rhs.rmode() && lhs.value() == rhs.value(); | 152 return lhs.rmode() == rhs.rmode() && lhs.value() == rhs.value() && |
| 153 lhs.type() == rhs.type(); |
| 153 } | 154 } |
| 154 | 155 |
| 155 bool operator!=(RelocatablePtrConstantInfo const& lhs, | 156 bool operator!=(RelocatablePtrConstantInfo const& lhs, |
| 156 RelocatablePtrConstantInfo const& rhs) { | 157 RelocatablePtrConstantInfo const& rhs) { |
| 157 return !(lhs == rhs); | 158 return !(lhs == rhs); |
| 158 } | 159 } |
| 159 | 160 |
| 160 size_t hash_value(RelocatablePtrConstantInfo const& p) { | 161 size_t hash_value(RelocatablePtrConstantInfo const& p) { |
| 161 return base::hash_combine(p.value(), p.rmode()); | 162 return base::hash_combine(p.value(), p.rmode(), p.type()); |
| 162 } | 163 } |
| 163 | 164 |
| 164 std::ostream& operator<<(std::ostream& os, | 165 std::ostream& operator<<(std::ostream& os, |
| 165 RelocatablePtrConstantInfo const& p) { | 166 RelocatablePtrConstantInfo const& p) { |
| 166 return os << p.value() << "|" << p.rmode(); | 167 return os << p.value() << "|" << p.rmode() << "|" << p.type(); |
| 167 } | 168 } |
| 168 | 169 |
| 169 #define CACHED_OP_LIST(V) \ | 170 #define CACHED_OP_LIST(V) \ |
| 170 V(Dead, Operator::kFoldable, 0, 0, 0, 1, 1, 1) \ | 171 V(Dead, Operator::kFoldable, 0, 0, 0, 1, 1, 1) \ |
| 171 V(DeoptimizeIf, Operator::kFoldable, 2, 1, 1, 0, 0, 1) \ | 172 V(DeoptimizeIf, Operator::kFoldable, 2, 1, 1, 0, 0, 1) \ |
| 172 V(DeoptimizeUnless, Operator::kFoldable, 2, 1, 1, 0, 0, 1) \ | 173 V(DeoptimizeUnless, Operator::kFoldable, 2, 1, 1, 0, 0, 1) \ |
| 173 V(IfTrue, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \ | 174 V(IfTrue, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \ |
| 174 V(IfFalse, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \ | 175 V(IfFalse, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \ |
| 175 V(IfSuccess, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \ | 176 V(IfSuccess, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \ |
| 176 V(IfDefault, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \ | 177 V(IfDefault, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \ |
| (...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 696 int32_t value, RelocInfo::Mode rmode) { | 697 int32_t value, RelocInfo::Mode rmode) { |
| 697 return new (zone()) Operator1<RelocatablePtrConstantInfo>( // -- | 698 return new (zone()) Operator1<RelocatablePtrConstantInfo>( // -- |
| 698 IrOpcode::kRelocatableInt32Constant, Operator::kPure, // opcode | 699 IrOpcode::kRelocatableInt32Constant, Operator::kPure, // opcode |
| 699 "RelocatableInt32Constant", // name | 700 "RelocatableInt32Constant", // name |
| 700 0, 0, 0, 1, 0, 0, // counts | 701 0, 0, 0, 1, 0, 0, // counts |
| 701 RelocatablePtrConstantInfo(value, rmode)); // parameter | 702 RelocatablePtrConstantInfo(value, rmode)); // parameter |
| 702 } | 703 } |
| 703 | 704 |
| 704 const Operator* CommonOperatorBuilder::RelocatableInt64Constant( | 705 const Operator* CommonOperatorBuilder::RelocatableInt64Constant( |
| 705 int64_t value, RelocInfo::Mode rmode) { | 706 int64_t value, RelocInfo::Mode rmode) { |
| 706 return new (zone()) Operator1<RelocatablePtrConstantInfo>( // -- | 707 return new (zone()) Operator1<RelocatablePtrConstantInfo>( // -- |
| 707 IrOpcode::kRelocatableInt64Constant, Operator::kPure, // opcode | 708 IrOpcode::kRelocatableInt64Constant, Operator::kPure, // opcode |
| 708 "RelocatableInt64Constant", // name | 709 "RelocatableInt64Constant", // name |
| 709 0, 0, 0, 1, 0, 0, // counts | 710 0, 0, 0, 1, 0, 0, // counts |
| 710 RelocatablePtrConstantInfo(static_cast<intptr_t>(value), // parameter | 711 RelocatablePtrConstantInfo(value, rmode)); // parameter |
| 711 rmode)); | |
| 712 } | 712 } |
| 713 | 713 |
| 714 const Operator* CommonOperatorBuilder::Select(MachineRepresentation rep, | 714 const Operator* CommonOperatorBuilder::Select(MachineRepresentation rep, |
| 715 BranchHint hint) { | 715 BranchHint hint) { |
| 716 return new (zone()) Operator1<SelectParameters>( // -- | 716 return new (zone()) Operator1<SelectParameters>( // -- |
| 717 IrOpcode::kSelect, Operator::kPure, // opcode | 717 IrOpcode::kSelect, Operator::kPure, // opcode |
| 718 "Select", // name | 718 "Select", // name |
| 719 3, 0, 0, 1, 0, 0, // counts | 719 3, 0, 0, 1, 0, 0, // counts |
| 720 SelectParameters(rep, hint)); // parameter | 720 SelectParameters(rep, hint)); // parameter |
| 721 } | 721 } |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 904 CommonOperatorBuilder::CreateFrameStateFunctionInfo( | 904 CommonOperatorBuilder::CreateFrameStateFunctionInfo( |
| 905 FrameStateType type, int parameter_count, int local_count, | 905 FrameStateType type, int parameter_count, int local_count, |
| 906 Handle<SharedFunctionInfo> shared_info) { | 906 Handle<SharedFunctionInfo> shared_info) { |
| 907 return new (zone()->New(sizeof(FrameStateFunctionInfo))) | 907 return new (zone()->New(sizeof(FrameStateFunctionInfo))) |
| 908 FrameStateFunctionInfo(type, parameter_count, local_count, shared_info); | 908 FrameStateFunctionInfo(type, parameter_count, local_count, shared_info); |
| 909 } | 909 } |
| 910 | 910 |
| 911 } // namespace compiler | 911 } // namespace compiler |
| 912 } // namespace internal | 912 } // namespace internal |
| 913 } // namespace v8 | 913 } // namespace v8 |
| OLD | NEW |