blob: 907125221900f6b8311536827d4aeff4587a746c [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, 0xc6e9467a) \
V(ClassID, getID, ClassIDgetID, 0xf0376ced) \
V(Object, Object., ObjectConstructor, 0x8f3ae7ea) \
V(List, ., ListFactory, 0xda0d774c) \
V(_List, ., ObjectArrayAllocate, 0x704c8d5d) \
V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 0xa24c2704) \
V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 0xa491df3e) \
V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 0xb65ae1fc) \
V(_TypedList, _getUint16, ByteArrayBaseGetUint16, 0xb4b776e5) \
V(_TypedList, _getInt32, ByteArrayBaseGetInt32, 0xb460abe4) \
V(_TypedList, _getUint32, ByteArrayBaseGetUint32, 0x8c066c71) \
V(_TypedList, _getInt64, ByteArrayBaseGetInt64, 0xacf2f222) \
V(_TypedList, _getUint64, ByteArrayBaseGetUint64, 0xa74b200b) \
V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 0xa33a9f77) \
V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 0x87d86b60) \
V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 0x3e76086e) \
V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 0xfea5f17f) \
V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 0xd2c4e74b) \
V(_TypedList, _setUint8, ByteArrayBaseSetUint8, 0xec62b082) \
V(_TypedList, _setInt16, ByteArrayBaseSetInt16, 0xc3566903) \
V(_TypedList, _setUint16, ByteArrayBaseSetUint16, 0xdb50780f) \
V(_TypedList, _setInt32, ByteArrayBaseSetInt32, 0xbeeeea8a) \
V(_TypedList, _setUint32, ByteArrayBaseSetUint32, 0xca02f10a) \
V(_TypedList, _setInt64, ByteArrayBaseSetInt64, 0xcf587ccf) \
V(_TypedList, _setUint64, ByteArrayBaseSetUint64, 0xe01a1df0) \
V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 0xb6a6294f) \
V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 0xce7dad17) \
V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 0x4b773b59) \
V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 0xfa2a6f88) \
V(ByteData, ., ByteDataFactory, 0x0d31f187) \
V(_ByteDataView, get:offsetInBytes, ByteDataViewOffsetInBytes, 0x0d956c6d) \
V(_ByteDataView, get:_typedData, ByteDataViewTypedData, 0x28cc4efc) \
V(_TypedListView, get:offsetInBytes, TypedDataViewOffsetInBytes, 0x0d956c6d) \
V(_TypedListView, get:_typedData, TypedDataViewTypedData, 0x28cc4efc) \
V(_ByteDataView, ._, TypedData_ByteDataView_factory, 0xb839ff59) \
V(_Int8ArrayView, ._, TypedData_Int8ArrayView_factory, 0x3d000a8d) \
V(_Uint8ArrayView, ._, TypedData_Uint8ArrayView_factory, 0xff69de0f) \
V(_Uint8ClampedArrayView, ._, TypedData_Uint8ClampedArrayView_factory, \
0xdff11b9a) \
V(_Int16ArrayView, ._, TypedData_Int16ArrayView_factory, 0x1635c91e) \
V(_Uint16ArrayView, ._, TypedData_Uint16ArrayView_factory, 0x287cbc66) \
V(_Int32ArrayView, ._, TypedData_Int32ArrayView_factory, 0xf5270227) \
V(_Uint32ArrayView, ._, TypedData_Uint32ArrayView_factory, 0xbb74a021) \
V(_Int64ArrayView, ._, TypedData_Int64ArrayView_factory, 0xf348a583) \
V(_Uint64ArrayView, ._, TypedData_Uint64ArrayView_factory, 0x10589491) \
V(_Float32ArrayView, ._, TypedData_Float32ArrayView_factory, 0xbb4124b3) \
V(_Float64ArrayView, ._, TypedData_Float64ArrayView_factory, 0x5f0b81e9) \
V(_Float32x4ArrayView, ._, TypedData_Float32x4ArrayView_factory, 0xd8c71a39) \
V(_Int32x4ArrayView, ._, TypedData_Int32x4ArrayView_factory, 0x9bfbd6d5) \
V(_Float64x2ArrayView, ._, TypedData_Float64x2ArrayView_factory, 0x1a383408) \
V(::, _toClampedUint8, ConvertIntToClampedUint8, 0x59765a4a) \
V(_StringBase, _interpolate, StringBaseInterpolate, 0xe5a934d2) \
V(_IntegerImplementation, toDouble, IntegerToDouble, 0x22a26db3) \
V(_Double, _add, DoubleAdd, 0x2f5c036a) \
V(_Double, _sub, DoubleSub, 0x6d3cec71) \
V(_Double, _mul, DoubleMul, 0x648e67af) \
V(_Double, _div, DoubleDiv, 0x6d72d7d4) \
V(::, min, MathMin, 0x3ccbc098) \
V(::, max, MathMax, 0x4e398e7f) \
V(::, _doublePow, MathDoublePow, 0x5ae04e61) \
V(::, _intPow, MathIntPow, 0x569ffd3f) \
V(Float32x4, Float32x4., Float32x4Constructor, 0xdf9f0693) \
V(Float32x4, Float32x4.zero, Float32x4Zero, 0x9b875c7f) \
V(Float32x4, Float32x4.splat, Float32x4Splat, 0xf584a639) \
V(Float32x4, Float32x4.fromInt32x4Bits, Int32x4ToFloat32x4, 0x7339b2bd) \
V(Float32x4, Float32x4.fromFloat64x2, Float64x2ToFloat32x4, 0x5de0e788) \
V(_Float32x4, shuffle, Float32x4Shuffle, 0x5bc2446e) \
V(_Float32x4, shuffleMix, Float32x4ShuffleMix, 0x61887391) \
V(_Float32x4, get:signMask, Float32x4GetSignMask, 0x2931936f) \
V(_Float32x4, equal, Float32x4Equal, 0x63e87fb9) \
V(_Float32x4, greaterThan, Float32x4GreaterThan, 0x71db0fc2) \
V(_Float32x4, greaterThanOrEqual, Float32x4GreaterThanOrEqual, 0x6dfbf3fa) \
V(_Float32x4, lessThan, Float32x4LessThan, 0x69a60360) \
V(_Float32x4, lessThanOrEqual, Float32x4LessThanOrEqual, 0x6604e583) \
V(_Float32x4, notEqual, Float32x4NotEqual, 0x83dcc786) \
V(_Float32x4, min, Float32x4Min, 0xf70ed6d5) \
V(_Float32x4, max, Float32x4Max, 0xd93e58a6) \
V(_Float32x4, scale, Float32x4Scale, 0xea28b605) \
V(_Float32x4, sqrt, Float32x4Sqrt, 0xacff17f7) \
V(_Float32x4, reciprocalSqrt, Float32x4ReciprocalSqrt, 0xa5e00f7d) \
V(_Float32x4, reciprocal, Float32x4Reciprocal, 0x9c5a3fb7) \
V(_Float32x4, unary-, Float32x4Negate, 0xae8af7f1) \
V(_Float32x4, abs, Float32x4Abs, 0xb34e9b8d) \
V(_Float32x4, clamp, Float32x4Clamp, 0xbed4ce62) \
V(_Float32x4, withX, Float32x4WithX, 0xe204ec19) \
V(_Float32x4, withY, Float32x4WithY, 0xff17a63f) \
V(_Float32x4, withZ, Float32x4WithZ, 0x0e7144f2) \
V(_Float32x4, withW, Float32x4WithW, 0x0802b80f) \
V(Float64x2, Float64x2., Float64x2Constructor, 0xb0bb0109) \
V(Float64x2, Float64x2.zero, Float64x2Zero, 0x5e70f315) \
V(Float64x2, Float64x2.splat, Float64x2Splat, 0xb86e3ccf) \
V(Float64x2, Float64x2.fromFloat32x4, Float32x4ToFloat64x2, 0x956c2161) \
V(_Float64x2, get:x, Float64x2GetX, 0x00b83193) \
V(_Float64x2, get:y, Float64x2GetY, 0xee498cb6) \
V(_Float64x2, unary-, Float64x2Negate, 0x71748e87) \
V(_Float64x2, abs, Float64x2Abs, 0x76383223) \
V(_Float64x2, sqrt, Float64x2Sqrt, 0x6fe8ae8d) \
V(_Float64x2, get:signMask, Float64x2GetSignMask, 0x2931936f) \
V(_Float64x2, scale, Float64x2Scale, 0xad124c9b) \
V(_Float64x2, withX, Float64x2WithX, 0xa4ee82af) \
V(_Float64x2, withY, Float64x2WithY, 0xc2013cd5) \
V(_Float64x2, min, Float64x2Min, 0x57938495) \
V(_Float64x2, max, Float64x2Max, 0x39c30666) \
V(Int32x4, Int32x4., Int32x4Constructor, 0xa77aeafb) \
V(Int32x4, Int32x4.bool, Int32x4BoolConstructor, 0x51ae2c0c) \
V(Int32x4, Int32x4.fromFloat32x4Bits, Float32x4ToInt32x4, 0x64c906dc) \
V(_Int32x4, get:flagX, Int32x4GetFlagX, 0x9f8da5bb) \
V(_Int32x4, get:flagY, Int32x4GetFlagY, 0xbafddc9b) \
V(_Int32x4, get:flagZ, Int32x4GetFlagZ, 0xc8a777ee) \
V(_Int32x4, get:flagW, Int32x4GetFlagW, 0xd1c78a2f) \
V(_Int32x4, get:signMask, Int32x4GetSignMask, 0x2931936f) \
V(_Int32x4, shuffle, Int32x4Shuffle, 0x00cff856) \
V(_Int32x4, shuffleMix, Int32x4ShuffleMix, 0x57a21961) \
V(_Int32x4, select, Int32x4Select, 0xafd1fc25) \
V(_Int32x4, withFlagX, Int32x4WithFlagX, 0x7a1fe4b5) \
V(_Int32x4, withFlagY, Int32x4WithFlagY, 0x8c658940) \
V(_Int32x4, withFlagZ, Int32x4WithFlagZ, 0x97d3a01c) \
V(_Int32x4, withFlagW, Int32x4WithFlagW, 0x80e3723b) \
V(_HashVMBase, get:_index, LinkedHashMap_getIndex, 0x09db1d9d) \
V(_HashVMBase, set:_index, LinkedHashMap_setIndex, 0xb643fb19) \
V(_HashVMBase, get:_data, LinkedHashMap_getData, 0x9a54182a) \
V(_HashVMBase, set:_data, LinkedHashMap_setData, 0x8bc58326) \
V(_HashVMBase, get:_usedData, LinkedHashMap_getUsedData, 0xf3cf0e2e) \
V(_HashVMBase, set:_usedData, LinkedHashMap_setUsedData, 0x75261d2a) \
V(_HashVMBase, get:_hashMask, LinkedHashMap_getHashMask, 0xfbd541dd) \
V(_HashVMBase, set:_hashMask, LinkedHashMap_setHashMask, 0x7d2c50d9) \
V(_HashVMBase, get:_deletedKeys, LinkedHashMap_getDeletedKeys, 0xfdd43ee1) \
V(_HashVMBase, set:_deletedKeys, LinkedHashMap_setDeletedKeys, 0x7f2b4ddd) \
V(::, _classRangeCheck, ClassRangeCheck, 0xca52e30a) \
V(::, _asyncStackTraceHelper, AsyncStackTraceHelper, 0xaeaed5cb) \
V(::, _abi, FfiAbi, 0xf2e89620) \
V(::, _asFunctionInternal, FfiAsFunctionInternal, 0x92a67518) \
V(::, _nativeCallbackFunction, FfiNativeCallbackFunction, 0x59cc5edb) \
V(::, _loadInt8, FfiLoadInt8, 0x9b1e4a8d) \
V(::, _loadInt16, FfiLoadInt16, 0x2824dc24) \
V(::, _loadInt32, FfiLoadInt32, 0x3f9bf49d) \
V(::, _loadInt64, FfiLoadInt64, 0xbb4e2186) \
V(::, _loadUint8, FfiLoadUint8, 0xc93d1241) \
V(::, _loadUint16, FfiLoadUint16, 0x4bc4c8ae) \
V(::, _loadUint32, FfiLoadUint32, 0x5fd2e17c) \
V(::, _loadUint64, FfiLoadUint64, 0xec4e4e0a) \
V(::, _loadIntPtr, FfiLoadIntPtr, 0x1ad8e69f) \
V(::, _loadFloat, FfiLoadFloat, 0x234b92dc) \
V(::, _loadDouble, FfiLoadDouble, 0x97c755b3) \
V(::, _loadPointer, FfiLoadPointer, 0xd478c108) \
V(::, _storeInt8, FfiStoreInt8, 0x9a637adf) \
V(::, _storeInt16, FfiStoreInt16, 0x7c5ad40b) \
V(::, _storeInt32, FfiStoreInt32, 0xc729a9da) \
V(::, _storeInt64, FfiStoreInt64, 0x748af071) \
V(::, _storeUint8, FfiStoreUint8, 0xea22235e) \
V(::, _storeUint16, FfiStoreUint16, 0x0c61dd74) \
V(::, _storeUint32, FfiStoreUint32, 0x32962fcb) \
V(::, _storeUint64, FfiStoreUint64, 0xe55a10c2) \
V(::, _storeIntPtr, FfiStoreIntPtr, 0xc75ef10f) \
V(::, _storeFloat, FfiStoreFloat, 0x34a22e07) \
V(::, _storeDouble, FfiStoreDouble, 0x09226ca7) \
V(::, _storePointer, FfiStorePointer, 0x2641a44b) \
V(::, _fromAddress, FfiFromAddress, 0x8eb74eb8) \
V(Pointer, get:address, FfiGetAddress, 0x29a505a1) \
// List of intrinsics:
// (class-name, function-name, intrinsification method, fingerprint).
#define CORE_LIB_INTRINSIC_LIST(V) \
V(_Smi, ~, Smi_bitNegate, 0x2f002cba) \
V(_Smi, get:bitLength, Smi_bitLength, 0x277b8ace) \
V(_Smi, _bitAndFromSmi, Smi_bitAndFromSmi, 0x90b94dd3) \
V(_BigIntImpl, _lsh, Bigint_lsh, 0x776e33c7) \
V(_BigIntImpl, _rsh, Bigint_rsh, 0x2bf277fc) \
V(_BigIntImpl, _absAdd, Bigint_absAdd, 0x147eb8ec) \
V(_BigIntImpl, _absSub, Bigint_absSub, 0xed4c4e74) \
V(_BigIntImpl, _mulAdd, Bigint_mulAdd, 0xc8dcc37e) \
V(_BigIntImpl, _sqrAdd, Bigint_sqrAdd, 0x45be1228) \
V(_BigIntImpl, _estimateQuotientDigit, Bigint_estimateQuotientDigit, \
0xd7c44af1) \
V(_BigIntMontgomeryReduction, _mulMod, Montgomery_mulMod, 0xa1a5caf3) \
V(_Double, >, Double_greaterThan, 0x682a02bc) \
V(_Double, >=, Double_greaterEqualThan, 0x2961f8ee) \
V(_Double, <, Double_lessThan, 0xcbff42e5) \
V(_Double, <=, Double_lessEqualThan, 0xd2253d90) \
V(_Double, ==, Double_equal, 0xa7dfa02b) \
V(_Double, +, Double_add, 0xf7d8da94) \
V(_Double, -, Double_sub, 0xc8dda725) \
V(_Double, *, Double_mul, 0x2dac85a2) \
V(_Double, /, Double_div, 0x6cf1f09e) \
V(_Double, get:hashCode, Double_hashCode, 0x22a75218) \
V(_Double, get:_identityHashCode, Double_identityHash, 0xf46be6d6) \
V(_Double, get:isNaN, Double_getIsNaN, 0xb177a8f6) \
V(_Double, get:isInfinite, Double_getIsInfinite, 0xa1e96db5) \
V(_Double, get:isNegative, Double_getIsNegative, 0xb15ff274) \
V(_Double, _mulFromInteger, Double_mulFromInteger, 0xe2853768) \
V(_Double, .fromInteger, DoubleFromInteger, 0x89504536) \
V(_GrowableList, ._withData, GrowableArray_Allocate, 0x57717122) \
V(_RegExp, _ExecuteMatch, RegExp_ExecuteMatch, 0xb961fc8d) \
V(_RegExp, _ExecuteMatchSticky, RegExp_ExecuteMatchSticky, 0xb22daf53) \
V(Object, ==, ObjectEquals, 0x91ead0d6) \
V(Object, get:runtimeType, ObjectRuntimeType, 0x8cdba093) \
V(Object, _haveSameRuntimeType, ObjectHaveSameRuntimeType, 0xcee5d65a) \
V(_StringBase, get:hashCode, String_getHashCode, 0x22a75237) \
V(_StringBase, get:_identityHashCode, String_identityHash, 0xf46be6f5) \
V(_StringBase, get:isEmpty, StringBaseIsEmpty, 0xd7218394) \
V(_StringBase, _substringMatches, StringBaseSubstringMatches, 0x46fc3731) \
V(_StringBase, [], StringBaseCharAt, 0xe67164fe) \
V(_OneByteString, get:hashCode, OneByteString_getHashCode, 0x22a75237) \
V(_OneByteString, _substringUncheckedNative, \
OneByteString_substringUnchecked, 0x94c41563) \
V(_OneByteString, _setAt, OneByteStringSetAt, 0xc6c7e75d) \
V(_OneByteString, _allocate, OneByteString_allocate, 0xbe472ce0) \
V(_OneByteString, ==, OneByteString_equality, 0xe1ea0c11) \
V(_TwoByteString, ==, TwoByteString_equality, 0xe1ea0c11) \
V(_Type, get:hashCode, Type_getHashCode, 0x22a75237) \
V(::, _getHash, Object_getHash, 0xb05aa13f) \
V(::, _setHash, Object_setHash, 0xcb404dd2) \
#define CORE_INTEGER_LIB_INTRINSIC_LIST(V) \
V(_IntegerImplementation, _addFromInteger, Integer_addFromInteger, \
0xc7bd74ae) \
V(_IntegerImplementation, +, Integer_add, 0x49774600) \
V(_IntegerImplementation, _subFromInteger, Integer_subFromInteger, \
0x8e0de2a2) \
V(_IntegerImplementation, -, Integer_sub, 0x1a853bf1) \
V(_IntegerImplementation, _mulFromInteger, Integer_mulFromInteger, \
0x95751a41) \
V(_IntegerImplementation, *, Integer_mul, 0xefe7fbce) \
V(_IntegerImplementation, _moduloFromInteger, Integer_moduloFromInteger, \
0xbc75fece) \
V(_IntegerImplementation, ~/, Integer_truncDivide, 0xfb066107) \
V(_IntegerImplementation, unary-, Integer_negate, 0xdb5f0d70) \
V(_IntegerImplementation, _bitAndFromInteger, Integer_bitAndFromInteger, \
0xb7e724d2) \
V(_IntegerImplementation, &, Integer_bitAnd, 0xd9888ca4) \
V(_IntegerImplementation, _bitOrFromInteger, Integer_bitOrFromInteger, \
0xa97501aa) \
V(_IntegerImplementation, |, Integer_bitOr, 0xc82cc85c) \
V(_IntegerImplementation, _bitXorFromInteger, Integer_bitXorFromInteger, \
0x9ab4d16e) \
V(_IntegerImplementation, ^, Integer_bitXor, 0xc1ed9463) \
V(_IntegerImplementation, _greaterThanFromInteger, \
Integer_greaterThanFromInt, 0x3366ff66) \
V(_IntegerImplementation, >, Integer_greaterThan, 0xe74b678c) \
V(_IntegerImplementation, ==, Integer_equal, 0xb6faea0e) \
V(_IntegerImplementation, _equalToInteger, Integer_equalToInteger, \
0x39d3cd05) \
V(_IntegerImplementation, <, Integer_lessThan, 0xcbff42e5) \
V(_IntegerImplementation, <=, Integer_lessEqualThan, 0xd2253d90) \
V(_IntegerImplementation, >=, Integer_greaterEqualThan, 0x2961f8ee) \
V(_IntegerImplementation, <<, Integer_shl, 0x972a7fd6) \
V(_IntegerImplementation, >>, Integer_sar, 0xfe022e7b) \
V(_Double, toInt, DoubleToInteger, 0x14433ded) \
#define MATH_LIB_INTRINSIC_LIST(V) \
V(::, sqrt, MathSqrt, 0x2c20a879) \
V(_Random, _nextState, Random_nextState, 0x30682e3d) \
#define GRAPH_MATH_LIB_INTRINSIC_LIST(V) \
V(::, sin, MathSin, 0x18e743c0) \
V(::, cos, MathCos, 0x6623c0ce) \
V(::, tan, MathTan, 0x3584ee62) \
V(::, asin, MathAsin, 0xb023f0df) \
V(::, acos, MathAcos, 0x165661fa) \
V(::, atan, MathAtan, 0xc91eca17) \
V(::, atan2, MathAtan2, 0x79b3a5e6) \
#define TYPED_DATA_LIB_INTRINSIC_LIST(V) \
V(Int8List, ., TypedData_Int8Array_factory, 0x6ce2f102) \
V(Uint8List, ., TypedData_Uint8Array_factory, 0x1163d489) \
V(Uint8ClampedList, ., TypedData_Uint8ClampedArray_factory, 0x0b0e9f0f) \
V(Int16List, ., TypedData_Int16Array_factory, 0x6addd02d) \
V(Uint16List, ., TypedData_Uint16Array_factory, 0x139a6464) \
V(Int32List, ., TypedData_Int32Array_factory, 0x40dad19a) \
V(Uint32List, ., TypedData_Uint32Array_factory, 0x988357c5) \
V(Int64List, ., TypedData_Int64Array_factory, 0xef0a3469) \
V(Uint64List, ., TypedData_Uint64Array_factory, 0xf49c0472) \
V(Float32List, ., TypedData_Float32Array_factory, 0x779b26f8) \
V(Float64List, ., TypedData_Float64Array_factory, 0xf623554b) \
V(Float32x4List, ., TypedData_Float32x4Array_factory, 0x9edf5402) \
V(Int32x4List, ., TypedData_Int32x4Array_factory, 0x915e8e68) \
V(Float64x2List, ., TypedData_Float64x2Array_factory, 0x0d206864) \
#define GRAPH_TYPED_DATA_INTRINSICS_LIST(V) \
V(_Int8List, [], Int8ArrayGetIndexed, 0xdab47d5d) \
V(_Int8List, []=, Int8ArraySetIndexed, 0x09ba0f32) \
V(_Uint8List, [], Uint8ArrayGetIndexed, 0xa9468b1d) \
V(_Uint8List, []=, Uint8ArraySetIndexed, 0xa6fd9dce) \
V(_ExternalUint8Array, [], ExternalUint8ArrayGetIndexed, 0xa9468b1d) \
V(_ExternalUint8Array, []=, ExternalUint8ArraySetIndexed, 0xa6fd9dce) \
V(_Uint8ClampedList, [], Uint8ClampedArrayGetIndexed, 0xa9468b1d) \
V(_Uint8ClampedList, []=, Uint8ClampedArraySetIndexed, 0x7d60b42e) \
V(_ExternalUint8ClampedArray, [], ExternalUint8ClampedArrayGetIndexed, \
0xa9468b1d) \
V(_ExternalUint8ClampedArray, []=, ExternalUint8ClampedArraySetIndexed, \
0x7d60b42e) \
V(_Int16List, [], Int16ArrayGetIndexed, 0x2b783e9d) \
V(_Int16List, []=, Int16ArraySetIndexed, 0x894edd67) \
V(_Uint16List, [], Uint16ArrayGetIndexed, 0x3d599bdd) \
V(_Uint16List, []=, Uint16ArraySetIndexed, 0x146065d0) \
V(_Int32List, [], Int32ArrayGetIndexed, 0x645ac57e) \
V(_Int32List, []=, Int32ArraySetIndexed, 0x58343408) \
V(_Uint32List, [], Uint32ArrayGetIndexed, 0xe6f6183e) \
V(_Uint32List, []=, Uint32ArraySetIndexed, 0x7ee99568) \
V(_Int64List, [], Int64ArrayGetIndexed, 0x57d917de) \
V(_Int64List, []=, Int64ArraySetIndexed, 0x94485c32) \
V(_Uint64List, [], Uint64ArrayGetIndexed, 0x7fb017de) \
V(_Uint64List, []=, Uint64ArraySetIndexed, 0x1c695796) \
V(_Float64List, [], Float64ArrayGetIndexed, 0x9e20a2c3) \
V(_Float64List, []=, Float64ArraySetIndexed, 0xcd01ec0c) \
V(_Float32List, [], Float32ArrayGetIndexed, 0x7c01bb83) \
V(_Float32List, []=, Float32ArraySetIndexed, 0xcb87f800) \
V(_Float32x4List, [], Float32x4ArrayGetIndexed, 0x5a2a83fc) \
V(_Float32x4List, []=, Float32x4ArraySetIndexed, 0x5ae5c9f3) \
V(_Int32x4List, [], Int32x4ArrayGetIndexed, 0x05ef16d4) \
V(_Int32x4List, []=, Int32x4ArraySetIndexed, 0x2e8437b1) \
V(_Float64x2List, [], Float64x2ArrayGetIndexed, 0xe7fbf246) \
V(_Float64x2List, []=, Float64x2ArraySetIndexed, 0xce826d19) \
V(_TypedList, get:length, TypedListLength, 0x05176aac) \
V(_TypedListView, get:length, TypedListViewLength, 0x05176aac) \
V(_ByteDataView, get:length, ByteDataViewLength, 0x05176aac) \
V(_Float32x4, get:x, Float32x4ShuffleX, 0x00b83193) \
V(_Float32x4, get:y, Float32x4ShuffleY, 0xee498cb6) \
V(_Float32x4, get:z, Float32x4ShuffleZ, 0x2414f84c) \
V(_Float32x4, get:w, Float32x4ShuffleW, 0x06553cce) \
V(_Float32x4, *, Float32x4Mul, 0xf817cb64) \
V(_Float32x4, -, Float32x4Sub, 0xeff9bb27) \
V(_Float32x4, +, Float32x4Add, 0xcac0f0b6) \
#define GRAPH_CORE_INTRINSICS_LIST(V) \
V(_List, get:length, ObjectArrayLength, 0x05176aac) \
V(_List, [], ObjectArrayGetIndexed, 0x7e13418e) \
V(_List, []=, ObjectArraySetIndexed, 0x4d5e74cf) \
V(_List, _setIndexed, ObjectArraySetIndexedUnchecked, 0x91b2c203) \
V(_ImmutableList, get:length, ImmutableArrayLength, 0x05176aac) \
V(_ImmutableList, [], ImmutableArrayGetIndexed, 0x7e13418e) \
V(_GrowableList, get:length, GrowableArrayLength, 0x05176aac) \
V(_GrowableList, get:_capacity, GrowableArrayCapacity, 0x2a661633) \
V(_GrowableList, _setData, GrowableArraySetData, 0x9e2350fe) \
V(_GrowableList, _setLength, GrowableArraySetLength, 0x8d94d91d) \
V(_GrowableList, [], GrowableArrayGetIndexed, 0x7e13418e) \
V(_GrowableList, []=, GrowableArraySetIndexed, 0x4d5e74cf) \
V(_GrowableList, _setIndexed, GrowableArraySetIndexedUnchecked, 0x91b2c203) \
V(_StringBase, get:length, StringBaseLength, 0x05176aac) \
V(_OneByteString, codeUnitAt, OneByteStringCodeUnitAt, 0xb0959953) \
V(_TwoByteString, codeUnitAt, TwoByteStringCodeUnitAt, 0xb0959953) \
V(_ExternalOneByteString, codeUnitAt, ExternalOneByteStringCodeUnitAt, \
0xb0959953) \
V(_ExternalTwoByteString, codeUnitAt, ExternalTwoByteStringCodeUnitAt, \
0xb0959953) \
V(_Double, unary-, DoubleFlipSignBit, 0x039c6e4a) \
V(_Double, truncateToDouble, DoubleTruncate, 0x2960d21d) \
V(_Double, roundToDouble, DoubleRound, 0x1cd615c4) \
V(_Double, floorToDouble, DoubleFloor, 0x1b41170c) \
V(_Double, ceilToDouble, DoubleCeil, 0x25a81a9d) \
V(_Double, _modulo, DoubleMod, 0x42a93471)
#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, 0x472d1eb5) \
V(::, _getDefaultTag, UserTag_defaultTag, 0x5c124271) \
V(::, _getCurrentTag, Profiler_getCurrentTag, 0x5d6d8a14) \
V(::, _isDartStreamEnabled, Timeline_isDartStreamEnabled, 0xcf6f3099) \
#define ASYNC_LIB_INTRINSIC_LIST(V) \
V(::, _clearAsyncThreadStackTrace, ClearAsyncThreadStackTrace, 0x341efd8e) \
V(::, _setAsyncThreadStackTrace, SetAsyncThreadStackTrace, 0x5f29f453) \
#define ALL_INTRINSICS_NO_INTEGER_LIB_LIST(V) \
ASYNC_LIB_INTRINSIC_LIST(V) \
CORE_LIB_INTRINSIC_LIST(V) \
DEVELOPER_LIB_INTRINSIC_LIST(V) \
MATH_LIB_INTRINSIC_LIST(V) \
TYPED_DATA_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, 0xe67164fe) \
V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 0xa24c2704) \
V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 0xa491df3e) \
V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 0xb65ae1fc) \
V(_TypedList, _getUint16, ByteArrayBaseGetUint16, 0xb4b776e5) \
V(_TypedList, _getInt32, ByteArrayBaseGetInt32, 0xb460abe4) \
V(_TypedList, _getUint32, ByteArrayBaseGetUint32, 0x8c066c71) \
V(_TypedList, _getInt64, ByteArrayBaseGetInt64, 0xacf2f222) \
V(_TypedList, _getUint64, ByteArrayBaseGetUint64, 0xa74b200b) \
V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 0xa33a9f77) \
V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 0x87d86b60) \
V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 0x3e76086e) \
V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 0xfea5f17f) \
V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 0xd2c4e74b) \
V(_TypedList, _setUint8, ByteArrayBaseSetInt8, 0xec62b082) \
V(_TypedList, _setInt16, ByteArrayBaseSetInt16, 0xc3566903) \
V(_TypedList, _setUint16, ByteArrayBaseSetInt16, 0xdb50780f) \
V(_TypedList, _setInt32, ByteArrayBaseSetInt32, 0xbeeeea8a) \
V(_TypedList, _setUint32, ByteArrayBaseSetUint32, 0xca02f10a) \
V(_TypedList, _setInt64, ByteArrayBaseSetInt64, 0xcf587ccf) \
V(_TypedList, _setUint64, ByteArrayBaseSetUint64, 0xe01a1df0) \
V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 0xb6a6294f) \
V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 0xce7dad17) \
V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 0x4b773b59) \
V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 0xfa2a6f88) \
V(Object, get:runtimeType, ObjectRuntimeType, 0x8cdba093)
// 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, 0x704c8d5d) \
V(_GrowableListWithData, _GrowableList, ._withData, kGrowableObjectArrayCid, \
0x57717122) \
V(_GrowableListFactory, _GrowableList, ., kGrowableObjectArrayCid, \
0x3eed680b) \
V(_Int8ArrayFactory, Int8List, ., kTypedDataInt8ArrayCid, 0x6ce2f102) \
V(_Uint8ArrayFactory, Uint8List, ., kTypedDataUint8ArrayCid, 0x1163d489) \
V(_Uint8ClampedArrayFactory, Uint8ClampedList, ., \
kTypedDataUint8ClampedArrayCid, 0x0b0e9f0f) \
V(_Int16ArrayFactory, Int16List, ., kTypedDataInt16ArrayCid, 0x6addd02d) \
V(_Uint16ArrayFactory, Uint16List, ., kTypedDataUint16ArrayCid, 0x139a6464) \
V(_Int32ArrayFactory, Int32List, ., kTypedDataInt32ArrayCid, 0x40dad19a) \
V(_Uint32ArrayFactory, Uint32List, ., kTypedDataUint32ArrayCid, 0x988357c5) \
V(_Int64ArrayFactory, Int64List, ., kTypedDataInt64ArrayCid, 0xef0a3469) \
V(_Uint64ArrayFactory, Uint64List, ., kTypedDataUint64ArrayCid, 0xf49c0472) \
V(_Float64ArrayFactory, Float64List, ., kTypedDataFloat64ArrayCid, \
0xf623554b) \
V(_Float32ArrayFactory, Float32List, ., kTypedDataFloat32ArrayCid, \
0x779b26f8) \
V(_Float32x4ArrayFactory, Float32x4List, ., kTypedDataFloat32x4ArrayCid, \
0x9edf5402)
// clang-format on
} // namespace dart
#endif // RUNTIME_VM_COMPILER_RECOGNIZED_METHODS_LIST_H_