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/machine-operator.h" | 5 #include "src/compiler/machine-operator.h" |
6 | 6 |
7 #include "src/base/lazy-instance.h" | 7 #include "src/base/lazy-instance.h" |
8 #include "src/compiler/opcodes.h" | 8 #include "src/compiler/opcodes.h" |
9 #include "src/compiler/operator.h" | 9 #include "src/compiler/operator.h" |
10 | 10 |
(...skipping 28 matching lines...) Expand all Loading... |
39 return base::hash_combine(rep.machine_type(), rep.write_barrier_kind()); | 39 return base::hash_combine(rep.machine_type(), rep.write_barrier_kind()); |
40 } | 40 } |
41 | 41 |
42 | 42 |
43 std::ostream& operator<<(std::ostream& os, StoreRepresentation rep) { | 43 std::ostream& operator<<(std::ostream& os, StoreRepresentation rep) { |
44 return os << "(" << rep.machine_type() << " : " << rep.write_barrier_kind() | 44 return os << "(" << rep.machine_type() << " : " << rep.write_barrier_kind() |
45 << ")"; | 45 << ")"; |
46 } | 46 } |
47 | 47 |
48 | 48 |
| 49 StoreRepresentation const& StoreRepresentationOf(Operator const* op) { |
| 50 DCHECK_EQ(IrOpcode::kStore, op->opcode()); |
| 51 return OpParameter<StoreRepresentation>(op); |
| 52 } |
| 53 |
| 54 |
49 #define PURE_OP_LIST(V) \ | 55 #define PURE_OP_LIST(V) \ |
50 V(Word32And, Operator::kAssociative | Operator::kCommutative, 2, 1) \ | 56 V(Word32And, Operator::kAssociative | Operator::kCommutative, 2, 1) \ |
51 V(Word32Or, Operator::kAssociative | Operator::kCommutative, 2, 1) \ | 57 V(Word32Or, Operator::kAssociative | Operator::kCommutative, 2, 1) \ |
52 V(Word32Xor, Operator::kAssociative | Operator::kCommutative, 2, 1) \ | 58 V(Word32Xor, Operator::kAssociative | Operator::kCommutative, 2, 1) \ |
53 V(Word32Shl, Operator::kNoProperties, 2, 1) \ | 59 V(Word32Shl, Operator::kNoProperties, 2, 1) \ |
54 V(Word32Shr, Operator::kNoProperties, 2, 1) \ | 60 V(Word32Shr, Operator::kNoProperties, 2, 1) \ |
55 V(Word32Sar, Operator::kNoProperties, 2, 1) \ | 61 V(Word32Sar, Operator::kNoProperties, 2, 1) \ |
56 V(Word32Ror, Operator::kNoProperties, 2, 1) \ | 62 V(Word32Ror, Operator::kNoProperties, 2, 1) \ |
57 V(Word32Equal, Operator::kCommutative, 2, 1) \ | 63 V(Word32Equal, Operator::kCommutative, 2, 1) \ |
58 V(Word64And, Operator::kAssociative | Operator::kCommutative, 2, 1) \ | 64 V(Word64And, Operator::kAssociative | Operator::kCommutative, 2, 1) \ |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
226 default: | 232 default: |
227 break; | 233 break; |
228 } | 234 } |
229 UNREACHABLE(); | 235 UNREACHABLE(); |
230 return NULL; | 236 return NULL; |
231 } | 237 } |
232 | 238 |
233 } // namespace compiler | 239 } // namespace compiler |
234 } // namespace internal | 240 } // namespace internal |
235 } // namespace v8 | 241 } // namespace v8 |
OLD | NEW |