mirror of
https://github.com/dart-lang/sdk
synced 2024-10-06 14:49:43 +00:00
[vm] Mark external methods used in Pointer.asTypedList() with resulting type
It allows the compiler to propagate this information in TFA - which may be beneficial for cases when those methods aren't inlined. TEST=ci Change-Id: I55711806800e2a56e83a42cd51be705b68c3a4f3 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/324701 Reviewed-by: Daco Harkes <dacoharkes@google.com> Reviewed-by: Tess Strickland <sstrickl@google.com> Commit-Queue: Martin Kustermann <kustermann@google.com>
This commit is contained in:
parent
655687db77
commit
781a8ef9c0
|
@ -310,16 +310,16 @@ namespace dart {
|
|||
V(::, _storePointer, FfiStorePointer, 0x8b5a5939) \
|
||||
V(::, _fromAddress, FfiFromAddress, 0x810f9a01) \
|
||||
V(Pointer, get:address, FfiGetAddress, 0x7ccffbde) \
|
||||
V(::, _asExternalTypedDataInt8, FfiAsExternalTypedDataInt8, 0x767b7ab8) \
|
||||
V(::, _asExternalTypedDataInt16, FfiAsExternalTypedDataInt16, 0xd08e6de6) \
|
||||
V(::, _asExternalTypedDataInt32, FfiAsExternalTypedDataInt32, 0x3815fd66) \
|
||||
V(::, _asExternalTypedDataInt64, FfiAsExternalTypedDataInt64, 0xaf9bbc1b) \
|
||||
V(::, _asExternalTypedDataUint8, FfiAsExternalTypedDataUint8, 0x3513fc54) \
|
||||
V(::, _asExternalTypedDataUint16, FfiAsExternalTypedDataUint16, 0x8996925a) \
|
||||
V(::, _asExternalTypedDataUint32, FfiAsExternalTypedDataUint32, 0xd2645061) \
|
||||
V(::, _asExternalTypedDataUint64, FfiAsExternalTypedDataUint64, 0x06afe5e5) \
|
||||
V(::, _asExternalTypedDataFloat, FfiAsExternalTypedDataFloat, 0x6f37d22c) \
|
||||
V(::, _asExternalTypedDataDouble, FfiAsExternalTypedDataDouble, 0x40bf4e01) \
|
||||
V(::, _asExternalTypedDataInt8, FfiAsExternalTypedDataInt8, 0x767b7e79) \
|
||||
V(::, _asExternalTypedDataInt16, FfiAsExternalTypedDataInt16, 0xd08e71a7) \
|
||||
V(::, _asExternalTypedDataInt32, FfiAsExternalTypedDataInt32, 0x38160127) \
|
||||
V(::, _asExternalTypedDataInt64, FfiAsExternalTypedDataInt64, 0xaf9bbfdc) \
|
||||
V(::, _asExternalTypedDataUint8, FfiAsExternalTypedDataUint8, 0x35140015) \
|
||||
V(::, _asExternalTypedDataUint16, FfiAsExternalTypedDataUint16, 0x8996961b) \
|
||||
V(::, _asExternalTypedDataUint32, FfiAsExternalTypedDataUint32, 0xd2645422) \
|
||||
V(::, _asExternalTypedDataUint64, FfiAsExternalTypedDataUint64, 0x06afe9a6) \
|
||||
V(::, _asExternalTypedDataFloat, FfiAsExternalTypedDataFloat, 0x6f37d5ed) \
|
||||
V(::, _asExternalTypedDataDouble, FfiAsExternalTypedDataDouble, 0x40bf51c2) \
|
||||
V(::, _getNativeField, GetNativeField, 0xa0051366) \
|
||||
V(::, reachabilityFence, ReachabilityFence, 0x73009f9f) \
|
||||
V(_Utf8Decoder, _scan, Utf8DecoderScan, 0xb98ea6c2) \
|
||||
|
|
|
@ -92,42 +92,52 @@ external DS _asFunctionInternal<DS extends Function, NS extends Function>(
|
|||
|
||||
@pragma("vm:recognized", "other")
|
||||
@pragma("vm:idempotent")
|
||||
@pragma("vm:exact-result-type", "dart:typed_data#_ExternalInt8Array")
|
||||
external Int8List _asExternalTypedDataInt8(Pointer<Int8> ptr, int length);
|
||||
|
||||
@pragma("vm:recognized", "other")
|
||||
@pragma("vm:idempotent")
|
||||
@pragma("vm:exact-result-type", "dart:typed_data#_ExternalInt16Array")
|
||||
external Int16List _asExternalTypedDataInt16(Pointer<Int16> ptr, int length);
|
||||
|
||||
@pragma("vm:recognized", "other")
|
||||
@pragma("vm:idempotent")
|
||||
@pragma("vm:exact-result-type", "dart:typed_data#_ExternalInt32Array")
|
||||
external Int32List _asExternalTypedDataInt32(Pointer<Int32> ptr, int length);
|
||||
|
||||
@pragma("vm:recognized", "other")
|
||||
@pragma("vm:idempotent")
|
||||
@pragma("vm:exact-result-type", "dart:typed_data#_ExternalInt64Array")
|
||||
external Int64List _asExternalTypedDataInt64(Pointer<Int64> ptr, int length);
|
||||
|
||||
@pragma("vm:recognized", "other")
|
||||
@pragma("vm:idempotent")
|
||||
@pragma("vm:exact-result-type", "dart:typed_data#_ExternalUint8Array")
|
||||
external Uint8List _asExternalTypedDataUint8(Pointer<Uint8> ptr, int length);
|
||||
|
||||
@pragma("vm:recognized", "other")
|
||||
@pragma("vm:idempotent")
|
||||
@pragma("vm:exact-result-type", "dart:typed_data#_ExternalUint16Array")
|
||||
external Uint16List _asExternalTypedDataUint16(Pointer<Uint16> ptr, int length);
|
||||
|
||||
@pragma("vm:recognized", "other")
|
||||
@pragma("vm:idempotent")
|
||||
@pragma("vm:exact-result-type", "dart:typed_data#_ExternalUint32Array")
|
||||
external Uint32List _asExternalTypedDataUint32(Pointer<Uint32> ptr, int length);
|
||||
|
||||
@pragma("vm:recognized", "other")
|
||||
@pragma("vm:idempotent")
|
||||
@pragma("vm:exact-result-type", "dart:typed_data#_ExternalUint64Array")
|
||||
external Uint64List _asExternalTypedDataUint64(Pointer<Uint64> ptr, int length);
|
||||
|
||||
@pragma("vm:recognized", "other")
|
||||
@pragma("vm:idempotent")
|
||||
@pragma("vm:exact-result-type", "dart:typed_data#_ExternalFloat32Array")
|
||||
external Float32List _asExternalTypedDataFloat(Pointer<Float> ptr, int length);
|
||||
|
||||
@pragma("vm:recognized", "other")
|
||||
@pragma("vm:idempotent")
|
||||
@pragma("vm:exact-result-type", "dart:typed_data#_ExternalFloat64Array")
|
||||
external Float64List _asExternalTypedDataDouble(
|
||||
Pointer<Double> ptr, int length);
|
||||
|
||||
|
|
Loading…
Reference in a new issue