Index: src/elements.cc |
diff --git a/src/elements.cc b/src/elements.cc |
index 0b745c4505fc2fa40b32bc472eb2f405f4eefed5..e8f8ab89c55dc13161a3152ab0a056a18ad43639 100644 |
--- a/src/elements.cc |
+++ b/src/elements.cc |
@@ -56,6 +56,7 @@ |
// - ExternalIntElementsAccessor |
// - ExternalUnsignedIntElementsAccessor |
// - ExternalFloatElementsAccessor |
+// - ExternalFloat32x4ElementsAccessor |
// - ExternalDoubleElementsAccessor |
// - PixelElementsAccessor |
// - DictionaryElementsAccessor |
@@ -102,6 +103,10 @@ static const int kPackedSizeNotKnown = -1; |
EXTERNAL_UNSIGNED_INT_ELEMENTS, ExternalUnsignedIntArray) \ |
V(ExternalFloatElementsAccessor, \ |
EXTERNAL_FLOAT_ELEMENTS, ExternalFloatArray) \ |
+ V(ExternalFloat32x4ElementsAccessor, \ |
+ EXTERNAL_FLOAT32x4_ELEMENTS, ExternalFloat32x4Array) \ |
+ V(ExternalInt32x4ElementsAccessor, \ |
+ EXTERNAL_INT32x4_ELEMENTS, ExternalInt32x4Array) \ |
V(ExternalDoubleElementsAccessor, \ |
EXTERNAL_DOUBLE_ELEMENTS, ExternalDoubleArray) \ |
V(PixelElementsAccessor, EXTERNAL_PIXEL_ELEMENTS, ExternalPixelArray) |
@@ -1092,6 +1097,10 @@ static inline ElementsKind ElementsKindForArray(FixedArrayBase* array) { |
return EXTERNAL_UNSIGNED_INT_ELEMENTS; |
case EXTERNAL_FLOAT_ARRAY_TYPE: |
return EXTERNAL_FLOAT_ELEMENTS; |
+ case EXTERNAL_FLOAT32x4_ARRAY_TYPE: |
+ return EXTERNAL_FLOAT32x4_ELEMENTS; |
+ case EXTERNAL_INT32x4_ARRAY_TYPE: |
+ return EXTERNAL_INT32x4_ELEMENTS; |
case EXTERNAL_DOUBLE_ARRAY_TYPE: |
return EXTERNAL_DOUBLE_ELEMENTS; |
case EXTERNAL_PIXEL_ARRAY_TYPE: |
@@ -1156,6 +1165,8 @@ class FastSmiOrObjectElementsAccessor |
case EXTERNAL_INT_ELEMENTS: |
case EXTERNAL_UNSIGNED_INT_ELEMENTS: |
case EXTERNAL_FLOAT_ELEMENTS: |
+ case EXTERNAL_FLOAT32x4_ELEMENTS: |
+ case EXTERNAL_INT32x4_ELEMENTS: |
case EXTERNAL_DOUBLE_ELEMENTS: |
case EXTERNAL_PIXEL_ELEMENTS: |
UNREACHABLE(); |
@@ -1281,6 +1292,8 @@ class FastDoubleElementsAccessor |
case EXTERNAL_INT_ELEMENTS: |
case EXTERNAL_UNSIGNED_INT_ELEMENTS: |
case EXTERNAL_FLOAT_ELEMENTS: |
+ case EXTERNAL_FLOAT32x4_ELEMENTS: |
+ case EXTERNAL_INT32x4_ELEMENTS: |
case EXTERNAL_DOUBLE_ELEMENTS: |
case EXTERNAL_PIXEL_ELEMENTS: |
UNREACHABLE(); |
@@ -1462,6 +1475,25 @@ class ExternalFloatElementsAccessor |
EXTERNAL_FLOAT_ELEMENTS>(name) {} |
}; |
+class ExternalFloat32x4ElementsAccessor |
+ : public ExternalElementsAccessor<ExternalFloat32x4ElementsAccessor, |
+ EXTERNAL_FLOAT32x4_ELEMENTS> { |
+ public: |
+ explicit ExternalFloat32x4ElementsAccessor(const char* name) |
+ : ExternalElementsAccessor<ExternalFloat32x4ElementsAccessor, |
+ EXTERNAL_FLOAT32x4_ELEMENTS>(name) {} |
+}; |
+ |
+ |
+class ExternalInt32x4ElementsAccessor |
+ : public ExternalElementsAccessor<ExternalInt32x4ElementsAccessor, |
+ EXTERNAL_INT32x4_ELEMENTS> { |
+ public: |
+ explicit ExternalInt32x4ElementsAccessor(const char* name) |
+ : ExternalElementsAccessor<ExternalInt32x4ElementsAccessor, |
+ EXTERNAL_INT32x4_ELEMENTS>(name) {} |
+}; |
+ |
class ExternalDoubleElementsAccessor |
: public ExternalElementsAccessor<ExternalDoubleElementsAccessor, |