OLD | NEW |
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 #include "vm/object.h" | 5 #include "vm/object.h" |
6 | 6 |
7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" |
10 #include "vm/bigint_operations.h" | 10 #include "vm/bigint_operations.h" |
(...skipping 796 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
807 RegisterPrivateClass(cls, Symbols::_Double(), core_lib); | 807 RegisterPrivateClass(cls, Symbols::_Double(), core_lib); |
808 pending_classes.Add(cls, Heap::kOld); | 808 pending_classes.Add(cls, Heap::kOld); |
809 | 809 |
810 cls = Class::New<WeakProperty>(); | 810 cls = Class::New<WeakProperty>(); |
811 object_store->set_weak_property_class(cls); | 811 object_store->set_weak_property_class(cls); |
812 RegisterPrivateClass(cls, Symbols::_WeakProperty(), core_lib); | 812 RegisterPrivateClass(cls, Symbols::_WeakProperty(), core_lib); |
813 | 813 |
814 Library::InitScalarlistLibrary(isolate); | 814 Library::InitScalarlistLibrary(isolate); |
815 Library& scalarlist_lib = Library::Handle(Library::ScalarlistLibrary()); | 815 Library& scalarlist_lib = Library::Handle(Library::ScalarlistLibrary()); |
816 | 816 |
| 817 cls = Class::New<Simd128Float32>(); |
| 818 object_store->set_simd128_float32_class(cls); |
| 819 RegisterPrivateClass(cls, Symbols::_Simd128Float32(), scalarlist_lib); |
| 820 |
| 821 cls = Class::New<Simd128Mask>(); |
| 822 object_store->set_simd128_mask_class(cls); |
| 823 RegisterPrivateClass(cls, Symbols::_Simd128Mask(), scalarlist_lib); |
| 824 |
817 cls = Class::New<Int8Array>(); | 825 cls = Class::New<Int8Array>(); |
818 object_store->set_int8_array_class(cls); | 826 object_store->set_int8_array_class(cls); |
819 RegisterPrivateClass(cls, Symbols::_Int8Array(), scalarlist_lib); | 827 RegisterPrivateClass(cls, Symbols::_Int8Array(), scalarlist_lib); |
820 | 828 |
821 cls = Class::New<Uint8Array>(); | 829 cls = Class::New<Uint8Array>(); |
822 object_store->set_uint8_array_class(cls); | 830 object_store->set_uint8_array_class(cls); |
823 RegisterPrivateClass(cls, Symbols::_Uint8Array(), scalarlist_lib); | 831 RegisterPrivateClass(cls, Symbols::_Uint8Array(), scalarlist_lib); |
824 | 832 |
825 cls = Class::New<Uint8ClampedArray>(); | 833 cls = Class::New<Uint8ClampedArray>(); |
826 object_store->set_uint8_clamped_array_class(cls); | 834 object_store->set_uint8_clamped_array_class(cls); |
(...skipping 16 matching lines...) Expand all Loading... |
843 RegisterPrivateClass(cls, Symbols::_Uint32Array(), scalarlist_lib); | 851 RegisterPrivateClass(cls, Symbols::_Uint32Array(), scalarlist_lib); |
844 | 852 |
845 cls = Class::New<Int64Array>(); | 853 cls = Class::New<Int64Array>(); |
846 object_store->set_int64_array_class(cls); | 854 object_store->set_int64_array_class(cls); |
847 RegisterPrivateClass(cls, Symbols::_Int64Array(), scalarlist_lib); | 855 RegisterPrivateClass(cls, Symbols::_Int64Array(), scalarlist_lib); |
848 | 856 |
849 cls = Class::New<Uint64Array>(); | 857 cls = Class::New<Uint64Array>(); |
850 object_store->set_uint64_array_class(cls); | 858 object_store->set_uint64_array_class(cls); |
851 RegisterPrivateClass(cls, Symbols::_Uint64Array(), scalarlist_lib); | 859 RegisterPrivateClass(cls, Symbols::_Uint64Array(), scalarlist_lib); |
852 | 860 |
| 861 cls = Class::New<Simd128Float32Array>(); |
| 862 object_store->set_simd128_float32_array_class(cls); |
| 863 RegisterPrivateClass(cls, Symbols::_Simd128Float32Array(), scalarlist_lib); |
| 864 |
853 cls = Class::New<Float32Array>(); | 865 cls = Class::New<Float32Array>(); |
854 object_store->set_float32_array_class(cls); | 866 object_store->set_float32_array_class(cls); |
855 RegisterPrivateClass(cls, Symbols::_Float32Array(), scalarlist_lib); | 867 RegisterPrivateClass(cls, Symbols::_Float32Array(), scalarlist_lib); |
856 | 868 |
857 cls = Class::New<Float64Array>(); | 869 cls = Class::New<Float64Array>(); |
858 object_store->set_float64_array_class(cls); | 870 object_store->set_float64_array_class(cls); |
859 RegisterPrivateClass(cls, Symbols::_Float64Array(), scalarlist_lib); | 871 RegisterPrivateClass(cls, Symbols::_Float64Array(), scalarlist_lib); |
860 | 872 |
861 cls = Class::New<ExternalInt8Array>(); | 873 cls = Class::New<ExternalInt8Array>(); |
862 object_store->set_external_int8_array_class(cls); | 874 object_store->set_external_int8_array_class(cls); |
(...skipping 26 matching lines...) Expand all Loading... |
889 RegisterPrivateClass(cls, Symbols::_ExternalUint32Array(), scalarlist_lib); | 901 RegisterPrivateClass(cls, Symbols::_ExternalUint32Array(), scalarlist_lib); |
890 | 902 |
891 cls = Class::New<ExternalInt64Array>(); | 903 cls = Class::New<ExternalInt64Array>(); |
892 object_store->set_external_int64_array_class(cls); | 904 object_store->set_external_int64_array_class(cls); |
893 RegisterPrivateClass(cls, Symbols::_ExternalInt64Array(), scalarlist_lib); | 905 RegisterPrivateClass(cls, Symbols::_ExternalInt64Array(), scalarlist_lib); |
894 | 906 |
895 cls = Class::New<ExternalUint64Array>(); | 907 cls = Class::New<ExternalUint64Array>(); |
896 object_store->set_external_uint64_array_class(cls); | 908 object_store->set_external_uint64_array_class(cls); |
897 RegisterPrivateClass(cls, Symbols::_ExternalUint64Array(), scalarlist_lib); | 909 RegisterPrivateClass(cls, Symbols::_ExternalUint64Array(), scalarlist_lib); |
898 | 910 |
| 911 cls = Class::New<ExternalSimd128Float32Array>(); |
| 912 object_store->set_external_simd128_float32_array_class(cls); |
| 913 RegisterPrivateClass(cls, Symbols::_ExternalSimd128Float32Array(), |
| 914 scalarlist_lib); |
| 915 |
899 cls = Class::New<ExternalFloat32Array>(); | 916 cls = Class::New<ExternalFloat32Array>(); |
900 object_store->set_external_float32_array_class(cls); | 917 object_store->set_external_float32_array_class(cls); |
901 RegisterPrivateClass(cls, Symbols::_ExternalFloat32Array(), scalarlist_lib); | 918 RegisterPrivateClass(cls, Symbols::_ExternalFloat32Array(), scalarlist_lib); |
902 | 919 |
903 cls = Class::New<ExternalFloat64Array>(); | 920 cls = Class::New<ExternalFloat64Array>(); |
904 object_store->set_external_float64_array_class(cls); | 921 object_store->set_external_float64_array_class(cls); |
905 RegisterPrivateClass(cls, Symbols::_ExternalFloat64Array(), scalarlist_lib); | 922 RegisterPrivateClass(cls, Symbols::_ExternalFloat64Array(), scalarlist_lib); |
906 | 923 |
907 // Set the super type of class Stacktrace to Object type so that the | 924 // Set the super type of class Stacktrace to Object type so that the |
908 // 'toString' method is implemented. | 925 // 'toString' method is implemented. |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1121 | 1138 |
1122 cls = Class::New<Array>(); | 1139 cls = Class::New<Array>(); |
1123 object_store->set_array_class(cls); | 1140 object_store->set_array_class(cls); |
1124 | 1141 |
1125 cls = Class::New<ImmutableArray>(); | 1142 cls = Class::New<ImmutableArray>(); |
1126 object_store->set_immutable_array_class(cls); | 1143 object_store->set_immutable_array_class(cls); |
1127 | 1144 |
1128 cls = Class::New<GrowableObjectArray>(); | 1145 cls = Class::New<GrowableObjectArray>(); |
1129 object_store->set_growable_object_array_class(cls); | 1146 object_store->set_growable_object_array_class(cls); |
1130 | 1147 |
| 1148 cls = Class::New<Simd128Float32>(); |
| 1149 object_store->set_simd128_float32_class(cls); |
| 1150 |
| 1151 cls = Class::New<Simd128Mask>(); |
| 1152 object_store->set_simd128_mask_class(cls); |
| 1153 |
1131 cls = Class::New<Int8Array>(); | 1154 cls = Class::New<Int8Array>(); |
1132 object_store->set_int8_array_class(cls); | 1155 object_store->set_int8_array_class(cls); |
1133 | 1156 |
1134 cls = Class::New<Uint8Array>(); | 1157 cls = Class::New<Uint8Array>(); |
1135 object_store->set_uint8_array_class(cls); | 1158 object_store->set_uint8_array_class(cls); |
1136 | 1159 |
1137 cls = Class::New<Uint8ClampedArray>(); | 1160 cls = Class::New<Uint8ClampedArray>(); |
1138 object_store->set_uint8_clamped_array_class(cls); | 1161 object_store->set_uint8_clamped_array_class(cls); |
1139 | 1162 |
1140 cls = Class::New<Int16Array>(); | 1163 cls = Class::New<Int16Array>(); |
1141 object_store->set_int16_array_class(cls); | 1164 object_store->set_int16_array_class(cls); |
1142 | 1165 |
1143 cls = Class::New<Uint16Array>(); | 1166 cls = Class::New<Uint16Array>(); |
1144 object_store->set_uint16_array_class(cls); | 1167 object_store->set_uint16_array_class(cls); |
1145 | 1168 |
1146 cls = Class::New<Int32Array>(); | 1169 cls = Class::New<Int32Array>(); |
1147 object_store->set_int32_array_class(cls); | 1170 object_store->set_int32_array_class(cls); |
1148 | 1171 |
1149 cls = Class::New<Uint32Array>(); | 1172 cls = Class::New<Uint32Array>(); |
1150 object_store->set_uint32_array_class(cls); | 1173 object_store->set_uint32_array_class(cls); |
1151 | 1174 |
1152 cls = Class::New<Int64Array>(); | 1175 cls = Class::New<Int64Array>(); |
1153 object_store->set_int64_array_class(cls); | 1176 object_store->set_int64_array_class(cls); |
1154 | 1177 |
1155 cls = Class::New<Uint64Array>(); | 1178 cls = Class::New<Uint64Array>(); |
1156 object_store->set_uint64_array_class(cls); | 1179 object_store->set_uint64_array_class(cls); |
1157 | 1180 |
| 1181 cls = Class::New<Simd128Float32Array>(); |
| 1182 object_store->set_simd128_float32_array_class(cls); |
| 1183 |
1158 cls = Class::New<Float32Array>(); | 1184 cls = Class::New<Float32Array>(); |
1159 object_store->set_float32_array_class(cls); | 1185 object_store->set_float32_array_class(cls); |
1160 | 1186 |
1161 cls = Class::New<Float64Array>(); | 1187 cls = Class::New<Float64Array>(); |
1162 object_store->set_float64_array_class(cls); | 1188 object_store->set_float64_array_class(cls); |
1163 | 1189 |
1164 cls = Class::New<ExternalInt8Array>(); | 1190 cls = Class::New<ExternalInt8Array>(); |
1165 object_store->set_external_int8_array_class(cls); | 1191 object_store->set_external_int8_array_class(cls); |
1166 | 1192 |
1167 cls = Class::New<ExternalUint8Array>(); | 1193 cls = Class::New<ExternalUint8Array>(); |
(...skipping 13 matching lines...) Expand all Loading... |
1181 | 1207 |
1182 cls = Class::New<ExternalUint32Array>(); | 1208 cls = Class::New<ExternalUint32Array>(); |
1183 object_store->set_external_uint32_array_class(cls); | 1209 object_store->set_external_uint32_array_class(cls); |
1184 | 1210 |
1185 cls = Class::New<ExternalInt64Array>(); | 1211 cls = Class::New<ExternalInt64Array>(); |
1186 object_store->set_external_int64_array_class(cls); | 1212 object_store->set_external_int64_array_class(cls); |
1187 | 1213 |
1188 cls = Class::New<ExternalUint64Array>(); | 1214 cls = Class::New<ExternalUint64Array>(); |
1189 object_store->set_external_uint64_array_class(cls); | 1215 object_store->set_external_uint64_array_class(cls); |
1190 | 1216 |
| 1217 cls = Class::New<ExternalSimd128Float32Array>(); |
| 1218 object_store->set_external_simd128_float32_array_class(cls); |
| 1219 |
1191 cls = Class::New<ExternalFloat32Array>(); | 1220 cls = Class::New<ExternalFloat32Array>(); |
1192 object_store->set_external_float32_array_class(cls); | 1221 object_store->set_external_float32_array_class(cls); |
1193 | 1222 |
1194 cls = Class::New<ExternalFloat64Array>(); | 1223 cls = Class::New<ExternalFloat64Array>(); |
1195 object_store->set_external_float64_array_class(cls); | 1224 object_store->set_external_float64_array_class(cls); |
1196 | 1225 |
1197 cls = Class::New<Integer>(); | 1226 cls = Class::New<Integer>(); |
1198 object_store->set_integer_implementation_class(cls); | 1227 object_store->set_integer_implementation_class(cls); |
1199 | 1228 |
1200 cls = Class::New<Smi>(); | 1229 cls = Class::New<Smi>(); |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1383 return Symbols::Double().raw(); | 1412 return Symbols::Double().raw(); |
1384 case kOneByteStringCid: | 1413 case kOneByteStringCid: |
1385 case kTwoByteStringCid: | 1414 case kTwoByteStringCid: |
1386 case kExternalOneByteStringCid: | 1415 case kExternalOneByteStringCid: |
1387 case kExternalTwoByteStringCid: | 1416 case kExternalTwoByteStringCid: |
1388 return Symbols::New("String"); | 1417 return Symbols::New("String"); |
1389 case kArrayCid: | 1418 case kArrayCid: |
1390 case kImmutableArrayCid: | 1419 case kImmutableArrayCid: |
1391 case kGrowableObjectArrayCid: | 1420 case kGrowableObjectArrayCid: |
1392 return Symbols::List().raw(); | 1421 return Symbols::List().raw(); |
| 1422 case kSimd128Float32Cid: |
| 1423 return Symbols::Simd128Float32().raw(); |
| 1424 case kSimd128MaskCid: |
| 1425 return Symbols::Simd128Mask().raw(); |
1393 case kInt8ArrayCid: | 1426 case kInt8ArrayCid: |
1394 case kExternalInt8ArrayCid: | 1427 case kExternalInt8ArrayCid: |
1395 return Symbols::Int8List().raw(); | 1428 return Symbols::Int8List().raw(); |
1396 case kUint8ArrayCid: | 1429 case kUint8ArrayCid: |
1397 case kExternalUint8ArrayCid: | 1430 case kExternalUint8ArrayCid: |
1398 return Symbols::Uint8List().raw(); | 1431 return Symbols::Uint8List().raw(); |
1399 case kUint8ClampedArrayCid: | 1432 case kUint8ClampedArrayCid: |
1400 case kExternalUint8ClampedArrayCid: | 1433 case kExternalUint8ClampedArrayCid: |
1401 return Symbols::Uint8ClampedList().raw(); | 1434 return Symbols::Uint8ClampedList().raw(); |
1402 case kInt16ArrayCid: | 1435 case kInt16ArrayCid: |
1403 case kExternalInt16ArrayCid: | 1436 case kExternalInt16ArrayCid: |
1404 return Symbols::Int16List().raw(); | 1437 return Symbols::Int16List().raw(); |
1405 case kUint16ArrayCid: | 1438 case kUint16ArrayCid: |
1406 case kExternalUint16ArrayCid: | 1439 case kExternalUint16ArrayCid: |
1407 return Symbols::Uint16List().raw(); | 1440 return Symbols::Uint16List().raw(); |
1408 case kInt32ArrayCid: | 1441 case kInt32ArrayCid: |
1409 case kExternalInt32ArrayCid: | 1442 case kExternalInt32ArrayCid: |
1410 return Symbols::Int32List().raw(); | 1443 return Symbols::Int32List().raw(); |
1411 case kUint32ArrayCid: | 1444 case kUint32ArrayCid: |
1412 case kExternalUint32ArrayCid: | 1445 case kExternalUint32ArrayCid: |
1413 return Symbols::Uint32List().raw(); | 1446 return Symbols::Uint32List().raw(); |
1414 case kInt64ArrayCid: | 1447 case kInt64ArrayCid: |
1415 case kExternalInt64ArrayCid: | 1448 case kExternalInt64ArrayCid: |
1416 return Symbols::Int64List().raw(); | 1449 return Symbols::Int64List().raw(); |
1417 case kUint64ArrayCid: | 1450 case kUint64ArrayCid: |
1418 case kExternalUint64ArrayCid: | 1451 case kExternalUint64ArrayCid: |
1419 return Symbols::Uint64List().raw(); | 1452 return Symbols::Uint64List().raw(); |
| 1453 case kSimd128Float32ArrayCid: |
| 1454 case kExternalSimd128Float32ArrayCid: |
| 1455 return Symbols::Simd128Float32List().raw(); |
1420 case kFloat32ArrayCid: | 1456 case kFloat32ArrayCid: |
1421 case kExternalFloat32ArrayCid: | 1457 case kExternalFloat32ArrayCid: |
1422 return Symbols::Float32List().raw(); | 1458 return Symbols::Float32List().raw(); |
1423 case kFloat64ArrayCid: | 1459 case kFloat64ArrayCid: |
1424 case kExternalFloat64ArrayCid: | 1460 case kExternalFloat64ArrayCid: |
1425 return Symbols::Float64List().raw(); | 1461 return Symbols::Float64List().raw(); |
1426 default: | 1462 default: |
1427 if (!IsSignatureClass()) { | 1463 if (!IsSignatureClass()) { |
1428 const String& name = String::Handle(Name()); | 1464 const String& name = String::Handle(Name()); |
1429 return IdentifierPrettyName(name); | 1465 return IdentifierPrettyName(name); |
(...skipping 10612 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12042 } | 12078 } |
12043 return result.raw(); | 12079 return result.raw(); |
12044 } | 12080 } |
12045 | 12081 |
12046 | 12082 |
12047 const char* GrowableObjectArray::ToCString() const { | 12083 const char* GrowableObjectArray::ToCString() const { |
12048 return "GrowableObjectArray"; | 12084 return "GrowableObjectArray"; |
12049 } | 12085 } |
12050 | 12086 |
12051 | 12087 |
| 12088 RawSimd128Float32* Simd128Float32::New(float v0, float v1, float v2, float v3, |
| 12089 Heap::Space space) { |
| 12090 ASSERT(Isolate::Current()->object_store()->simd128_float32_class() != |
| 12091 Class::null()); |
| 12092 Simd128Float32& result = Simd128Float32::Handle(); |
| 12093 { |
| 12094 RawObject* raw = Object::Allocate(Simd128Float32::kClassId, |
| 12095 Simd128Float32::InstanceSize(), |
| 12096 space); |
| 12097 NoGCScope no_gc; |
| 12098 result ^= raw; |
| 12099 } |
| 12100 result.set_x(v0); |
| 12101 result.set_y(v1); |
| 12102 result.set_z(v2); |
| 12103 result.set_w(v3); |
| 12104 return result.raw(); |
| 12105 } |
| 12106 |
| 12107 |
| 12108 RawSimd128Float32* Simd128Float32::New(simd_value_t value, |
| 12109 Heap::Space space) { |
| 12110 ASSERT(Isolate::Current()->object_store()->simd128_float32_class() != |
| 12111 Class::null()); |
| 12112 Simd128Float32& result = Simd128Float32::Handle(); |
| 12113 { |
| 12114 RawObject* raw = Object::Allocate(Simd128Float32::kClassId, |
| 12115 Simd128Float32::InstanceSize(), |
| 12116 space); |
| 12117 NoGCScope no_gc; |
| 12118 result ^= raw; |
| 12119 } |
| 12120 result.set_value(value); |
| 12121 return result.raw(); |
| 12122 } |
| 12123 |
| 12124 |
| 12125 simd_value_t Simd128Float32::value() const { |
| 12126 return simd_value_safe_load(&raw_ptr()->value_[0]); |
| 12127 } |
| 12128 |
| 12129 |
| 12130 void Simd128Float32::set_value(simd_value_t value) const { |
| 12131 simd_value_safe_store(&raw_ptr()->value_[0], value); |
| 12132 } |
| 12133 |
| 12134 |
| 12135 void Simd128Float32::set_x(float value) const { |
| 12136 raw_ptr()->value_[0] = value; |
| 12137 } |
| 12138 |
| 12139 |
| 12140 void Simd128Float32::set_y(float value) const { |
| 12141 raw_ptr()->value_[1] = value; |
| 12142 } |
| 12143 |
| 12144 |
| 12145 void Simd128Float32::set_z(float value) const { |
| 12146 raw_ptr()->value_[2] = value; |
| 12147 } |
| 12148 |
| 12149 |
| 12150 void Simd128Float32::set_w(float value) const { |
| 12151 raw_ptr()->value_[3] = value; |
| 12152 } |
| 12153 |
| 12154 |
| 12155 float Simd128Float32::x() const { |
| 12156 return raw_ptr()->value_[0]; |
| 12157 } |
| 12158 |
| 12159 |
| 12160 float Simd128Float32::y() const { |
| 12161 return raw_ptr()->value_[1]; |
| 12162 } |
| 12163 |
| 12164 |
| 12165 float Simd128Float32::z() const { |
| 12166 return raw_ptr()->value_[2]; |
| 12167 } |
| 12168 |
| 12169 |
| 12170 float Simd128Float32::w() const { |
| 12171 return raw_ptr()->value_[3]; |
| 12172 } |
| 12173 |
| 12174 |
| 12175 const char* Simd128Float32::ToCString() const { |
| 12176 const char* kFormat = "[%f, %f, %f, %f]"; |
| 12177 float _x = x(); |
| 12178 float _y = y(); |
| 12179 float _z = z(); |
| 12180 float _w = w(); |
| 12181 // Calculate the size of the string. |
| 12182 intptr_t len = OS::SNPrint(NULL, 0, kFormat, _x, _y, _z, _w) + 1; |
| 12183 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
| 12184 OS::SNPrint(chars, len, kFormat, _x, _y, _z, _w); |
| 12185 return chars; |
| 12186 } |
| 12187 |
| 12188 |
| 12189 RawSimd128Mask* Simd128Mask::New(uint32_t v0, uint32_t v1, uint32_t v2, |
| 12190 uint32_t v3, Heap::Space space) { |
| 12191 ASSERT(Isolate::Current()->object_store()->simd128_mask_class() != |
| 12192 Class::null()); |
| 12193 Simd128Mask& result = Simd128Mask::Handle(); |
| 12194 { |
| 12195 RawObject* raw = Object::Allocate(Simd128Mask::kClassId, |
| 12196 Simd128Mask::InstanceSize(), |
| 12197 space); |
| 12198 NoGCScope no_gc; |
| 12199 result ^= raw; |
| 12200 } |
| 12201 result.set_x(v0); |
| 12202 result.set_y(v1); |
| 12203 result.set_z(v2); |
| 12204 result.set_w(v3); |
| 12205 return result.raw(); |
| 12206 } |
| 12207 |
| 12208 |
| 12209 void Simd128Mask::set_x(uint32_t value) const { |
| 12210 raw_ptr()->value_[0] = value; |
| 12211 } |
| 12212 |
| 12213 |
| 12214 void Simd128Mask::set_y(uint32_t value) const { |
| 12215 raw_ptr()->value_[1] = value; |
| 12216 } |
| 12217 |
| 12218 |
| 12219 void Simd128Mask::set_z(uint32_t value) const { |
| 12220 raw_ptr()->value_[2] = value; |
| 12221 } |
| 12222 |
| 12223 |
| 12224 void Simd128Mask::set_w(uint32_t value) const { |
| 12225 raw_ptr()->value_[3] = value; |
| 12226 } |
| 12227 |
| 12228 |
| 12229 uint32_t Simd128Mask::x() const { |
| 12230 return raw_ptr()->value_[0]; |
| 12231 } |
| 12232 |
| 12233 |
| 12234 uint32_t Simd128Mask::y() const { |
| 12235 return raw_ptr()->value_[1]; |
| 12236 } |
| 12237 |
| 12238 |
| 12239 uint32_t Simd128Mask::z() const { |
| 12240 return raw_ptr()->value_[2]; |
| 12241 } |
| 12242 |
| 12243 |
| 12244 uint32_t Simd128Mask::w() const { |
| 12245 return raw_ptr()->value_[3]; |
| 12246 } |
| 12247 |
| 12248 |
| 12249 const char* Simd128Mask::ToCString() const { |
| 12250 const char* kFormat = "[%08x, %08x, %08x, %08x]"; |
| 12251 uint32_t _x = x(); |
| 12252 uint32_t _y = y(); |
| 12253 uint32_t _z = z(); |
| 12254 uint32_t _w = w(); |
| 12255 // Calculate the size of the string. |
| 12256 intptr_t len = OS::SNPrint(NULL, 0, kFormat, _x, _y, _z, _w) + 1; |
| 12257 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
| 12258 OS::SNPrint(chars, len, kFormat, _x, _y, _z, _w); |
| 12259 return chars; |
| 12260 } |
| 12261 |
| 12262 |
12052 void ByteArray::Copy(void* dst, | 12263 void ByteArray::Copy(void* dst, |
12053 const ByteArray& src, | 12264 const ByteArray& src, |
12054 intptr_t src_offset, | 12265 intptr_t src_offset, |
12055 intptr_t length) { | 12266 intptr_t length) { |
12056 ASSERT(Utils::RangeCheck(src_offset, length, src.ByteLength())); | 12267 ASSERT(Utils::RangeCheck(src_offset, length, src.ByteLength())); |
12057 { | 12268 { |
12058 NoGCScope no_gc; | 12269 NoGCScope no_gc; |
12059 if (length > 0) { | 12270 if (length > 0) { |
12060 memmove(dst, src.ByteAddr(src_offset), length); | 12271 memmove(dst, src.ByteAddr(src_offset), length); |
12061 } | 12272 } |
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12374 Class::null()); | 12585 Class::null()); |
12375 return NewImpl<Uint64Array, RawUint64Array>(kClassId, data, len, space); | 12586 return NewImpl<Uint64Array, RawUint64Array>(kClassId, data, len, space); |
12376 } | 12587 } |
12377 | 12588 |
12378 | 12589 |
12379 const char* Uint64Array::ToCString() const { | 12590 const char* Uint64Array::ToCString() const { |
12380 return "_Uint64Array"; | 12591 return "_Uint64Array"; |
12381 } | 12592 } |
12382 | 12593 |
12383 | 12594 |
| 12595 RawSimd128Float32Array* Simd128Float32Array::New(intptr_t len, |
| 12596 Heap::Space space) { |
| 12597 ASSERT(Isolate::Current()->object_store()->simd128_float32_array_class() != |
| 12598 Class::null()); |
| 12599 return NewImpl<Simd128Float32Array, RawSimd128Float32Array>(kClassId, len, |
| 12600 space); |
| 12601 } |
| 12602 |
| 12603 |
| 12604 RawSimd128Float32Array* Simd128Float32Array::New(const simd_value_t* data, |
| 12605 intptr_t len, |
| 12606 Heap::Space space) { |
| 12607 ASSERT(Isolate::Current()->object_store()->float32_array_class() != |
| 12608 Class::null()); |
| 12609 return NewImpl<Simd128Float32Array, RawSimd128Float32Array>(kClassId, data, |
| 12610 len, space); |
| 12611 } |
| 12612 |
| 12613 |
| 12614 const char* Simd128Float32Array::ToCString() const { |
| 12615 return "_Simd128Float32Array"; |
| 12616 } |
| 12617 |
| 12618 |
12384 RawFloat32Array* Float32Array::New(intptr_t len, Heap::Space space) { | 12619 RawFloat32Array* Float32Array::New(intptr_t len, Heap::Space space) { |
12385 ASSERT(Isolate::Current()->object_store()->float32_array_class() != | 12620 ASSERT(Isolate::Current()->object_store()->float32_array_class() != |
12386 Class::null()); | 12621 Class::null()); |
12387 return NewImpl<Float32Array, RawFloat32Array>(kClassId, len, space); | 12622 return NewImpl<Float32Array, RawFloat32Array>(kClassId, len, space); |
12388 } | 12623 } |
12389 | 12624 |
12390 | 12625 |
12391 RawFloat32Array* Float32Array::New(const float* data, | 12626 RawFloat32Array* Float32Array::New(const float* data, |
12392 intptr_t len, | 12627 intptr_t len, |
12393 Heap::Space space) { | 12628 Heap::Space space) { |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12554 return NewExternalImpl<ExternalUint64Array, | 12789 return NewExternalImpl<ExternalUint64Array, |
12555 RawExternalUint64Array>(kClassId, data, len, space); | 12790 RawExternalUint64Array>(kClassId, data, len, space); |
12556 } | 12791 } |
12557 | 12792 |
12558 | 12793 |
12559 const char* ExternalUint64Array::ToCString() const { | 12794 const char* ExternalUint64Array::ToCString() const { |
12560 return "_ExternalUint64Array"; | 12795 return "_ExternalUint64Array"; |
12561 } | 12796 } |
12562 | 12797 |
12563 | 12798 |
| 12799 RawExternalSimd128Float32Array* ExternalSimd128Float32Array::New( |
| 12800 simd_value_t* data, |
| 12801 intptr_t len, |
| 12802 Heap::Space space) { |
| 12803 RawClass* cls = |
| 12804 Isolate::Current()->object_store()->external_simd128_float32_array_class(); |
| 12805 ASSERT(cls != Class::null()); |
| 12806 return NewExternalImpl<ExternalSimd128Float32Array, |
| 12807 RawExternalSimd128Float32Array>(kClassId, data, len, |
| 12808 space); |
| 12809 } |
| 12810 |
| 12811 |
| 12812 const char* ExternalSimd128Float32Array::ToCString() const { |
| 12813 return "_ExternalSimd128Float32Array"; |
| 12814 } |
| 12815 |
| 12816 |
12564 RawExternalFloat32Array* ExternalFloat32Array::New(float* data, | 12817 RawExternalFloat32Array* ExternalFloat32Array::New(float* data, |
12565 intptr_t len, | 12818 intptr_t len, |
12566 Heap::Space space) { | 12819 Heap::Space space) { |
12567 ASSERT(Isolate::Current()->object_store()->external_float32_array_class() != | 12820 ASSERT(Isolate::Current()->object_store()->external_float32_array_class() != |
12568 Class::null()); | 12821 Class::null()); |
12569 return NewExternalImpl<ExternalFloat32Array, | 12822 return NewExternalImpl<ExternalFloat32Array, |
12570 RawExternalFloat32Array>(kClassId, data, len, space); | 12823 RawExternalFloat32Array>(kClassId, data, len, space); |
12571 } | 12824 } |
12572 | 12825 |
12573 | 12826 |
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12892 } | 13145 } |
12893 return result.raw(); | 13146 return result.raw(); |
12894 } | 13147 } |
12895 | 13148 |
12896 | 13149 |
12897 const char* WeakProperty::ToCString() const { | 13150 const char* WeakProperty::ToCString() const { |
12898 return "_WeakProperty"; | 13151 return "_WeakProperty"; |
12899 } | 13152 } |
12900 | 13153 |
12901 } // namespace dart | 13154 } // namespace dart |
OLD | NEW |