| Index: runtime/vm/raw_object.h
|
| diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
|
| index 2889ff92760f8f48cdfda083de3dd53c704d9dca..d904d206af8bb55c074d18be67e26d200a16d90f 100644
|
| --- a/runtime/vm/raw_object.h
|
| +++ b/runtime/vm/raw_object.h
|
| @@ -71,6 +71,7 @@ namespace dart {
|
| V(Uint32Array) \
|
| V(Int64Array) \
|
| V(Uint64Array) \
|
| + V(Float32x4Array) \
|
| V(Float32Array) \
|
| V(Float64Array) \
|
| V(ExternalInt8Array) \
|
| @@ -82,12 +83,16 @@ namespace dart {
|
| V(ExternalUint32Array) \
|
| V(ExternalInt64Array) \
|
| V(ExternalUint64Array) \
|
| + V(ExternalFloat32x4Array) \
|
| V(ExternalFloat32Array) \
|
| V(ExternalFloat64Array) \
|
| V(Stacktrace) \
|
| V(JSRegExp) \
|
| V(WeakProperty) \
|
| V(DartFunction) \
|
| + V(Float32x4) \
|
| + V(Uint32x4) \
|
| +
|
|
|
| #define CLASS_LIST_STRINGS(V) \
|
| V(String) \
|
| @@ -1301,6 +1306,24 @@ class RawGrowableObjectArray : public RawInstance {
|
| };
|
|
|
|
|
| +class RawFloat32x4 : public RawInstance {
|
| + RAW_HEAP_OBJECT_IMPLEMENTATION(Float32x4);
|
| +
|
| + float value_[4];
|
| +
|
| + friend class SnapshotReader;
|
| +};
|
| +
|
| +
|
| +class RawUint32x4 : public RawInstance {
|
| + RAW_HEAP_OBJECT_IMPLEMENTATION(Uint32x4);
|
| +
|
| + uint32_t value_[4];
|
| +
|
| + friend class SnapshotReader;
|
| +};
|
| +
|
| +
|
| // Define an aliases for intptr_t.
|
| #if defined(ARCH_IS_32_BIT)
|
| #define RawIntPtrArray RawInt32Array
|
| @@ -1401,6 +1424,13 @@ class RawUint64Array : public RawByteArray {
|
| };
|
|
|
|
|
| +class RawFloat32x4Array : public RawByteArray {
|
| + RAW_HEAP_OBJECT_IMPLEMENTATION(Float32x4Array);
|
| +
|
| + // Variable length data follows here.
|
| + simd_value_t data_[0];
|
| +};
|
| +
|
| class RawFloat32Array : public RawByteArray {
|
| RAW_HEAP_OBJECT_IMPLEMENTATION(Float32Array);
|
|
|
| @@ -1490,6 +1520,14 @@ class RawExternalUint64Array : public RawByteArray {
|
| };
|
|
|
|
|
| +class RawExternalFloat32x4Array : public RawByteArray {
|
| + RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalFloat32x4Array);
|
| +
|
| + simd_value_t* data_;
|
| + void* peer_;
|
| +};
|
| +
|
| +
|
| class RawExternalFloat32Array : public RawByteArray {
|
| RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalFloat32Array);
|
|
|
| @@ -1670,20 +1708,22 @@ inline bool RawObject::IsByteArrayClassId(intptr_t index) {
|
| kUint32ArrayCid == kByteArrayCid + 7 &&
|
| kInt64ArrayCid == kByteArrayCid + 8 &&
|
| kUint64ArrayCid == kByteArrayCid + 9 &&
|
| - kFloat32ArrayCid == kByteArrayCid + 10 &&
|
| - kFloat64ArrayCid == kByteArrayCid + 11 &&
|
| - kExternalInt8ArrayCid == kByteArrayCid + 12 &&
|
| - kExternalUint8ArrayCid == kByteArrayCid + 13 &&
|
| - kExternalUint8ClampedArrayCid == kByteArrayCid + 14 &&
|
| - kExternalInt16ArrayCid == kByteArrayCid + 15 &&
|
| - kExternalUint16ArrayCid == kByteArrayCid + 16 &&
|
| - kExternalInt32ArrayCid == kByteArrayCid + 17 &&
|
| - kExternalUint32ArrayCid == kByteArrayCid + 18 &&
|
| - kExternalInt64ArrayCid == kByteArrayCid + 19 &&
|
| - kExternalUint64ArrayCid == kByteArrayCid + 20 &&
|
| - kExternalFloat32ArrayCid == kByteArrayCid + 21 &&
|
| - kExternalFloat64ArrayCid == kByteArrayCid + 22 &&
|
| - kStacktraceCid == kByteArrayCid + 23);
|
| + kFloat32x4ArrayCid == kByteArrayCid + 10 &&
|
| + kFloat32ArrayCid == kByteArrayCid + 11 &&
|
| + kFloat64ArrayCid == kByteArrayCid + 12 &&
|
| + kExternalInt8ArrayCid == kByteArrayCid + 13 &&
|
| + kExternalUint8ArrayCid == kByteArrayCid + 14 &&
|
| + kExternalUint8ClampedArrayCid == kByteArrayCid + 15 &&
|
| + kExternalInt16ArrayCid == kByteArrayCid + 16 &&
|
| + kExternalUint16ArrayCid == kByteArrayCid + 17 &&
|
| + kExternalInt32ArrayCid == kByteArrayCid + 18 &&
|
| + kExternalUint32ArrayCid == kByteArrayCid + 19 &&
|
| + kExternalInt64ArrayCid == kByteArrayCid + 20 &&
|
| + kExternalUint64ArrayCid == kByteArrayCid + 21 &&
|
| + kExternalFloat32x4ArrayCid == kByteArrayCid + 22 &&
|
| + kExternalFloat32ArrayCid == kByteArrayCid + 23 &&
|
| + kExternalFloat64ArrayCid == kByteArrayCid + 24 &&
|
| + kStacktraceCid == kByteArrayCid + 25);
|
| return (index >= kByteArrayCid && index <= kExternalFloat64ArrayCid);
|
| }
|
|
|
| @@ -1697,9 +1737,10 @@ inline bool RawObject::IsExternalByteArrayClassId(intptr_t index) {
|
| kExternalUint32ArrayCid == kExternalInt8ArrayCid + 6 &&
|
| kExternalInt64ArrayCid == kExternalInt8ArrayCid + 7 &&
|
| kExternalUint64ArrayCid == kExternalInt8ArrayCid + 8 &&
|
| - kExternalFloat32ArrayCid == kExternalInt8ArrayCid + 9 &&
|
| - kExternalFloat64ArrayCid == kExternalInt8ArrayCid + 10 &&
|
| - kStacktraceCid == kExternalInt8ArrayCid + 11);
|
| + kExternalFloat32x4ArrayCid == kExternalInt8ArrayCid + 9 &&
|
| + kExternalFloat32ArrayCid == kExternalInt8ArrayCid + 10 &&
|
| + kExternalFloat64ArrayCid == kExternalInt8ArrayCid + 11 &&
|
| + kStacktraceCid == kExternalInt8ArrayCid + 12);
|
| return (index >= kExternalInt8ArrayCid && index <= kExternalFloat64ArrayCid);
|
| }
|
|
|
|
|