| 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/bootstrap_natives.h" | 5 #include "vm/bootstrap_natives.h" |
| 6 | 6 |
| 7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
| 8 | 8 |
| 9 #include "vm/bigint_operations.h" | 9 #include "vm/bigint_operations.h" |
| 10 #include "vm/exceptions.h" | 10 #include "vm/exceptions.h" |
| (...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 245 UNALIGNED_GETTER_UINT64(ByteArray); | 245 UNALIGNED_GETTER_UINT64(ByteArray); |
| 246 } | 246 } |
| 247 | 247 |
| 248 | 248 |
| 249 DEFINE_NATIVE_ENTRY(ByteArray_setUint64, 3) { | 249 DEFINE_NATIVE_ENTRY(ByteArray_setUint64, 3) { |
| 250 UNALIGNED_SETTER_UINT64(ByteArray); | 250 UNALIGNED_SETTER_UINT64(ByteArray); |
| 251 } | 251 } |
| 252 | 252 |
| 253 | 253 |
| 254 DEFINE_NATIVE_ENTRY(ByteArray_getFloat32x4, 2) { | 254 DEFINE_NATIVE_ENTRY(ByteArray_getFloat32x4, 2) { |
| 255 UNALIGNED_GETTER(ByteArray, Float32x4, simd_value_t); | 255 UNALIGNED_GETTER(ByteArray, Float32x4, simd128_value_t); |
| 256 } | 256 } |
| 257 | 257 |
| 258 | 258 |
| 259 DEFINE_NATIVE_ENTRY(ByteArray_setFloat32x4, 3) { | 259 DEFINE_NATIVE_ENTRY(ByteArray_setFloat32x4, 3) { |
| 260 UNALIGNED_SETTER(ByteArray, Float32x4, value, simd_value_t); | 260 UNALIGNED_SETTER(ByteArray, Float32x4, value, simd128_value_t); |
| 261 } | 261 } |
| 262 | 262 |
| 263 | 263 |
| 264 DEFINE_NATIVE_ENTRY(ByteArray_getFloat32, 2) { | 264 DEFINE_NATIVE_ENTRY(ByteArray_getFloat32, 2) { |
| 265 UNALIGNED_GETTER(ByteArray, Double, float); | 265 UNALIGNED_GETTER(ByteArray, Double, float); |
| 266 } | 266 } |
| 267 | 267 |
| 268 | 268 |
| 269 DEFINE_NATIVE_ENTRY(ByteArray_setFloat32, 3) { | 269 DEFINE_NATIVE_ENTRY(ByteArray_setFloat32, 3) { |
| 270 UNALIGNED_SETTER(ByteArray, Double, value, float); | 270 UNALIGNED_SETTER(ByteArray, Double, value, float); |
| (...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 614 LengthCheck(len, Float32x4Array::kMaxElements); | 614 LengthCheck(len, Float32x4Array::kMaxElements); |
| 615 return Float32x4Array::New(len); | 615 return Float32x4Array::New(len); |
| 616 } | 616 } |
| 617 | 617 |
| 618 | 618 |
| 619 DEFINE_NATIVE_ENTRY(Float32x4List_newTransferable, 1) { | 619 DEFINE_NATIVE_ENTRY(Float32x4List_newTransferable, 1) { |
| 620 const int kAlignment = 16; | 620 const int kAlignment = 16; |
| 621 GET_NON_NULL_NATIVE_ARGUMENT(Smi, length, arguments->NativeArgAt(0)); | 621 GET_NON_NULL_NATIVE_ARGUMENT(Smi, length, arguments->NativeArgAt(0)); |
| 622 intptr_t len = length.Value(); | 622 intptr_t len = length.Value(); |
| 623 LengthCheck(len, Float32x4Array::kMaxElements); | 623 LengthCheck(len, Float32x4Array::kMaxElements); |
| 624 simd_value_t* bytes = OS::AllocateAlignedArray<simd_value_t>(len, kAlignment); | 624 simd128_value_t* bytes = |
| 625 OS::AllocateAlignedArray<simd128_value_t>(len, kAlignment); |
| 625 const ExternalFloat32x4Array& obj = | 626 const ExternalFloat32x4Array& obj = |
| 626 ExternalFloat32x4Array::Handle(ExternalFloat32x4Array::New(bytes, len)); | 627 ExternalFloat32x4Array::Handle(ExternalFloat32x4Array::New(bytes, len)); |
| 627 obj.AddFinalizer(bytes, PeerFinalizer); | 628 obj.AddFinalizer(bytes, PeerFinalizer); |
| 628 return obj.raw(); | 629 return obj.raw(); |
| 629 } | 630 } |
| 630 | 631 |
| 631 | 632 |
| 632 DEFINE_NATIVE_ENTRY(Float32x4Array_getIndexed, 2) { | 633 DEFINE_NATIVE_ENTRY(Float32x4Array_getIndexed, 2) { |
| 633 GETTER(Float32x4Array, Float32x4, simd_value_t); | 634 GETTER(Float32x4Array, Float32x4, simd128_value_t); |
| 634 } | 635 } |
| 635 | 636 |
| 636 | 637 |
| 637 DEFINE_NATIVE_ENTRY(Float32x4Array_setIndexed, 3) { | 638 DEFINE_NATIVE_ENTRY(Float32x4Array_setIndexed, 3) { |
| 638 SETTER(Float32x4Array, Float32x4, value, simd_value_t); | 639 SETTER(Float32x4Array, Float32x4, value, simd128_value_t); |
| 639 } | 640 } |
| 640 | 641 |
| 641 | 642 |
| 642 // Float32Array | 643 // Float32Array |
| 643 | 644 |
| 644 DEFINE_NATIVE_ENTRY(Float32Array_new, 1) { | 645 DEFINE_NATIVE_ENTRY(Float32Array_new, 1) { |
| 645 GET_NON_NULL_NATIVE_ARGUMENT(Smi, length, arguments->NativeArgAt(0)); | 646 GET_NON_NULL_NATIVE_ARGUMENT(Smi, length, arguments->NativeArgAt(0)); |
| 646 intptr_t len = length.Value(); | 647 intptr_t len = length.Value(); |
| 647 LengthCheck(len, Float32Array::kMaxElements); | 648 LengthCheck(len, Float32Array::kMaxElements); |
| 648 return Float32Array::New(len); | 649 return Float32Array::New(len); |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 809 | 810 |
| 810 | 811 |
| 811 DEFINE_NATIVE_ENTRY(ExternalUint64Array_setIndexed, 3) { | 812 DEFINE_NATIVE_ENTRY(ExternalUint64Array_setIndexed, 3) { |
| 812 SETTER_UINT64(ExternalUint64Array); | 813 SETTER_UINT64(ExternalUint64Array); |
| 813 } | 814 } |
| 814 | 815 |
| 815 | 816 |
| 816 // ExternalFloat32x4Array | 817 // ExternalFloat32x4Array |
| 817 | 818 |
| 818 DEFINE_NATIVE_ENTRY(ExternalFloat32x4Array_getIndexed, 2) { | 819 DEFINE_NATIVE_ENTRY(ExternalFloat32x4Array_getIndexed, 2) { |
| 819 GETTER(ExternalFloat32x4Array, Float32x4, simd_value_t); | 820 GETTER(ExternalFloat32x4Array, Float32x4, simd128_value_t); |
| 820 } | 821 } |
| 821 | 822 |
| 822 | 823 |
| 823 DEFINE_NATIVE_ENTRY(ExternalFloat32x4Array_setIndexed, 3) { | 824 DEFINE_NATIVE_ENTRY(ExternalFloat32x4Array_setIndexed, 3) { |
| 824 SETTER(ExternalFloat32x4Array, Float32x4, value, simd_value_t); | 825 SETTER(ExternalFloat32x4Array, Float32x4, value, simd128_value_t); |
| 825 } | 826 } |
| 826 | 827 |
| 827 | 828 |
| 828 // ExternalFloat32Array | 829 // ExternalFloat32Array |
| 829 | 830 |
| 830 DEFINE_NATIVE_ENTRY(ExternalFloat32Array_getIndexed, 2) { | 831 DEFINE_NATIVE_ENTRY(ExternalFloat32Array_getIndexed, 2) { |
| 831 GETTER(ExternalFloat32Array, Double, float); | 832 GETTER(ExternalFloat32Array, Double, float); |
| 832 } | 833 } |
| 833 | 834 |
| 834 | 835 |
| 835 DEFINE_NATIVE_ENTRY(ExternalFloat32Array_setIndexed, 3) { | 836 DEFINE_NATIVE_ENTRY(ExternalFloat32Array_setIndexed, 3) { |
| 836 SETTER(ExternalFloat32Array, Double, value, float); | 837 SETTER(ExternalFloat32Array, Double, value, float); |
| 837 } | 838 } |
| 838 | 839 |
| 839 | 840 |
| 840 // ExternalFloat64Array | 841 // ExternalFloat64Array |
| 841 | 842 |
| 842 DEFINE_NATIVE_ENTRY(ExternalFloat64Array_getIndexed, 2) { | 843 DEFINE_NATIVE_ENTRY(ExternalFloat64Array_getIndexed, 2) { |
| 843 GETTER(ExternalFloat64Array, Double, double); | 844 GETTER(ExternalFloat64Array, Double, double); |
| 844 } | 845 } |
| 845 | 846 |
| 846 | 847 |
| 847 DEFINE_NATIVE_ENTRY(ExternalFloat64Array_setIndexed, 3) { | 848 DEFINE_NATIVE_ENTRY(ExternalFloat64Array_setIndexed, 3) { |
| 848 SETTER(ExternalFloat64Array, Double, value, double); | 849 SETTER(ExternalFloat64Array, Double, value, double); |
| 849 } | 850 } |
| 850 | 851 |
| 851 } // namespace dart | 852 } // namespace dart |
| OLD | NEW |