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_TYPES_H_ | 5 #ifndef V8_TYPES_H_ |
6 #define V8_TYPES_H_ | 6 #define V8_TYPES_H_ |
7 | 7 |
8 #include "src/conversions.h" | 8 #include "src/conversions.h" |
9 #include "src/handles.h" | 9 #include "src/handles.h" |
10 #include "src/objects.h" | 10 #include "src/objects.h" |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 // respective map. Only structured types require allocation. | 144 // respective map. Only structured types require allocation. |
145 // Note that the bitset representation is closed under both Union and Intersect. | 145 // Note that the bitset representation is closed under both Union and Intersect. |
146 | 146 |
147 | 147 |
148 // ----------------------------------------------------------------------------- | 148 // ----------------------------------------------------------------------------- |
149 // Values for bitset types | 149 // Values for bitset types |
150 | 150 |
151 // clang-format off | 151 // clang-format off |
152 | 152 |
153 #define MASK_BITSET_TYPE_LIST(V) \ | 153 #define MASK_BITSET_TYPE_LIST(V) \ |
154 V(Representation, 0xff800000u) \ | 154 V(Representation, 0xffc00000u) \ |
155 V(Semantic, 0x007ffffeu) | 155 V(Semantic, 0x003ffffeu) |
156 | 156 |
157 #define REPRESENTATION(k) ((k) & BitsetType::kRepresentation) | 157 #define REPRESENTATION(k) ((k) & BitsetType::kRepresentation) |
158 #define SEMANTIC(k) ((k) & BitsetType::kSemantic) | 158 #define SEMANTIC(k) ((k) & BitsetType::kSemantic) |
159 | 159 |
160 #define REPRESENTATION_BITSET_TYPE_LIST(V) \ | 160 #define REPRESENTATION_BITSET_TYPE_LIST(V) \ |
161 V(None, 0) \ | 161 V(None, 0) \ |
162 V(UntaggedBit, 1u << 23 | kSemantic) \ | 162 V(UntaggedBit, 1u << 22 | kSemantic) \ |
163 V(UntaggedIntegral8, 1u << 24 | kSemantic) \ | 163 V(UntaggedIntegral8, 1u << 23 | kSemantic) \ |
164 V(UntaggedIntegral16, 1u << 25 | kSemantic) \ | 164 V(UntaggedIntegral16, 1u << 24 | kSemantic) \ |
165 V(UntaggedIntegral32, 1u << 26 | kSemantic) \ | 165 V(UntaggedIntegral32, 1u << 25 | kSemantic) \ |
166 V(UntaggedFloat32, 1u << 27 | kSemantic) \ | 166 V(UntaggedFloat32, 1u << 26 | kSemantic) \ |
167 V(UntaggedFloat64, 1u << 28 | kSemantic) \ | 167 V(UntaggedFloat64, 1u << 27 | kSemantic) \ |
| 168 V(UntaggedSimd128, 1u << 28 | kSemantic) \ |
168 V(UntaggedPointer, 1u << 29 | kSemantic) \ | 169 V(UntaggedPointer, 1u << 29 | kSemantic) \ |
169 V(TaggedSigned, 1u << 30 | kSemantic) \ | 170 V(TaggedSigned, 1u << 30 | kSemantic) \ |
170 V(TaggedPointer, 1u << 31 | kSemantic) \ | 171 V(TaggedPointer, 1u << 31 | kSemantic) \ |
171 \ | 172 \ |
172 V(UntaggedIntegral, kUntaggedBit | kUntaggedIntegral8 | \ | 173 V(UntaggedIntegral, kUntaggedBit | kUntaggedIntegral8 | \ |
173 kUntaggedIntegral16 | kUntaggedIntegral32) \ | 174 kUntaggedIntegral16 | kUntaggedIntegral32) \ |
174 V(UntaggedFloat, kUntaggedFloat32 | kUntaggedFloat64) \ | 175 V(UntaggedFloat, kUntaggedFloat32 | kUntaggedFloat64) \ |
175 V(UntaggedNumber, kUntaggedIntegral | kUntaggedFloat) \ | 176 V(UntaggedNumber, kUntaggedIntegral | kUntaggedFloat) \ |
176 V(Untagged, kUntaggedNumber | kUntaggedPointer) \ | 177 V(Untagged, kUntaggedNumber | kUntaggedPointer) \ |
177 V(Tagged, kTaggedSigned | kTaggedPointer) | 178 V(Tagged, kTaggedSigned | kTaggedPointer) |
(...skipping 807 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
985 bool NowIs(Handle<FieldType> other); | 986 bool NowIs(Handle<FieldType> other); |
986 Type* Convert(Zone* zone); | 987 Type* Convert(Zone* zone); |
987 | 988 |
988 void PrintTo(std::ostream& os); | 989 void PrintTo(std::ostream& os); |
989 }; | 990 }; |
990 | 991 |
991 } // namespace internal | 992 } // namespace internal |
992 } // namespace v8 | 993 } // namespace v8 |
993 | 994 |
994 #endif // V8_TYPES_H_ | 995 #endif // V8_TYPES_H_ |
OLD | NEW |