| Index: src/types.h
|
| diff --git a/src/types.h b/src/types.h
|
| index 31ee95cbb46069b21cf7e0764bebc21c9c74459d..66f209c12b7c09ec0af209dfabe3e9b827bfe21f 100644
|
| --- a/src/types.h
|
| +++ b/src/types.h
|
| @@ -207,8 +207,8 @@ namespace internal {
|
| V(Symbol, 1u << 12 | REPRESENTATION(kTaggedPointer)) \
|
| V(InternalizedString, 1u << 13 | REPRESENTATION(kTaggedPointer)) \
|
| V(OtherString, 1u << 14 | REPRESENTATION(kTaggedPointer)) \
|
| - V(Undetectable, 1u << 15 | REPRESENTATION(kTaggedPointer)) \
|
| - /* Unused semantic bit 1u << 16 in case you are looking for a bit. */ \
|
| + V(Simd, 1u << 15 | REPRESENTATION(kTaggedPointer)) \
|
| + V(Undetectable, 1u << 16 | REPRESENTATION(kTaggedPointer)) \
|
| V(OtherObject, 1u << 17 | REPRESENTATION(kTaggedPointer)) \
|
| V(Proxy, 1u << 18 | REPRESENTATION(kTaggedPointer)) \
|
| V(Internal, 1u << 19 | REPRESENTATION(kTagged | kUntagged)) \
|
| @@ -231,7 +231,7 @@ namespace internal {
|
| V(NumberOrString, kNumber | kString) \
|
| V(NumberOrUndefined, kNumber | kUndefined) \
|
| V(PlainPrimitive, kNumberOrString | kBoolean | kNullOrUndefined) \
|
| - V(Primitive, kSymbol | kPlainPrimitive) \
|
| + V(Primitive, kSymbol | kSimd | kPlainPrimitive) \
|
| V(DetectableReceiver, kOtherObject | kProxy) \
|
| V(Detectable, kDetectableReceiver | kNumber | kName) \
|
| V(Object, kOtherObject | kUndetectable) \
|
| @@ -277,6 +277,7 @@ namespace internal {
|
| // typedef Range;
|
| // typedef Region;
|
| // template<class> struct Handle { typedef type; } // No template typedefs...
|
| +//
|
| // template<class T> static Handle<T>::type null_handle();
|
| // template<class T> static Handle<T>::type handle(T* t); // !is_bitset(t)
|
| // template<class T> static Handle<T>::type cast(Handle<Type>::type);
|
| @@ -423,6 +424,11 @@ class TypeImpl : public Config::Base {
|
| return function;
|
| }
|
|
|
| +#define CONSTRUCT_SIMD_TYPE(NAME, Name, name, lane_count, lane_type) \
|
| + static TypeHandle Name(Isolate* isolate, Region* region);
|
| + SIMD128_TYPES(CONSTRUCT_SIMD_TYPE)
|
| +#undef CONSTRUCT_SIMD_TYPE
|
| +
|
| static TypeHandle Union(TypeHandle type1, TypeHandle type2, Region* reg);
|
| static TypeHandle Intersect(TypeHandle type1, TypeHandle type2, Region* reg);
|
| static TypeImpl* Union(TypeImpl* type1, TypeImpl* type2) {
|
|
|