blob: 0892f8da72edfbc13f331c82857f5d73fea71341 [file] [log] [blame]
// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
#ifndef RUNTIME_VM_COMPILER_RECOGNIZED_METHODS_LIST_H_
#define RUNTIME_VM_COMPILER_RECOGNIZED_METHODS_LIST_H_
namespace dart {
// clang-format off
// (class-name, function-name, recognized enum, fingerprint).
// When adding a new function, add a 0 as the fingerprint and run the build in
// debug mode to get the correct fingerprint from the mismatch error.
#define OTHER_RECOGNIZED_LIST(V) \
V(::, identical, ObjectIdentical, 0x19eb7f33) \
V(ClassID, getID, ClassIDgetID, 0x4d140cb3) \
V(Object, Object., ObjectConstructor, 0x89c467da) \
V(List, ., ListFactory, 0x1892c890) \
V(_List, ., ObjectArrayAllocate, 0x4c9d39e2) \
V(_List, []=, ObjectArraySetIndexed, 0xe98d0a9e) \
V(_GrowableList, []=, GrowableArraySetIndexed, 0xe98d0a9e) \
V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 0x30688af4) \
V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 0x31c4acea) \
V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 0x4885450f) \
V(_TypedList, _getUint16, ByteArrayBaseGetUint16, 0x4a06a579) \
V(_TypedList, _getInt32, ByteArrayBaseGetInt32, 0x335cdbca) \
V(_TypedList, _getUint32, ByteArrayBaseGetUint32, 0x33a21d3b) \
V(_TypedList, _getInt64, ByteArrayBaseGetInt64, 0x10a56ebf) \
V(_TypedList, _getUint64, ByteArrayBaseGetUint64, 0x46a02819) \
V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 0xe425bcd3) \
V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 0xf3595200) \
V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 0xb3cc1803) \
V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 0xbe4aee59) \
V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 0x89b17e2a) \
V(_TypedList, _setUint8, ByteArrayBaseSetUint8, 0x5781f1d0) \
V(_TypedList, _setInt16, ByteArrayBaseSetInt16, 0x630e7aaf) \
V(_TypedList, _setUint16, ByteArrayBaseSetUint16, 0x764a82d7) \
V(_TypedList, _setInt32, ByteArrayBaseSetInt32, 0x6602e5c8) \
V(_TypedList, _setUint32, ByteArrayBaseSetUint32, 0x618ede3a) \
V(_TypedList, _setInt64, ByteArrayBaseSetInt64, 0x70f58a02) \
V(_TypedList, _setUint64, ByteArrayBaseSetUint64, 0x826f6c8d) \
V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 0x2761c274) \
V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 0x1b858d66) \
V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 0x9e2320c0) \
V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 0xfa1f5cf1) \
V(ByteData, ., ByteDataFactory, 0x1a2bee78) \
V(_ByteDataView, get:offsetInBytes, ByteDataViewOffsetInBytes, 0x3915c92a) \
V(_ByteDataView, get:_typedData, ByteDataViewTypedData, 0x487f857c) \
V(_TypedListView, get:offsetInBytes, TypedDataViewOffsetInBytes, 0x3915c92a) \
V(_TypedListView, get:_typedData, TypedDataViewTypedData, 0x487f857c) \
V(_ByteDataView, ._, TypedData_ByteDataView_factory, 0xbdff93f4) \
V(_Int8ArrayView, ._, TypedData_Int8ArrayView_factory, 0x955093e6) \
V(_Uint8ArrayView, ._, TypedData_Uint8ArrayView_factory, 0x666697bb) \
V(_Uint8ClampedArrayView, ._, TypedData_Uint8ClampedArrayView_factory, \
0x0f265d67) \
V(_Int16ArrayView, ._, TypedData_Int16ArrayView_factory, 0x95778bb5) \
V(_Uint16ArrayView, ._, TypedData_Uint16ArrayView_factory, 0xc9d1b27e) \
V(_Int32ArrayView, ._, TypedData_Int32ArrayView_factory, 0x609fa957) \
V(_Uint32ArrayView, ._, TypedData_Uint32ArrayView_factory, 0x0b0ff42f) \
V(_Int64ArrayView, ._, TypedData_Int64ArrayView_factory, 0xbd01a661) \
V(_Uint64ArrayView, ._, TypedData_Uint64ArrayView_factory, 0x9c964453) \
V(_Float32ArrayView, ._, TypedData_Float32ArrayView_factory, 0x9a39e22c) \
V(_Float64ArrayView, ._, TypedData_Float64ArrayView_factory, 0x78a432f9) \
V(_Float32x4ArrayView, ._, TypedData_Float32x4ArrayView_factory, 0x85e58030) \
V(_Int32x4ArrayView, ._, TypedData_Int32x4ArrayView_factory, 0x5132754b) \
V(_Float64x2ArrayView, ._, TypedData_Float64x2ArrayView_factory, 0x9d86a6cc) \
V(Int8List, ., TypedData_Int8Array_factory, 0x934e97a2) \
V(Uint8List, ., TypedData_Uint8Array_factory, 0x7eea24fb) \
V(Uint8ClampedList, ., TypedData_Uint8ClampedArray_factory, 0xba98ab35) \
V(Int16List, ., TypedData_Int16Array_factory, 0x54af9dd7) \
V(Uint16List, ., TypedData_Uint16Array_factory, 0xc3859080) \
V(Int32List, ., TypedData_Int32Array_factory, 0x3e52ca0a) \
V(Uint32List, ., TypedData_Uint32Array_factory, 0xdbbb093f) \
V(Int64List, ., TypedData_Int64Array_factory, 0x560fc11b) \
V(Uint64List, ., TypedData_Uint64Array_factory, 0x02b7f232) \
V(Float32List, ., TypedData_Float32Array_factory, 0xdf9d206c) \
V(Float64List, ., TypedData_Float64Array_factory, 0x321abc79) \
V(Float32x4List, ., TypedData_Float32x4Array_factory, 0xa0de94a2) \
V(Int32x4List, ., TypedData_Int32x4Array_factory, 0xfe46a6fc) \
V(Float64x2List, ., TypedData_Float64x2Array_factory, 0xfac00c80) \
V(::, _toClampedUint8, ConvertIntToClampedUint8, 0x84e4b390) \
V(::, copyRangeFromUint8ListToOneByteString, \
CopyRangeFromUint8ListToOneByteString, 0xeb5abaa9) \
V(_StringBase, _interpolate, StringBaseInterpolate, 0xe8ece5a1) \
V(_IntegerImplementation, toDouble, IntegerToDouble, 0x33d887fc) \
V(_Double, _add, DoubleAdd, 0x1ba15967) \
V(_Double, _sub, DoubleSub, 0x5982426e) \
V(_Double, _mul, DoubleMul, 0x50d3bdac) \
V(_Double, _div, DoubleDiv, 0x59b82dd1) \
V(::, min, MathMin, 0xa24c3a83) \
V(::, max, MathMax, 0x8552d67e) \
V(::, _doublePow, MathDoublePow, 0x9441cc3a) \
V(::, _intPow, MathIntPow, 0x409dd978) \
V(Float32x4, _Float32x4FromDoubles, Float32x4FromDoubles, 0x790497df) \
V(Float32x4, Float32x4.zero, Float32x4Zero, 0x9657735e) \
V(Float32x4, _Float32x4Splat, Float32x4Splat, 0xb0d7702d) \
V(Float32x4, Float32x4.fromInt32x4Bits, Int32x4ToFloat32x4, 0xda38dd92) \
V(Float32x4, Float32x4.fromFloat64x2, Float64x2ToFloat32x4, 0xe41a2079) \
V(_Float32x4, shuffle, Float32x4Shuffle, 0xac90c309) \
V(_Float32x4, shuffleMix, Float32x4ShuffleMix, 0x3d6d7e46) \
V(_Float32x4, get:signMask, Float32x4GetSignMask, 0x54b1e8e8) \
V(_Float32x4, equal, Float32x4Equal, 0xc9591626) \
V(_Float32x4, greaterThan, Float32x4GreaterThan, 0xd74ba62f) \
V(_Float32x4, greaterThanOrEqual, Float32x4GreaterThanOrEqual, 0xd36c8a67) \
V(_Float32x4, lessThan, Float32x4LessThan, 0xcf1699cd) \
V(_Float32x4, lessThanOrEqual, Float32x4LessThanOrEqual, 0xcb757bf0) \
V(_Float32x4, notEqual, Float32x4NotEqual, 0xe94d5df3) \
V(_Float32x4, min, Float32x4Min, 0x04e45812) \
V(_Float32x4, max, Float32x4Max, 0xe713d9e3) \
V(_Float32x4, scale, Float32x4Scale, 0xde622d94) \
V(_Float32x4, sqrt, Float32x4Sqrt, 0xa7982e0e) \
V(_Float32x4, reciprocalSqrt, Float32x4ReciprocalSqrt, 0xa0792594) \
V(_Float32x4, reciprocal, Float32x4Reciprocal, 0x96f355ce) \
V(_Float32x4, unary-, Float32x4Negate, 0xa94cf76e) \
V(_Float32x4, abs, Float32x4Abs, 0xade7b1a4) \
V(_Float32x4, clamp, Float32x4Clamp, 0x57c0dbb9) \
V(_Float32x4, _withX, Float32x4WithX, 0xddc28541) \
V(_Float32x4, _withY, Float32x4WithY, 0xd66499d5) \
V(_Float32x4, _withZ, Float32x4WithZ, 0xd2811432) \
V(_Float32x4, _withW, Float32x4WithW, 0xcfde07ed) \
V(Float64x2, _Float64x2FromDoubles, Float64x2FromDoubles, 0x9f0a0865) \
V(Float64x2, Float64x2.zero, Float64x2Zero, 0x30a0af88) \
V(Float64x2, _Float64x2Splat, Float64x2Splat, 0xe169544e) \
V(Float64x2, Float64x2.fromFloat32x4, Float32x4ToFloat64x2, 0x7ad848fa) \
V(_Float64x2, get:x, Float64x2GetX, 0xf36ac93a) \
V(_Float64x2, get:y, Float64x2GetY, 0xe0fc245d) \
V(_Float64x2, unary-, Float64x2Negate, 0x43963398) \
V(_Float64x2, abs, Float64x2Abs, 0x4830edce) \
V(_Float64x2, sqrt, Float64x2Sqrt, 0x41e16a38) \
V(_Float64x2, get:signMask, Float64x2GetSignMask, 0x54b1e8e8) \
V(_Float64x2, scale, Float64x2Scale, 0x78ab69be) \
V(_Float64x2, _withX, Float64x2WithX, 0x780bc16b) \
V(_Float64x2, _withY, Float64x2WithY, 0x70add5ff) \
V(_Float64x2, min, Float64x2Min, 0xb4f56252) \
V(_Float64x2, max, Float64x2Max, 0x9724e423) \
V(Int32x4, _Int32x4FromInts, Int32x4FromInts, 0x533214b0) \
V(Int32x4, _Int32x4FromBools, Int32x4FromBools, 0x17964f48) \
V(Int32x4, Int32x4.fromFloat32x4Bits, Float32x4ToInt32x4, 0xca709e11) \
V(_Int32x4, get:flagX, Int32x4GetFlagX, 0x998cbdb6) \
V(_Int32x4, get:flagY, Int32x4GetFlagY, 0xb4fcf496) \
V(_Int32x4, get:flagZ, Int32x4GetFlagZ, 0xc2a68fe9) \
V(_Int32x4, get:flagW, Int32x4GetFlagW, 0xcbc6a22a) \
V(_Int32x4, get:signMask, Int32x4GetSignMask, 0x54b1e8e8) \
V(_Int32x4, shuffle, Int32x4Shuffle, 0xa9398c21) \
V(_Int32x4, shuffleMix, Int32x4ShuffleMix, 0x0a889276) \
V(_Int32x4, select, Int32x4Select, 0x48be097c) \
V(_Int32x4, _withFlagX, Int32x4WithFlagX, 0x7f4a63d1) \
V(_Int32x4, _withFlagY, Int32x4WithFlagY, 0x703aff14) \
V(_Int32x4, _withFlagZ, Int32x4WithFlagZ, 0x6f70ebc2) \
V(_Int32x4, _withFlagW, Int32x4WithFlagW, 0x7a9f5cc6) \
V(_HashVMBase, get:_index, LinkedHashMap_getIndex, 0xf6b408ce) \
V(_HashVMBase, set:_index, LinkedHashMap_setIndex, 0xb0967252) \
V(_HashVMBase, get:_data, LinkedHashMap_getData, 0xe81ec483) \
V(_HashVMBase, set:_data, LinkedHashMap_setData, 0x719e1187) \
V(_HashVMBase, get:_usedData, LinkedHashMap_getUsedData, 0x1f4f6aeb) \
V(_HashVMBase, set:_usedData, LinkedHashMap_setUsedData, 0xa209d2ef) \
V(_HashVMBase, get:_hashMask, LinkedHashMap_getHashMask, 0x27559e9a) \
V(_HashVMBase, set:_hashMask, LinkedHashMap_setHashMask, 0xaa10069e) \
V(_HashVMBase, get:_deletedKeys, LinkedHashMap_getDeletedKeys, 0x29549b9e) \
V(_HashVMBase, set:_deletedKeys, LinkedHashMap_setDeletedKeys, 0xac0f03a2) \
V(::, _classRangeCheck, ClassRangeCheck, 0x071d2ec8) \
V(::, _abi, FfiAbi, 0x54918e73) \
V(::, _asFunctionInternal, FfiAsFunctionInternal, 0x2d4e5e32) \
V(::, _nativeCallbackFunction, FfiNativeCallbackFunction, 0x68db1afc) \
V(::, _loadInt8, FfiLoadInt8, 0x3b38d254) \
V(::, _loadInt16, FfiLoadInt16, 0x187823ab) \
V(::, _loadInt32, FfiLoadInt32, 0x1a563241) \
V(::, _loadInt64, FfiLoadInt64, 0x0b23b221) \
V(::, _loadUint8, FfiLoadUint8, 0x0d820f4f) \
V(::, _loadUint16, FfiLoadUint16, 0x390a4f68) \
V(::, _loadUint32, FfiLoadUint32, 0x22a282d3) \
V(::, _loadUint64, FfiLoadUint64, 0x3139f04a) \
V(::, _loadIntPtr, FfiLoadIntPtr, 0x180da6bc) \
V(::, _loadFloat, FfiLoadFloat, 0x05f7e3e7) \
V(::, _loadDouble, FfiLoadDouble, 0x042b25a3) \
V(::, _loadPointer, FfiLoadPointer, 0x117833fa) \
V(::, _storeInt8, FfiStoreInt8, 0xdaa635d2) \
V(::, _storeInt16, FfiStoreInt16, 0xd3a379f8) \
V(::, _storeInt32, FfiStoreInt32, 0xf73bb323) \
V(::, _storeInt64, FfiStoreInt64, 0xed299440) \
V(::, _storeUint8, FfiStoreUint8, 0x00c359bc) \
V(::, _storeUint16, FfiStoreUint16, 0xde5331a4) \
V(::, _storeUint32, FfiStoreUint32, 0xe12d6f8b) \
V(::, _storeUint64, FfiStoreUint64, 0xde2eb8ff) \
V(::, _storeIntPtr, FfiStoreIntPtr, 0x0357ed6e) \
V(::, _storeFloat, FfiStoreFloat, 0xafddd150) \
V(::, _storeDouble, FfiStoreDouble, 0x8df26d36) \
V(::, _storePointer, FfiStorePointer, 0xf3b14e97) \
V(::, _fromAddress, FfiFromAddress, 0x811e2220) \
V(Pointer, get:address, FfiGetAddress, 0x55255ebc) \
V(::, reachabilityFence, ReachabilityFence, 0xde1dc5bd) \
V(_Utf8Decoder, _scan, Utf8DecoderScan, 0xb35ced99) \
V(_Future, timeout, FutureTimeout, 0x39966bdf) \
V(Future, wait, FutureWait, 0x9f3934e1) \
// List of intrinsics:
// (class-name, function-name, intrinsification method, fingerprint).
#define CORE_LIB_INTRINSIC_LIST(V) \
V(_Smi, ~, Smi_bitNegate, 0x5a9bcc19) \
V(_Smi, get:bitLength, Smi_bitLength, 0x52fbe3e9) \
V(_Smi, _bitAndFromSmi, Smi_bitAndFromSmi, 0x7818c386) \
V(_BigIntImpl, _lsh, Bigint_lsh, 0xb7f65896) \
V(_BigIntImpl, _rsh, Bigint_rsh, 0x3922f42b) \
V(_BigIntImpl, _absAdd, Bigint_absAdd, 0x295e93f3) \
V(_BigIntImpl, _absSub, Bigint_absSub, 0x273f7af1) \
V(_BigIntImpl, _mulAdd, Bigint_mulAdd, 0xba45f6ad) \
V(_BigIntImpl, _sqrAdd, Bigint_sqrAdd, 0x2db11c6b) \
V(_BigIntImpl, _estimateQuotientDigit, Bigint_estimateQuotientDigit, \
0x3c62c74c) \
V(_BigIntMontgomeryReduction, _mulMod, Montgomery_mulMod, 0x091127d0) \
V(_Double, >, Double_greaterThan, 0xc4a96c0f) \
V(_Double, >=, Double_greaterEqualThan, 0x335a31b3) \
V(_Double, <, Double_lessThan, 0x059b1fd8) \
V(_Double, <=, Double_lessEqualThan, 0xeb04cf95) \
V(_Double, ==, Double_equal, 0x094145f1) \
V(_Double, +, Double_add, 0x74e922bb) \
V(_Double, -, Double_sub, 0x67d62f0c) \
V(_Double, *, Double_mul, 0xa95d3909) \
V(_Double, /, Double_div, 0x9f8bc745) \
V(_Double, get:hashCode, Double_hashCode, 0x4e27a791) \
V(_Double, get:_identityHashCode, Double_identityHash, 0x1fec3c4f) \
V(_Double, get:isNaN, Double_getIsNaN, 0xab76c0f1) \
V(_Double, get:isInfinite, Double_getIsInfinite, 0x9be885b0) \
V(_Double, get:isNegative, Double_getIsNegative, 0xab5f0a6f) \
V(_Double, _mulFromInteger, Double_mulFromInteger, 0x88ace077) \
V(_Double, .fromInteger, DoubleFromInteger, 0x0f908a15) \
V(_GrowableList, ._withData, GrowableArray_Allocate, 0x1947d8a1) \
V(_RegExp, _ExecuteMatch, RegExp_ExecuteMatch, 0xd8114d5f) \
V(_RegExp, _ExecuteMatchSticky, RegExp_ExecuteMatchSticky, 0xd0dd0025) \
V(Object, ==, ObjectEquals, 0xd3f5f95a) \
V(Object, get:runtimeType, ObjectRuntimeType, 0x8177627e) \
V(Object, _haveSameRuntimeType, ObjectHaveSameRuntimeType, 0xe61da79f) \
V(_StringBase, get:hashCode, String_getHashCode, 0x4e27ab52) \
V(_StringBase, get:_identityHashCode, String_identityHash, 0x1fec4010) \
V(_StringBase, get:isEmpty, StringBaseIsEmpty, 0xfda61c55) \
V(_StringBase, _substringMatches, StringBaseSubstringMatches, 0xf07e5912) \
V(_StringBase, [], StringBaseCharAt, 0x6c55f9a1) \
V(_OneByteString, get:hashCode, OneByteString_getHashCode, 0x4e27ab52) \
V(_OneByteString, _substringUncheckedNative, \
OneByteString_substringUnchecked, 0xd81afdbe) \
V(_OneByteString, ==, OneByteString_equality, 0x483ef8d2) \
V(_TwoByteString, ==, TwoByteString_equality, 0x483ef8d2) \
V(_Type, get:hashCode, Type_getHashCode, 0x4e27ab52) \
V(_Type, ==, Type_equality, 0xd3f5f1d8) \
V(::, _getHash, Object_getHash, 0x1d1372ac) \
V(::, _setHash, Object_setHash, 0x77e0bb27) \
#define CORE_INTEGER_LIB_INTRINSIC_LIST(V) \
V(_IntegerImplementation, _addFromInteger, Integer_addFromInteger, \
0x4965932b) \
V(_IntegerImplementation, +, Integer_add, 0xaf966f4f) \
V(_IntegerImplementation, _subFromInteger, Integer_subFromInteger, \
0x0fb6011f) \
V(_IntegerImplementation, -, Integer_sub, 0xa39f7e40) \
V(_IntegerImplementation, _mulFromInteger, Integer_mulFromInteger, \
0x171d38be) \
V(_IntegerImplementation, *, Integer_mul, 0x870ed2dd) \
V(_IntegerImplementation, _moduloFromInteger, Integer_moduloFromInteger, \
0x3e1e1d4b) \
V(_IntegerImplementation, ~/, Integer_truncDivide, 0xaade713f) \
V(_IntegerImplementation, unary-, Integer_negate, 0x8c0ec194) \
V(_IntegerImplementation, _bitAndFromInteger, Integer_bitAndFromInteger, \
0x398f434f) \
V(_IntegerImplementation, &, Integer_bitAnd, 0xd8a76af3) \
V(_IntegerImplementation, _bitOrFromInteger, Integer_bitOrFromInteger, \
0x2b1d2027) \
V(_IntegerImplementation, |, Integer_bitOr, 0xdc51e4ab) \
V(_IntegerImplementation, _bitXorFromInteger, Integer_bitXorFromInteger, \
0x1c5cefeb) \
V(_IntegerImplementation, ^, Integer_bitXor, 0x2542adb2) \
V(_IntegerImplementation, _greaterThanFromInteger, \
Integer_greaterThanFromInt, 0x838ddcc3) \
V(_IntegerImplementation, >, Integer_greaterThan, 0x0c62013f) \
V(_IntegerImplementation, ==, Integer_equal, 0x881c9ddc) \
V(_IntegerImplementation, _equalToInteger, Integer_equalToInteger, \
0x89faaa62) \
V(_IntegerImplementation, <, Integer_lessThan, 0x059b1fd8) \
V(_IntegerImplementation, <=, Integer_lessEqualThan, 0xeb04cf95) \
V(_IntegerImplementation, >=, Integer_greaterEqualThan, 0x335a31b3) \
V(_IntegerImplementation, <<, Integer_shl, 0xc378efa5) \
V(_IntegerImplementation, >>, Integer_sar, 0xe029aa4a) \
V(_Double, toInt, DoubleToInteger, 0x3fb5f3e6) \
#define MATH_LIB_INTRINSIC_LIST(V) \
V(::, sqrt, MathSqrt, 0x1d97494a) \
V(_Random, _nextState, Random_nextState, 0x7e5ba345) \
#define GRAPH_MATH_LIB_INTRINSIC_LIST(V) \
V(::, sin, MathSin, 0xb89b1cb1) \
V(::, cos, MathCos, 0x82a25065) \
V(::, tan, MathTan, 0x65b9839b) \
V(::, asin, MathAsin, 0x7e24237c) \
V(::, acos, MathAcos, 0xc484d233) \
V(::, atan, MathAtan, 0xb6c154e6) \
V(::, atan2, MathAtan2, 0x8e6e8a7b) \
#define GRAPH_TYPED_DATA_INTRINSICS_LIST(V) \
V(_Int8List, [], Int8ArrayGetIndexed, 0x0cc3b782) \
V(_Int8List, []=, Int8ArraySetIndexed, 0xb44a501b) \
V(_Uint8List, [], Uint8ArrayGetIndexed, 0x723c3b42) \
V(_Uint8List, []=, Uint8ArraySetIndexed, 0x00d95bdf) \
V(_ExternalUint8Array, [], ExternalUint8ArrayGetIndexed, 0x723c3b42) \
V(_ExternalUint8Array, []=, ExternalUint8ArraySetIndexed, 0x00d95bdf) \
V(_Uint8ClampedList, [], Uint8ClampedArrayGetIndexed, 0x723c3b42) \
V(_Uint8ClampedList, []=, Uint8ClampedArraySetIndexed, 0xf6d9117f) \
V(_ExternalUint8ClampedArray, [], ExternalUint8ClampedArrayGetIndexed, \
0x723c3b42) \
V(_ExternalUint8ClampedArray, []=, ExternalUint8ClampedArraySetIndexed, \
0xf6d9117f) \
V(_Int16List, [], Int16ArrayGetIndexed, 0xecc216e2) \
V(_Int16List, []=, Int16ArraySetIndexed, 0x44ca13a6) \
V(_Uint16List, [], Uint16ArrayGetIndexed, 0xd09af2e2) \
V(_Uint16List, []=, Uint16ArraySetIndexed, 0x2d0cbb1d) \
V(_Int32List, [], Int32ArrayGetIndexed, 0xee5fbc81) \
V(_Int32List, []=, Int32ArraySetIndexed, 0x22fe9045) \
V(_Uint32List, [], Uint32ArrayGetIndexed, 0x3db22221) \
V(_Uint32List, []=, Uint32ArraySetIndexed, 0x0ea204c5) \
V(_Int64List, [], Int64ArrayGetIndexed, 0x272816c1) \
V(_Int64List, []=, Int64ArraySetIndexed, 0xeb40c2c3) \
V(_Uint64List, [], Uint64ArrayGetIndexed, 0x63ec7c41) \
V(_Uint64List, []=, Uint64ArraySetIndexed, 0xb6a233fb) \
V(_Float64List, [], Float64ArrayGetIndexed, 0x4a2c55fc) \
V(_Float64List, []=, Float64ArraySetIndexed, 0x9f268215) \
V(_Float32List, [], Float32ArrayGetIndexed, 0x202a571c) \
V(_Float32List, []=, Float32ArraySetIndexed, 0xfa74df43) \
V(_Float32x4List, [], Float32x4ArrayGetIndexed, 0x96b1f063) \
V(_Float32x4List, []=, Float32x4ArraySetIndexed, 0xe010721e) \
V(_Int32x4List, [], Int32x4ArrayGetIndexed, 0x9cc8b9ab) \
V(_Int32x4List, []=, Int32x4ArraySetIndexed, 0x0a7fdb7e) \
V(_Float64x2List, [], Float64x2ArrayGetIndexed, 0x674f0479) \
V(_Float64x2List, []=, Float64x2ArraySetIndexed, 0x0b505db2) \
V(_TypedList, get:length, TypedListLength, 0x3097c769) \
V(_TypedListView, get:length, TypedListViewLength, 0x3097c769) \
V(_ByteDataView, get:length, ByteDataViewLength, 0x3097c769) \
V(_Float32x4, get:x, Float32x4ShuffleX, 0xf36ac93a) \
V(_Float32x4, get:y, Float32x4ShuffleY, 0xe0fc245d) \
V(_Float32x4, get:z, Float32x4ShuffleZ, 0x16c78ff3) \
V(_Float32x4, get:w, Float32x4ShuffleW, 0xf907d475) \
V(_Float32x4, *, Float32x4Mul, 0x06163607) \
V(_Float32x4, /, Float32x4Div, 0xe164e8e2) \
V(_Float32x4, -, Float32x4Sub, 0xfdf825ca) \
V(_Float32x4, +, Float32x4Add, 0xd8bf5b59) \
V(_Float64x2, *, Float64x2Mul, 0xb6273c86) \
V(_Float64x2, /, Float64x2Div, 0x9175f322) \
V(_Float64x2, -, Float64x2Sub, 0xae092c49) \
V(_Float64x2, +, Float64x2Add, 0x88d061d8) \
#define GRAPH_CORE_INTRINSICS_LIST(V) \
V(_List, get:length, ObjectArrayLength, 0x3097c769) \
V(_List, [], ObjectArrayGetIndexed, 0x78f4f491) \
V(_List, _setIndexed, ObjectArraySetIndexedUnchecked, 0x367abfe8) \
V(_ImmutableList, get:length, ImmutableArrayLength, 0x3097c769) \
V(_ImmutableList, [], ImmutableArrayGetIndexed, 0x78f4f491) \
V(_GrowableList, get:length, GrowableArrayLength, 0x3097c769) \
V(_GrowableList, get:_capacity, GrowableArrayCapacity, 0x55e672f0) \
V(_GrowableList, _setData, GrowableArraySetData, 0x9388253f) \
V(_GrowableList, _setLength, GrowableArraySetLength, 0xba5d44fc) \
V(_GrowableList, [], GrowableArrayGetIndexed, 0x78f4f491) \
V(_GrowableList, _setIndexed, GrowableArraySetIndexedUnchecked, 0xa1960d27) \
V(_StringBase, get:length, StringBaseLength, 0x3097c769) \
V(_OneByteString, codeUnitAt, OneByteStringCodeUnitAt, 0x323db7d0) \
V(_TwoByteString, codeUnitAt, TwoByteStringCodeUnitAt, 0x323db7d0) \
V(_ExternalOneByteString, codeUnitAt, ExternalOneByteStringCodeUnitAt, \
0x323db7d0) \
V(_ExternalTwoByteString, codeUnitAt, ExternalTwoByteStringCodeUnitAt, \
0x323db7d0) \
V(_Double, unary-, DoubleFlipSignBit, 0xf66a4c35) \
V(_Double, truncateToDouble, DoubleTruncate, 0x1c05c6a2) \
V(_Double, roundToDouble, DoubleRound, 0x0f7b0a49) \
V(_Double, floorToDouble, DoubleFloor, 0x0de60b91) \
V(_Double, ceilToDouble, DoubleCeil, 0x184d0f22) \
V(_Double, _modulo, DoubleMod, 0x2eee8a6e)
#define GRAPH_INTRINSICS_LIST(V) \
GRAPH_CORE_INTRINSICS_LIST(V) \
GRAPH_TYPED_DATA_INTRINSICS_LIST(V) \
GRAPH_MATH_LIB_INTRINSIC_LIST(V) \
#define DEVELOPER_LIB_INTRINSIC_LIST(V) \
V(_UserTag, makeCurrent, UserTag_makeCurrent, 0xc0abd700) \
V(::, _getDefaultTag, UserTag_defaultTag, 0xd0ebe717) \
V(::, _getCurrentTag, Profiler_getCurrentTag, 0xd5bcef00) \
V(::, _isDartStreamEnabled, Timeline_isDartStreamEnabled, 0xa0686991) \
#define INTERNAL_LIB_INTRINSIC_LIST(V) \
V(::, allocateOneByteString, AllocateOneByteString, 0x3a5d74f6) \
V(::, allocateTwoByteString, AllocateTwoByteString, 0x4222b093) \
V(::, writeIntoOneByteString, WriteIntoOneByteString, 0xa2337709) \
V(::, writeIntoTwoByteString, WriteIntoTwoByteString, 0x99887dd2) \
#define ALL_INTRINSICS_NO_INTEGER_LIB_LIST(V) \
CORE_LIB_INTRINSIC_LIST(V) \
DEVELOPER_LIB_INTRINSIC_LIST(V) \
INTERNAL_LIB_INTRINSIC_LIST(V) \
MATH_LIB_INTRINSIC_LIST(V) \
#define ALL_INTRINSICS_LIST(V) \
ALL_INTRINSICS_NO_INTEGER_LIB_LIST(V) \
CORE_INTEGER_LIB_INTRINSIC_LIST(V)
#define RECOGNIZED_LIST(V) \
OTHER_RECOGNIZED_LIST(V) \
ALL_INTRINSICS_LIST(V) \
GRAPH_INTRINSICS_LIST(V)
// A list of core functions that internally dispatch based on received id.
#define POLYMORPHIC_TARGET_LIST(V) \
V(_StringBase, [], StringBaseCharAt, 0x6c55f9a1) \
V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 0x30688af4) \
V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 0x31c4acea) \
V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 0x4885450f) \
V(_TypedList, _getUint16, ByteArrayBaseGetUint16, 0x4a06a579) \
V(_TypedList, _getInt32, ByteArrayBaseGetInt32, 0x335cdbca) \
V(_TypedList, _getUint32, ByteArrayBaseGetUint32, 0x33a21d3b) \
V(_TypedList, _getInt64, ByteArrayBaseGetInt64, 0x10a56ebf) \
V(_TypedList, _getUint64, ByteArrayBaseGetUint64, 0x46a02819) \
V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 0xe425bcd3) \
V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 0xf3595200) \
V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 0xb3cc1803) \
V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 0xbe4aee59) \
V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 0x89b17e2a) \
V(_TypedList, _setUint8, ByteArrayBaseSetInt8, 0x5781f1d0) \
V(_TypedList, _setInt16, ByteArrayBaseSetInt16, 0x630e7aaf) \
V(_TypedList, _setUint16, ByteArrayBaseSetInt16, 0x764a82d7) \
V(_TypedList, _setInt32, ByteArrayBaseSetInt32, 0x6602e5c8) \
V(_TypedList, _setUint32, ByteArrayBaseSetUint32, 0x618ede3a) \
V(_TypedList, _setInt64, ByteArrayBaseSetInt64, 0x70f58a02) \
V(_TypedList, _setUint64, ByteArrayBaseSetUint64, 0x826f6c8d) \
V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 0x2761c274) \
V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 0x1b858d66) \
V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 0x9e2320c0) \
V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 0xfa1f5cf1) \
V(Object, get:runtimeType, ObjectRuntimeType, 0x8177627e)
// List of recognized list factories:
// (factory-name-symbol, class-name-string, constructor-name-string,
// result-cid, fingerprint).
#define RECOGNIZED_LIST_FACTORY_LIST(V) \
V(_ListFactory, _List, ., kArrayCid, 0x4c9d39e2) \
V(_ListFilledFactory, _List, .filled, kArrayCid, 0xaf758106) \
V(_ListGenerateFactory, _List, .generate, kArrayCid, 0xff53e115) \
V(_GrowableListFactory, _GrowableList, ., kGrowableObjectArrayCid, \
0xa61fbeb9) \
V(_GrowableListFilledFactory, _GrowableList, .filled, \
kGrowableObjectArrayCid, 0x27a28286) \
V(_GrowableListGenerateFactory, _GrowableList, .generate, \
kGrowableObjectArrayCid, 0x60b98295) \
V(_GrowableListWithData, _GrowableList, ._withData, kGrowableObjectArrayCid, \
0x1947d8a1) \
V(_Int8ArrayFactory, Int8List, ., kTypedDataInt8ArrayCid, 0x934e97a2) \
V(_Uint8ArrayFactory, Uint8List, ., kTypedDataUint8ArrayCid, 0x7eea24fb) \
V(_Uint8ClampedArrayFactory, Uint8ClampedList, ., \
kTypedDataUint8ClampedArrayCid, 0xba98ab35) \
V(_Int16ArrayFactory, Int16List, ., kTypedDataInt16ArrayCid, 0x54af9dd7) \
V(_Uint16ArrayFactory, Uint16List, ., kTypedDataUint16ArrayCid, 0xc3859080) \
V(_Int32ArrayFactory, Int32List, ., kTypedDataInt32ArrayCid, 0x3e52ca0a) \
V(_Uint32ArrayFactory, Uint32List, ., kTypedDataUint32ArrayCid, 0xdbbb093f) \
V(_Int64ArrayFactory, Int64List, ., kTypedDataInt64ArrayCid, 0x560fc11b) \
V(_Uint64ArrayFactory, Uint64List, ., kTypedDataUint64ArrayCid, 0x02b7f232) \
V(_Float64ArrayFactory, Float64List, ., kTypedDataFloat64ArrayCid, \
0x321abc79) \
V(_Float32ArrayFactory, Float32List, ., kTypedDataFloat32ArrayCid, \
0xdf9d206c) \
V(_Float32x4ArrayFactory, Float32x4List, ., kTypedDataFloat32x4ArrayCid, \
0xa0de94a2)
// clang-format on
} // namespace dart
#endif // RUNTIME_VM_COMPILER_RECOGNIZED_METHODS_LIST_H_