| Index: src/typing-asm.h
|
| diff --git a/src/typing-asm.h b/src/typing-asm.h
|
| index 5f7a929a1e5bf99e7c8c1d4136ceb3a97e738d49..0f5306fa123e5f72228f29ee59bfd890e3d94aa4 100644
|
| --- a/src/typing-asm.h
|
| +++ b/src/typing-asm.h
|
| @@ -22,6 +22,7 @@ class AsmTyper : public AstVisitor {
|
| explicit AsmTyper(Isolate* isolate, Zone* zone, Script* script,
|
| FunctionLiteral* root);
|
| bool Validate();
|
| + void set_allow_simd(bool simd);
|
| const char* error_message() { return error_message_; }
|
|
|
| DEFINE_AST_VISITOR_SUBCLASS_MEMBERS();
|
| @@ -31,6 +32,7 @@ class AsmTyper : public AstVisitor {
|
| Script* script_;
|
| FunctionLiteral* root_;
|
| bool valid_;
|
| + bool allow_simd_;
|
|
|
| // Information for bi-directional typing with a cap on nesting depth.
|
| Type* expected_type_;
|
| @@ -44,6 +46,10 @@ class AsmTyper : public AstVisitor {
|
| ObjectTypeMap stdlib_types_;
|
| ObjectTypeMap stdlib_heap_types_;
|
| ObjectTypeMap stdlib_math_types_;
|
| +#define V(NAME, Name, name, lane_count, lane_type) \
|
| + ObjectTypeMap stdlib_simd_##name##_types_;
|
| + SIMD128_TYPES(V)
|
| +#undef V
|
|
|
| // Map from Variable* to global/local variable Type*.
|
| ZoneHashMap global_variable_type_;
|
| @@ -71,6 +77,13 @@ class AsmTyper : public AstVisitor {
|
|
|
| void VisitHeapAccess(Property* expr);
|
|
|
| + bool IsMathObject(Expression* expr);
|
| + bool IsSIMDObject(Expression* expr);
|
| + bool IsSIMDTypeObject(Expression* expr, const char* name);
|
| + bool IsStdlibObject(Expression* expr);
|
| +
|
| + void VisitSIMDProperty(Property* expr);
|
| +
|
| int ElementShiftSize(Type* type);
|
| Type* StorageType(Type* type);
|
|
|
|
|