Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: runtime/vm/raw_object.h

Issue 12303013: Simd128Float32, Simd128Mask, and Simd128Float32List additions for dart:scalarlist (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_RAW_OBJECT_H_ 5 #ifndef VM_RAW_OBJECT_H_
6 #define VM_RAW_OBJECT_H_ 6 #define VM_RAW_OBJECT_H_
7 7
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 #include "vm/globals.h" 9 #include "vm/globals.h"
10 #include "vm/token.h" 10 #include "vm/token.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 V(Number) \ 54 V(Number) \
55 V(Integer) \ 55 V(Integer) \
56 V(Smi) \ 56 V(Smi) \
57 V(Mint) \ 57 V(Mint) \
58 V(Bigint) \ 58 V(Bigint) \
59 V(Double) \ 59 V(Double) \
60 V(Bool) \ 60 V(Bool) \
61 V(Array) \ 61 V(Array) \
62 V(ImmutableArray) \ 62 V(ImmutableArray) \
63 V(GrowableObjectArray) \ 63 V(GrowableObjectArray) \
64 V(Simd128Float32) \
65 V(Simd128Mask) \
64 V(ByteArray) \ 66 V(ByteArray) \
65 V(Int8Array) \ 67 V(Int8Array) \
66 V(Uint8Array) \ 68 V(Uint8Array) \
67 V(Uint8ClampedArray) \ 69 V(Uint8ClampedArray) \
68 V(Int16Array) \ 70 V(Int16Array) \
69 V(Uint16Array) \ 71 V(Uint16Array) \
70 V(Int32Array) \ 72 V(Int32Array) \
71 V(Uint32Array) \ 73 V(Uint32Array) \
72 V(Int64Array) \ 74 V(Int64Array) \
73 V(Uint64Array) \ 75 V(Uint64Array) \
76 V(Simd128Float32Array) \
74 V(Float32Array) \ 77 V(Float32Array) \
75 V(Float64Array) \ 78 V(Float64Array) \
76 V(ExternalInt8Array) \ 79 V(ExternalInt8Array) \
77 V(ExternalUint8Array) \ 80 V(ExternalUint8Array) \
78 V(ExternalUint8ClampedArray) \ 81 V(ExternalUint8ClampedArray) \
79 V(ExternalInt16Array) \ 82 V(ExternalInt16Array) \
80 V(ExternalUint16Array) \ 83 V(ExternalUint16Array) \
81 V(ExternalInt32Array) \ 84 V(ExternalInt32Array) \
82 V(ExternalUint32Array) \ 85 V(ExternalUint32Array) \
83 V(ExternalInt64Array) \ 86 V(ExternalInt64Array) \
84 V(ExternalUint64Array) \ 87 V(ExternalUint64Array) \
88 V(ExternalSimd128Float32Array) \
85 V(ExternalFloat32Array) \ 89 V(ExternalFloat32Array) \
86 V(ExternalFloat64Array) \ 90 V(ExternalFloat64Array) \
87 V(Stacktrace) \ 91 V(Stacktrace) \
88 V(JSRegExp) \ 92 V(JSRegExp) \
89 V(WeakProperty) \ 93 V(WeakProperty) \
90 V(DartFunction) \ 94 V(DartFunction) \
91 95
92 #define CLASS_LIST_STRINGS(V) \ 96 #define CLASS_LIST_STRINGS(V) \
93 V(String) \ 97 V(String) \
94 V(OneByteString) \ 98 V(OneByteString) \
(...skipping 1199 matching lines...) Expand 10 before | Expand all | Expand 10 after
1294 RawSmi* length_; 1298 RawSmi* length_;
1295 RawArray* data_; 1299 RawArray* data_;
1296 RawObject** to() { 1300 RawObject** to() {
1297 return reinterpret_cast<RawObject**>(&ptr()->data_); 1301 return reinterpret_cast<RawObject**>(&ptr()->data_);
1298 } 1302 }
1299 1303
1300 friend class SnapshotReader; 1304 friend class SnapshotReader;
1301 }; 1305 };
1302 1306
1303 1307
1308 class RawSimd128Float32 : public RawInstance {
1309 RAW_HEAP_OBJECT_IMPLEMENTATION(Simd128Float32);
1310
1311 float value_[4];
1312
1313 friend class SnapshotReader;
1314 };
1315
1316
1317 class RawSimd128Mask : public RawInstance {
1318 RAW_HEAP_OBJECT_IMPLEMENTATION(Simd128Mask);
1319
1320 uint32_t value_[4];
1321
1322 friend class SnapshotReader;
1323 };
1324
1325
1304 // Define an aliases for intptr_t. 1326 // Define an aliases for intptr_t.
1305 #if defined(ARCH_IS_32_BIT) 1327 #if defined(ARCH_IS_32_BIT)
1306 #define RawIntPtrArray RawInt32Array 1328 #define RawIntPtrArray RawInt32Array
1307 #define IntPtrArray Int32Array 1329 #define IntPtrArray Int32Array
1308 #elif defined(ARCH_IS_64_BIT) 1330 #elif defined(ARCH_IS_64_BIT)
1309 #define RawIntPtrArray RawInt64Array 1331 #define RawIntPtrArray RawInt64Array
1310 #define IntPtrArray Int64Array 1332 #define IntPtrArray Int64Array
1311 #else 1333 #else
1312 #error Architecture is not 32-bit or 64-bit. 1334 #error Architecture is not 32-bit or 64-bit.
1313 #endif // ARCH_IS_32_BIT 1335 #endif // ARCH_IS_32_BIT
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
1394 1416
1395 1417
1396 class RawUint64Array : public RawByteArray { 1418 class RawUint64Array : public RawByteArray {
1397 RAW_HEAP_OBJECT_IMPLEMENTATION(Uint64Array); 1419 RAW_HEAP_OBJECT_IMPLEMENTATION(Uint64Array);
1398 1420
1399 // Variable length data follows here. 1421 // Variable length data follows here.
1400 uint64_t data_[0]; 1422 uint64_t data_[0];
1401 }; 1423 };
1402 1424
1403 1425
1426 class RawSimd128Float32Array : public RawByteArray {
1427 RAW_HEAP_OBJECT_IMPLEMENTATION(Simd128Float32Array);
1428
1429 // Variable length data follows here.
1430 simd_value_t data_[0];
1431 };
1432
1404 class RawFloat32Array : public RawByteArray { 1433 class RawFloat32Array : public RawByteArray {
1405 RAW_HEAP_OBJECT_IMPLEMENTATION(Float32Array); 1434 RAW_HEAP_OBJECT_IMPLEMENTATION(Float32Array);
1406 1435
1407 // Variable length data follows here. 1436 // Variable length data follows here.
1408 float data_[0]; 1437 float data_[0];
1409 }; 1438 };
1410 1439
1411 1440
1412 class RawFloat64Array : public RawByteArray { 1441 class RawFloat64Array : public RawByteArray {
1413 RAW_HEAP_OBJECT_IMPLEMENTATION(Float64Array); 1442 RAW_HEAP_OBJECT_IMPLEMENTATION(Float64Array);
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
1483 1512
1484 1513
1485 class RawExternalUint64Array : public RawByteArray { 1514 class RawExternalUint64Array : public RawByteArray {
1486 RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalUint64Array); 1515 RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalUint64Array);
1487 1516
1488 uint64_t* data_; 1517 uint64_t* data_;
1489 void* peer_; 1518 void* peer_;
1490 }; 1519 };
1491 1520
1492 1521
1522 class RawExternalSimd128Float32Array : public RawByteArray {
1523 RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalSimd128Float32Array);
1524
1525 simd_value_t* data_;
1526 void* peer_;
1527 };
1528
1529
1493 class RawExternalFloat32Array : public RawByteArray { 1530 class RawExternalFloat32Array : public RawByteArray {
1494 RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalFloat32Array); 1531 RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalFloat32Array);
1495 1532
1496 float* data_; 1533 float* data_;
1497 void* peer_; 1534 void* peer_;
1498 }; 1535 };
1499 1536
1500 1537
1501 class RawExternalFloat64Array : public RawByteArray { 1538 class RawExternalFloat64Array : public RawByteArray {
1502 RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalFloat64Array); 1539 RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalFloat64Array);
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1699 kExternalUint64ArrayCid == kExternalInt8ArrayCid + 8 && 1736 kExternalUint64ArrayCid == kExternalInt8ArrayCid + 8 &&
1700 kExternalFloat32ArrayCid == kExternalInt8ArrayCid + 9 && 1737 kExternalFloat32ArrayCid == kExternalInt8ArrayCid + 9 &&
1701 kExternalFloat64ArrayCid == kExternalInt8ArrayCid + 10 && 1738 kExternalFloat64ArrayCid == kExternalInt8ArrayCid + 10 &&
1702 kStacktraceCid == kExternalInt8ArrayCid + 11); 1739 kStacktraceCid == kExternalInt8ArrayCid + 11);
1703 return (index >= kExternalInt8ArrayCid && index <= kExternalFloat64ArrayCid); 1740 return (index >= kExternalInt8ArrayCid && index <= kExternalFloat64ArrayCid);
1704 } 1741 }
1705 1742
1706 } // namespace dart 1743 } // namespace dart
1707 1744
1708 #endif // VM_RAW_OBJECT_H_ 1745 #endif // VM_RAW_OBJECT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698