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 #ifndef V8_COMPILER_TYPES_H_ | 5 #ifndef V8_COMPILER_TYPES_H_ |
6 #define V8_COMPILER_TYPES_H_ | 6 #define V8_COMPILER_TYPES_H_ |
7 | 7 |
8 #include "src/base/compiler-specific.h" | 8 #include "src/base/compiler-specific.h" |
9 #include "src/conversions.h" | 9 #include "src/conversions.h" |
10 #include "src/globals.h" | 10 #include "src/globals.h" |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 V(OrderedNumber, kPlainNumber | kMinusZero) \ | 145 V(OrderedNumber, kPlainNumber | kMinusZero) \ |
146 V(MinusZeroOrNaN, kMinusZero | kNaN) \ | 146 V(MinusZeroOrNaN, kMinusZero | kNaN) \ |
147 V(Number, kOrderedNumber | kNaN) \ | 147 V(Number, kOrderedNumber | kNaN) \ |
148 V(String, kInternalizedString | kOtherString) \ | 148 V(String, kInternalizedString | kOtherString) \ |
149 V(UniqueName, kSymbol | kInternalizedString) \ | 149 V(UniqueName, kSymbol | kInternalizedString) \ |
150 V(Name, kSymbol | kString) \ | 150 V(Name, kSymbol | kString) \ |
151 V(InternalizedStringOrNull, kInternalizedString | kNull) \ | 151 V(InternalizedStringOrNull, kInternalizedString | kNull) \ |
152 V(BooleanOrNumber, kBoolean | kNumber) \ | 152 V(BooleanOrNumber, kBoolean | kNumber) \ |
153 V(BooleanOrNullOrNumber, kBooleanOrNumber | kNull) \ | 153 V(BooleanOrNullOrNumber, kBooleanOrNumber | kNull) \ |
154 V(BooleanOrNullOrUndefined, kBoolean | kNull | kUndefined) \ | 154 V(BooleanOrNullOrUndefined, kBoolean | kNull | kUndefined) \ |
| 155 V(Oddball, kBooleanOrNullOrUndefined | kHole) \ |
155 V(NullOrNumber, kNull | kNumber) \ | 156 V(NullOrNumber, kNull | kNumber) \ |
156 V(NullOrUndefined, kNull | kUndefined) \ | 157 V(NullOrUndefined, kNull | kUndefined) \ |
157 V(Undetectable, kNullOrUndefined | kOtherUndetectable) \ | 158 V(Undetectable, kNullOrUndefined | kOtherUndetectable) \ |
158 V(NumberOrOddball, kNumber | kNullOrUndefined | kBoolean | \ | 159 V(NumberOrOddball, kNumber | kNullOrUndefined | kBoolean | \ |
159 kHole) \ | 160 kHole) \ |
160 V(NumberOrSimdOrString, kNumber | kSimd | kString) \ | 161 V(NumberOrSimdOrString, kNumber | kSimd | kString) \ |
161 V(NumberOrString, kNumber | kString) \ | 162 V(NumberOrString, kNumber | kString) \ |
162 V(NumberOrUndefined, kNumber | kUndefined) \ | 163 V(NumberOrUndefined, kNumber | kUndefined) \ |
163 V(PlainPrimitive, kNumberOrString | kBoolean | \ | 164 V(PlainPrimitive, kNumberOrString | kBoolean | \ |
164 kNullOrUndefined) \ | 165 kNullOrUndefined) \ |
165 V(Primitive, kSymbol | kSimd | kPlainPrimitive) \ | 166 V(Primitive, kSymbol | kSimd | kPlainPrimitive) \ |
166 V(OtherUndetectableOrUndefined, kOtherUndetectable | kUndefined) \ | 167 V(OtherUndetectableOrUndefined, kOtherUndetectable | kUndefined) \ |
167 V(Proxy, kCallableProxy | kOtherProxy) \ | 168 V(Proxy, kCallableProxy | kOtherProxy) \ |
168 V(Callable, kFunction | kBoundFunction | \ | 169 V(Callable, kFunction | kBoundFunction | \ |
169 kOtherCallable | kCallableProxy | \ | 170 kOtherCallable | kCallableProxy | \ |
170 kOtherUndetectable) \ | 171 kOtherUndetectable) \ |
171 V(NonCallable, kOtherObject | kOtherProxy) \ | 172 V(NonCallable, kOtherObject | kOtherProxy) \ |
172 V(NonCallableOrNull, kNonCallable | kNull) \ | 173 V(NonCallableOrNull, kNonCallable | kNull) \ |
173 V(DetectableObject, kFunction | kBoundFunction | \ | 174 V(DetectableObject, kFunction | kBoundFunction | \ |
174 kOtherCallable | kOtherObject) \ | 175 kOtherCallable | kOtherObject) \ |
175 V(DetectableReceiver, kDetectableObject | kProxy) \ | 176 V(DetectableReceiver, kDetectableObject | kProxy) \ |
176 V(DetectableReceiverOrNull, kDetectableReceiver | kNull) \ | 177 V(DetectableReceiverOrNull, kDetectableReceiver | kNull) \ |
177 V(Object, kDetectableObject | kOtherUndetectable) \ | 178 V(Object, kDetectableObject | kOtherUndetectable) \ |
178 V(Receiver, kObject | kProxy) \ | 179 V(Receiver, kObject | kProxy) \ |
179 V(ReceiverOrUndefined, kReceiver | kUndefined) \ | 180 V(ReceiverOrUndefined, kReceiver | kUndefined) \ |
180 V(ReceiverOrNullOrUndefined, kReceiver | kNull | kUndefined) \ | 181 V(ReceiverOrNullOrUndefined, kReceiver | kNull | kUndefined) \ |
| 182 V(SymbolOrReceiver, kSymbol | kReceiver) \ |
181 V(StringOrReceiver, kString | kReceiver) \ | 183 V(StringOrReceiver, kString | kReceiver) \ |
182 V(Unique, kBoolean | kUniqueName | kNull | \ | 184 V(Unique, kBoolean | kUniqueName | kNull | \ |
183 kUndefined | kReceiver) \ | 185 kUndefined | kReceiver) \ |
184 V(NonStringUniqueOrHole, kBoolean | kHole | kNull | kReceiver | \ | |
185 kSymbol | kUndefined) \ | |
186 V(Internal, kHole | kExternalPointer | kOtherInternal) \ | 186 V(Internal, kHole | kExternalPointer | kOtherInternal) \ |
187 V(NonInternal, kPrimitive | kReceiver) \ | 187 V(NonInternal, kPrimitive | kReceiver) \ |
188 V(NonNumber, kUnique | kString | kInternal) \ | 188 V(NonNumber, kUnique | kString | kInternal) \ |
189 V(Any, 0xfffffffeu) | 189 V(Any, 0xfffffffeu) |
190 | 190 |
191 // clang-format on | 191 // clang-format on |
192 | 192 |
193 /* | 193 /* |
194 * The following diagrams show how integers (in the mathematical sense) are | 194 * The following diagrams show how integers (in the mathematical sense) are |
195 * divided among the different atomic numerical types. | 195 * divided among the different atomic numerical types. |
(...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
664 RangeType::Limits* limits, Zone* zone); | 664 RangeType::Limits* limits, Zone* zone); |
665 static Type* NormalizeUnion(Type* unioned, int size, Zone* zone); | 665 static Type* NormalizeUnion(Type* unioned, int size, Zone* zone); |
666 static Type* NormalizeRangeAndBitset(Type* range, bitset* bits, Zone* zone); | 666 static Type* NormalizeRangeAndBitset(Type* range, bitset* bits, Zone* zone); |
667 }; | 667 }; |
668 | 668 |
669 } // namespace compiler | 669 } // namespace compiler |
670 } // namespace internal | 670 } // namespace internal |
671 } // namespace v8 | 671 } // namespace v8 |
672 | 672 |
673 #endif // V8_COMPILER_TYPES_H_ | 673 #endif // V8_COMPILER_TYPES_H_ |
OLD | NEW |