// Copyright (c) 2014, 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_METHOD_RECOGNIZER_H_
#define RUNTIME_VM_COMPILER_METHOD_RECOGNIZER_H_

#include "vm/allocation.h"
#include "vm/growable_array.h"
#include "vm/token.h"

namespace dart {

// clang-format off
// (class-name, function-name, recognized enum, result type, fingerprint).
// When adding a new function add a 0 as fingerprint, build and run to get the
// correct fingerprint from the mismatch error (or use Library::GetFunction()
// and print func.SourceFingerprint()).
#define OTHER_RECOGNIZED_LIST(V)                                               \
  V(::, identical, ObjectIdentical, Bool, 0x49c6e96a)                          \
  V(ClassID, getID, ClassIDgetID, Smi, 0x7b18b257)                             \
  V(Object, Object., ObjectConstructor, Dynamic, 0x681617fe)                   \
  V(List, ., ListFactory, Dynamic, 0x629f8324)                                 \
  V(_List, ., ObjectArrayAllocate, Array, 0x2121902f)                          \
  V(_TypedList, _getInt8, ByteArrayBaseGetInt8, Smi, 0x7041895a)               \
  V(_TypedList, _getUint8, ByteArrayBaseGetUint8, Smi, 0x336fa3ea)             \
  V(_TypedList, _getInt16, ByteArrayBaseGetInt16, Smi, 0x231bbe2e)             \
  V(_TypedList, _getUint16, ByteArrayBaseGetUint16, Smi, 0x0371785f)           \
  V(_TypedList, _getInt32, ByteArrayBaseGetInt32, Dynamic, 0x65ab3a20)         \
  V(_TypedList, _getUint32, ByteArrayBaseGetUint32, Dynamic, 0x0cb0fcf6)       \
  V(_TypedList, _getInt64, ByteArrayBaseGetInt64, Dynamic, 0x7db75d78)         \
  V(_TypedList, _getUint64, ByteArrayBaseGetUint64, Dynamic, 0x1487cfc6)       \
  V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, Double, 0x6674ea6f)      \
  V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, Double, 0x236c6e7a)      \
  V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, Float32x4,           \
    0x5c367ffb)                                                                \
  V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, Int32x4, 0x772d1c0f)     \
  V(_TypedList, _setInt8, ByteArrayBaseSetInt8, Dynamic, 0x12bae36a)           \
  V(_TypedList, _setUint8, ByteArrayBaseSetUint8, Dynamic, 0x15821cc9)         \
  V(_TypedList, _setInt16, ByteArrayBaseSetInt16, Dynamic, 0x1f8237fa)         \
  V(_TypedList, _setUint16, ByteArrayBaseSetUint16, Dynamic, 0x181e5d16)       \
  V(_TypedList, _setInt32, ByteArrayBaseSetInt32, Dynamic, 0x7ddb9f87)         \
  V(_TypedList, _setUint32, ByteArrayBaseSetUint32, Dynamic, 0x74094f8d)       \
  V(_TypedList, _setInt64, ByteArrayBaseSetInt64, Dynamic, 0x4741396e)         \
  V(_TypedList, _setUint64, ByteArrayBaseSetUint64, Dynamic, 0x3b398ae4)       \
  V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, Dynamic, 0x03db087b)     \
  V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, Dynamic, 0x38a80b0d)     \
  V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, Dynamic, 0x40052c4e) \
  V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, Dynamic, 0x07b89f54)     \
  V(::, _toClampedUint8, ConvertIntToClampedUint8, Smi, 0x564b0435)            \
  V(_StringBase, _interpolate, StringBaseInterpolate, Dynamic, 0x01ecb15a)     \
  V(_IntegerImplementation, toDouble, IntegerToDouble, Double, 0x05da96ed)     \
  V(_Double, _add, DoubleAdd, Double, 0x2a38277b)                              \
  V(_Double, _sub, DoubleSub, Double, 0x4f466391)                              \
  V(_Double, _mul, DoubleMul, Double, 0x175e4f66)                              \
  V(_Double, _div, DoubleDiv, Double, 0x0854181b)                              \
  V(::, min, MathMin, Dynamic, 0x32ebc57d)                                     \
  V(::, max, MathMax, Dynamic, 0x377e8889)                                     \
  V(::, _doublePow, MathDoublePow, Double, 0x5add0ec1)                         \
  V(::, _intPow, MathIntPow, Dynamic, 0x11b45569)                              \
  V(Float32x4, Float32x4., Float32x4Constructor, Float32x4, 0x26ea459b)        \
  V(Float32x4, Float32x4.zero, Float32x4Zero, Float32x4, 0x16eca604)           \
  V(Float32x4, Float32x4.splat, Float32x4Splat, Float32x4, 0x694e83e3)         \
  V(Float32x4, Float32x4.fromInt32x4Bits, Int32x4ToFloat32x4, Float32x4,       \
    0x2f62ebd3)                                                                \
  V(Float32x4, Float32x4.fromFloat64x2, Float64x2ToFloat32x4, Float32x4,       \
    0x50ed6910)                                                                \
  V(_Float32x4, shuffle, Float32x4Shuffle, Float32x4, 0x7829101f)              \
  V(_Float32x4, shuffleMix, Float32x4ShuffleMix, Float32x4, 0x4182c06b)        \
  V(_Float32x4, get:signMask, Float32x4GetSignMask, Dynamic, 0x1d08b351)       \
  V(_Float32x4, equal, Float32x4Equal, Int32x4, 0x11adb239)                    \
  V(_Float32x4, greaterThan, Float32x4GreaterThan, Int32x4, 0x48adaf58)        \
  V(_Float32x4, greaterThanOrEqual, Float32x4GreaterThanOrEqual, Int32x4,      \
    0x32db94ca)                                                                \
  V(_Float32x4, lessThan, Float32x4LessThan, Int32x4, 0x425b000c)              \
  V(_Float32x4, lessThanOrEqual, Float32x4LessThanOrEqual, Int32x4,            \
    0x0278c2f8)                                                                \
  V(_Float32x4, notEqual, Float32x4NotEqual, Int32x4, 0x2987cd26)              \
  V(_Float32x4, min, Float32x4Min, Float32x4, 0x5ed74b6f)                      \
  V(_Float32x4, max, Float32x4Max, Float32x4, 0x68696442)                      \
  V(_Float32x4, scale, Float32x4Scale, Float32x4, 0x704e4122)                  \
  V(_Float32x4, sqrt, Float32x4Sqrt, Float32x4, 0x2c967a6f)                    \
  V(_Float32x4, reciprocalSqrt, Float32x4ReciprocalSqrt, Float32x4,            \
    0x6264bfe8)                                                                \
  V(_Float32x4, reciprocal, Float32x4Reciprocal, Float32x4, 0x3cd7e819)        \
  V(_Float32x4, unary-, Float32x4Negate, Float32x4, 0x37accb52)                \
  V(_Float32x4, abs, Float32x4Abs, Float32x4, 0x471cdd87)                      \
  V(_Float32x4, clamp, Float32x4Clamp, Float32x4, 0x2cb30492)                  \
  V(_Float32x4, withX, Float32x4WithX, Float32x4, 0x4e336aff)                  \
  V(_Float32x4, withY, Float32x4WithY, Float32x4, 0x0a72b910)                  \
  V(_Float32x4, withZ, Float32x4WithZ, Float32x4, 0x31e93658)                  \
  V(_Float32x4, withW, Float32x4WithW, Float32x4, 0x60ddc105)                  \
  V(Float64x2, Float64x2., Float64x2Constructor, Float64x2, 0x43054b9f)        \
  V(Float64x2, Float64x2.zero, Float64x2Zero, Float64x2, 0x4af12f9d)           \
  V(Float64x2, Float64x2.splat, Float64x2Splat, Float64x2, 0x134edef0)         \
  V(Float64x2, Float64x2.fromFloat32x4, Float32x4ToFloat64x2, Float64x2,       \
    0x17d6b5e4)                                                                \
  V(_Float64x2, get:x, Float64x2GetX, Double, 0x58c09c58)                      \
  V(_Float64x2, get:y, Float64x2GetY, Double, 0x3cf5e5b8)                      \
  V(_Float64x2, unary-, Float64x2Negate, Float64x2, 0x415ca009)                \
  V(_Float64x2, abs, Float64x2Abs, Float64x2, 0x031f9e47)                      \
  V(_Float64x2, sqrt, Float64x2Sqrt, Float64x2, 0x77f711dd)                    \
  V(_Float64x2, get:signMask, Float64x2GetSignMask, Dynamic, 0x27deda4b)       \
  V(_Float64x2, scale, Float64x2Scale, Float64x2, 0x26830a61)                  \
  V(_Float64x2, withX, Float64x2WithX, Float64x2, 0x1d2bcaf5)                  \
  V(_Float64x2, withY, Float64x2WithY, Float64x2, 0x383ed6ac)                  \
  V(_Float64x2, min, Float64x2Min, Float64x2, 0x28d7ddf6)                      \
  V(_Float64x2, max, Float64x2Max, Float64x2, 0x0bd74e5b)                      \
  V(Int32x4, Int32x4., Int32x4Constructor, Int32x4, 0x480555a9)                \
  V(Int32x4, Int32x4.bool, Int32x4BoolConstructor, Int32x4, 0x36aa6963)        \
  V(Int32x4, Int32x4.fromFloat32x4Bits, Float32x4ToInt32x4, Int32x4,           \
    0x6715388a)                                                                \
  V(_Int32x4, get:flagX, Int32x4GetFlagX, Bool, 0x56396c82)                    \
  V(_Int32x4, get:flagY, Int32x4GetFlagY, Bool, 0x44704738)                    \
  V(_Int32x4, get:flagZ, Int32x4GetFlagZ, Bool, 0x20d6ff37)                    \
  V(_Int32x4, get:flagW, Int32x4GetFlagW, Bool, 0x5045616a)                    \
  V(_Int32x4, get:signMask, Int32x4GetSignMask, Dynamic, 0x2c1fb2a3)           \
  V(_Int32x4, shuffle, Int32x4Shuffle, Int32x4, 0x20bc0b16)                    \
  V(_Int32x4, shuffleMix, Int32x4ShuffleMix, Int32x4, 0x5c7056e1)              \
  V(_Int32x4, select, Int32x4Select, Float32x4, 0x6b49654f)                    \
  V(_Int32x4, withFlagX, Int32x4WithFlagX, Int32x4, 0x0ef58fcf)                \
  V(_Int32x4, withFlagY, Int32x4WithFlagY, Int32x4, 0x6485a9c4)                \
  V(_Int32x4, withFlagZ, Int32x4WithFlagZ, Int32x4, 0x267acdfa)                \
  V(_Int32x4, withFlagW, Int32x4WithFlagW, Int32x4, 0x345ac675)                \
  V(_HashVMBase, get:_index, LinkedHashMap_getIndex, TypedDataUint32Array,     \
      0x02477157)                                                              \
  V(_HashVMBase, set:_index, LinkedHashMap_setIndex, Dynamic, 0x4fc8d5e0)      \
  V(_HashVMBase, get:_data, LinkedHashMap_getData, Array, 0x2d7a70ac)          \
  V(_HashVMBase, set:_data, LinkedHashMap_setData, Dynamic, 0x0ec032e8)        \
  V(_HashVMBase, get:_usedData, LinkedHashMap_getUsedData, Smi, 0x088599ed)    \
  V(_HashVMBase, set:_usedData, LinkedHashMap_setUsedData, Dynamic, 0x5f42ca86)\
  V(_HashVMBase, get:_hashMask, LinkedHashMap_getHashMask, Smi, 0x32f3b13b)    \
  V(_HashVMBase, set:_hashMask, LinkedHashMap_setHashMask, Dynamic, 0x7219c45b)\
  V(_HashVMBase, get:_deletedKeys, LinkedHashMap_getDeletedKeys, Smi,          \
    0x558481c2)                                                                \
  V(_HashVMBase, set:_deletedKeys, LinkedHashMap_setDeletedKeys, Dynamic,      \
    0x5aa9888d)                                                                \
  V(::, _classRangeCheck, ClassRangeCheck, Bool, 0x2ae76b84)                   \
  V(::, _classRangeCheckNegative, ClassRangeCheckNegated, Bool, 0x5acdfb75)    \


// List of intrinsics:
// (class-name, function-name, intrinsification method, fingerprint).
#define CORE_LIB_INTRINSIC_LIST(V)                                             \
  V(_Smi, ~, Smi_bitNegate, Smi, 0x67299f4f)                                   \
  V(_Smi, get:bitLength, Smi_bitLength, Smi, 0x25b3cb0a)                       \
  V(_Smi, _bitAndFromSmi, Smi_bitAndFromSmi, Smi, 0x562d5047)                  \
  V(_BigIntImpl, _lsh, Bigint_lsh, Dynamic, 0x5b6cfc8b)                        \
  V(_BigIntImpl, _rsh, Bigint_rsh, Dynamic, 0x6ff14a49)                        \
  V(_BigIntImpl, _absAdd, Bigint_absAdd, Dynamic, 0x5bf14238)                  \
  V(_BigIntImpl, _absSub, Bigint_absSub, Dynamic, 0x1de5bd32)                  \
  V(_BigIntImpl, _mulAdd, Bigint_mulAdd, Smi, 0x6f277966)                      \
  V(_BigIntImpl, _sqrAdd, Bigint_sqrAdd, Smi, 0x68e4c8ea)                      \
  V(_BigIntImpl, _estimateQuotientDigit, Bigint_estimateQuotientDigit, Smi,    \
    0x35456d91)                                                                \
  V(_BigIntMontgomeryReduction, _mulMod, Montgomery_mulMod, Smi, 0x0f7b0375)   \
  V(_Double, >, Double_greaterThan, Bool, 0x4f1375a3)                          \
  V(_Double, >=, Double_greaterEqualThan, Bool, 0x4260c184)                    \
  V(_Double, <, Double_lessThan, Bool, 0x365d1eba)                             \
  V(_Double, <=, Double_lessEqualThan, Bool, 0x74b5eb64)                       \
  V(_Double, ==, Double_equal, Bool, 0x613492fc)                               \
  V(_Double, +, Double_add, Double, 0x53994370)                                \
  V(_Double, -, Double_sub, Double, 0x3b69d466)                                \
  V(_Double, *, Double_mul, Double, 0x2bb9bd5d)                                \
  V(_Double, /, Double_div, Double, 0x483eee28)                                \
  V(_Double, get:hashCode, Double_hashCode, Dynamic, 0x702b77b7)               \
  V(_Double, get:_identityHashCode, Double_identityHash, Dynamic, 0x7bda5549)  \
  V(_Double, get:isNaN, Double_getIsNaN, Bool, 0x0af9d4a9)                     \
  V(_Double, get:isInfinite, Double_getIsInfinite, Bool, 0x0f7acb47)           \
  V(_Double, get:isNegative, Double_getIsNegative, Bool, 0x3a59e7f4)           \
  V(_Double, _mulFromInteger, Double_mulFromInteger, Double, 0x2017fcf6)       \
  V(_Double, .fromInteger, DoubleFromInteger, Double, 0x6d234f4b)              \
  V(_GrowableList, .withData, GrowableArray_Allocate, GrowableObjectArray,     \
    0x28b2138e)                                                                \
  V(_RegExp, _ExecuteMatch, RegExp_ExecuteMatch, Dynamic, 0x380184b1)          \
  V(_RegExp, _ExecuteMatchSticky, RegExp_ExecuteMatchSticky, Dynamic,          \
    0x79b8f955)                                                                \
  V(Object, ==, ObjectEquals, Bool, 0x7b32a55a)                                \
  V(Object, get:runtimeType, ObjectRuntimeType, Type, 0x00e8ab29)              \
  V(Object, _haveSameRuntimeType, ObjectHaveSameRuntimeType, Bool, 0x4dc50799) \
  V(_StringBase, get:hashCode, String_getHashCode, Smi, 0x78c3d446)            \
  V(_StringBase, get:_identityHashCode, String_identityHash, Smi, 0x0472b1d8)  \
  V(_StringBase, get:isEmpty, StringBaseIsEmpty, Bool, 0x4a8b29c8)             \
  V(_StringBase, _substringMatches, StringBaseSubstringMatches, Bool,          \
    0x46de4f10)                                                                \
  V(_StringBase, [], StringBaseCharAt, Dynamic, 0x7cbb8603)                    \
  V(_OneByteString, get:hashCode, OneByteString_getHashCode, Smi, 0x78c3d446)  \
  V(_OneByteString, _substringUncheckedNative,                                 \
    OneByteString_substringUnchecked, OneByteString, 0x3538ad86)               \
  V(_OneByteString, _setAt, OneByteStringSetAt, Dynamic, 0x11ffddd1)           \
  V(_OneByteString, _allocate, OneByteString_allocate, OneByteString,          \
    0x74933376)                                                                \
  V(_OneByteString, ==, OneByteString_equality, Bool, 0x4eda197e)              \
  V(_TwoByteString, ==, TwoByteString_equality, Bool, 0x4eda197e)              \
  V(_Type, get:hashCode, Type_getHashCode, Smi, 0x18d1523f)                    \
  V(::, _getHash, Object_getHash, Smi, 0x2827856d)                             \
  V(::, _setHash, Object_setHash, Dynamic, 0x690faebd)                         \


#define CORE_INTEGER_LIB_INTRINSIC_LIST(V)                                     \
  V(_IntegerImplementation, _addFromInteger, Integer_addFromInteger,           \
    Dynamic, 0x6a10c54a)                                                       \
  V(_IntegerImplementation, +, Integer_add, Dynamic, 0x43d53af7)               \
  V(_IntegerImplementation, _subFromInteger, Integer_subFromInteger, Dynamic,  \
    0x3fa4b1ed)                                                                \
  V(_IntegerImplementation, -, Integer_sub, Dynamic, 0x2dc22e03)               \
  V(_IntegerImplementation, _mulFromInteger, Integer_mulFromInteger,           \
    Dynamic, 0x3216e299)                                                       \
  V(_IntegerImplementation, *, Integer_mul, Dynamic, 0x4e7a1c24)               \
  V(_IntegerImplementation, _moduloFromInteger, Integer_moduloFromInteger,     \
    Dynamic, 0x6348b974)                                                       \
  V(_IntegerImplementation, ~/, Integer_truncDivide, Dynamic, 0x4efb2d39)      \
  V(_IntegerImplementation, unary-, Integer_negate, Dynamic, 0x428bf6fa)       \
  V(_IntegerImplementation, _bitAndFromInteger, Integer_bitAndFromInteger,     \
    Dynamic, 0x395b1678)                                                       \
  V(_IntegerImplementation, &, Integer_bitAnd, Dynamic, 0x5ab35f30)            \
  V(_IntegerImplementation, _bitOrFromInteger, Integer_bitOrFromInteger,       \
    Dynamic, 0x6a36b395)                                                       \
  V(_IntegerImplementation, |, Integer_bitOr, Dynamic, 0x267fa107)             \
  V(_IntegerImplementation, _bitXorFromInteger, Integer_bitXorFromInteger,     \
    Dynamic, 0x72da93f0)                                                       \
  V(_IntegerImplementation, ^, Integer_bitXor, Dynamic, 0x0c7b0230)            \
  V(_IntegerImplementation, _greaterThanFromInteger,                           \
    Integer_greaterThanFromInt, Bool, 0x4a50ed58)                              \
  V(_IntegerImplementation, >, Integer_greaterThan, Bool, 0x6599a6e1)          \
  V(_IntegerImplementation, ==, Integer_equal, Bool, 0x58abc487)               \
  V(_IntegerImplementation, _equalToInteger, Integer_equalToInteger, Bool,     \
    0x063be842)                                                                \
  V(_IntegerImplementation, <, Integer_lessThan, Bool, 0x365d1eba)             \
  V(_IntegerImplementation, <=, Integer_lessEqualThan, Bool, 0x74b5eb64)       \
  V(_IntegerImplementation, >=, Integer_greaterEqualThan, Bool, 0x4260c184)    \
  V(_IntegerImplementation, <<, Integer_shl, Dynamic, 0x371c45fa)              \
  V(_IntegerImplementation, >>, Integer_sar, Dynamic, 0x2b630578)              \
  V(_Double, toInt, DoubleToInteger, Dynamic, 0x26ef344b)                      \

#define MATH_LIB_INTRINSIC_LIST(V)                                             \
  V(::, sqrt, MathSqrt, Double, 0x70482cf3)                                    \
  V(_Random, _nextState, Random_nextState, Dynamic, 0x2842c4d5)                \

#define GRAPH_MATH_LIB_INTRINSIC_LIST(V)                                       \
  V(::, sin, MathSin, Double, 0x6b7bd98c)                                      \
  V(::, cos, MathCos, Double, 0x459bf5fe)                                      \
  V(::, tan, MathTan, Double, 0x3bcd772a)                                      \
  V(::, asin, MathAsin, Double, 0x2ecc2fcd)                                    \
  V(::, acos, MathAcos, Double, 0x08cf2212)                                    \
  V(::, atan, MathAtan, Double, 0x1e2731d5)                                    \
  V(::, atan2, MathAtan2, Double, 0x39f1fa41)                                  \

#define TYPED_DATA_LIB_INTRINSIC_LIST(V)                                       \
  V(Int8List, ., TypedData_Int8Array_factory, TypedDataInt8Array, 0x7e39a3a1)  \
  V(Uint8List, ., TypedData_Uint8Array_factory, TypedDataUint8Array,           \
    0x3a79adf7)                                                                \
  V(Uint8ClampedList, ., TypedData_Uint8ClampedArray_factory,                  \
    TypedDataUint8ClampedArray, 0x67f38395)                                    \
  V(Int16List, ., TypedData_Int16Array_factory, TypedDataInt16Array,           \
    0x6477bda8)                                                                \
  V(Uint16List, ., TypedData_Uint16Array_factory, TypedDataUint16Array,        \
    0x5707c5a2)                                                                \
  V(Int32List, ., TypedData_Int32Array_factory, TypedDataInt32Array,           \
    0x2b96ec0e)                                                                \
  V(Uint32List, ., TypedData_Uint32Array_factory,                              \
    TypedDataUint32Array, 0x0c1c0d62)                                          \
  V(Int64List, ., TypedData_Int64Array_factory,                                \
    TypedDataInt64Array, 0x279ab485)                                           \
  V(Uint64List, ., TypedData_Uint64Array_factory,                              \
    TypedDataUint64Array, 0x7bcb89c2)                                          \
  V(Float32List, ., TypedData_Float32Array_factory,                            \
    TypedDataFloat32Array, 0x43506c09)                                         \
  V(Float64List, ., TypedData_Float64Array_factory,                            \
    TypedDataFloat64Array, 0x1fde3eaf)                                         \
  V(Float32x4List, ., TypedData_Float32x4Array_factory,                        \
    TypedDataFloat32x4Array, 0x4a4030d6)                                       \
  V(Int32x4List, ., TypedData_Int32x4Array_factory,                            \
    TypedDataInt32x4Array, 0x6dd02406)                                         \
  V(Float64x2List, ., TypedData_Float64x2Array_factory,                        \
    TypedDataFloat64x2Array, 0x688e4e97)                                       \

#define GRAPH_TYPED_DATA_INTRINSICS_LIST(V)                                    \
  V(_Int8List, [], Int8ArrayGetIndexed, Smi, 0x49767a2c)                       \
  V(_Int8List, []=, Int8ArraySetIndexed, Dynamic, 0x24f42cd0)                  \
  V(_Uint8List, [], Uint8ArrayGetIndexed, Smi, 0x088d86d4)                     \
  V(_Uint8List, []=, Uint8ArraySetIndexed, Dynamic, 0x12639541)                \
  V(_ExternalUint8Array, [], ExternalUint8ArrayGetIndexed, Smi, 0x088d86d4)    \
  V(_ExternalUint8Array, []=, ExternalUint8ArraySetIndexed, Dynamic,           \
    0x12639541)                                                                \
  V(_Uint8ClampedList, [], Uint8ClampedArrayGetIndexed, Smi, 0x088d86d4)       \
  V(_Uint8ClampedList, []=, Uint8ClampedArraySetIndexed, Dynamic, 0x6790dba1)  \
  V(_ExternalUint8ClampedArray, [], ExternalUint8ClampedArrayGetIndexed,       \
    Smi, 0x088d86d4)                                                           \
  V(_ExternalUint8ClampedArray, []=, ExternalUint8ClampedArraySetIndexed,      \
    Dynamic, 0x6790dba1)                                                       \
  V(_Int16List, [], Int16ArrayGetIndexed, Smi, 0x5ec64948)                     \
  V(_Int16List, []=, Int16ArraySetIndexed, Dynamic, 0x0e4e8221)                \
  V(_Uint16List, [], Uint16ArrayGetIndexed, Smi, 0x5f49d093)                   \
  V(_Uint16List, []=, Uint16ArraySetIndexed, Dynamic, 0x2efbc90f)              \
  V(_Int32List, [], Int32ArrayGetIndexed, Dynamic, 0x4bc0d3dd)                 \
  V(_Int32List, []=, Int32ArraySetIndexed, Dynamic, 0x1adf9823)                \
  V(_Uint32List, [], Uint32ArrayGetIndexed, Dynamic, 0x188658ce)               \
  V(_Uint32List, []=, Uint32ArraySetIndexed, Dynamic, 0x01f51a79)              \
  V(_Int64List, [], Int64ArrayGetIndexed, Dynamic, 0x51eafb97)                 \
  V(_Int64List, []=, Int64ArraySetIndexed, Dynamic, 0x376181fb)                \
  V(_Uint64List, [], Uint64ArrayGetIndexed, Dynamic, 0x4b2a1ba2)               \
  V(_Uint64List, []=, Uint64ArraySetIndexed, Dynamic, 0x5f881bd4)              \
  V(_Float64List, [], Float64ArrayGetIndexed, Double, 0x0a714486)              \
  V(_Float64List, []=, Float64ArraySetIndexed, Dynamic, 0x04937367)            \
  V(_Float32List, [], Float32ArrayGetIndexed, Double, 0x5ade301f)              \
  V(_Float32List, []=, Float32ArraySetIndexed, Dynamic, 0x0d5c2e2b)            \
  V(_Float32x4List, [], Float32x4ArrayGetIndexed, Float32x4, 0x128cddeb)       \
  V(_Float32x4List, []=, Float32x4ArraySetIndexed, Dynamic, 0x7ad55c72)        \
  V(_Int32x4List, [], Int32x4ArrayGetIndexed, Int32x4, 0x4b78af9c)             \
  V(_Int32x4List, []=, Int32x4ArraySetIndexed, Dynamic, 0x31453dab)            \
  V(_Float64x2List, [], Float64x2ArrayGetIndexed, Float64x2, 0x644a0be1)       \
  V(_Float64x2List, []=, Float64x2ArraySetIndexed, Dynamic, 0x6b836b0b)        \
  V(_TypedList, get:length, TypedDataLength, Smi, 0x2091c4d8)                  \
  V(_Float32x4, get:x, Float32x4ShuffleX, Double, 0x63d1a9fd)                  \
  V(_Float32x4, get:y, Float32x4ShuffleY, Double, 0x203523d9)                  \
  V(_Float32x4, get:z, Float32x4ShuffleZ, Double, 0x13190678)                  \
  V(_Float32x4, get:w, Float32x4ShuffleW, Double, 0x698a38de)                  \
  V(_Float32x4, *, Float32x4Mul, Float32x4, 0x5dec68b2)                        \
  V(_Float32x4, -, Float32x4Sub, Float32x4, 0x3ea14461)                        \
  V(_Float32x4, +, Float32x4Add, Float32x4, 0x7ffcf301)                        \

#define GRAPH_CORE_INTRINSICS_LIST(V)                                          \
  V(_List, get:length, ObjectArrayLength, Smi, 0x25952390)                     \
  V(_List, [], ObjectArrayGetIndexed, Dynamic, 0x653da02e)                     \
  V(_List, []=, ObjectArraySetIndexed, Dynamic, 0x16b3d2b0)                    \
  V(_List, _setIndexed, ObjectArraySetIndexedUnchecked, Dynamic, 0x50d64c75)   \
  V(_ImmutableList, get:length, ImmutableArrayLength, Smi, 0x25952390)         \
  V(_ImmutableList, [], ImmutableArrayGetIndexed, Dynamic, 0x653da02e)         \
  V(_GrowableList, get:length, GrowableArrayLength, Smi, 0x18dd86b4)           \
  V(_GrowableList, get:_capacity, GrowableArrayCapacity, Smi, 0x2e04be60)      \
  V(_GrowableList, _setData, GrowableArraySetData, Dynamic, 0x3dbea348)        \
  V(_GrowableList, _setLength, GrowableArraySetLength, Dynamic, 0x753e55da)    \
  V(_GrowableList, [], GrowableArrayGetIndexed, Dynamic, 0x446fe1f0)           \
  V(_GrowableList, []=, GrowableArraySetIndexed, Dynamic, 0x40a462ec)          \
  V(_GrowableList, _setIndexed, GrowableArraySetIndexedUnchecked, Dynamic,     \
    0x297083df)                                                                \
  V(_StringBase, get:length, StringBaseLength, Smi, 0x2a2d03d1)                \
  V(_OneByteString, codeUnitAt, OneByteStringCodeUnitAt, Smi, 0x55a0a1f3)      \
  V(_TwoByteString, codeUnitAt, TwoByteStringCodeUnitAt, Smi, 0x55a0a1f3)      \
  V(_ExternalOneByteString, codeUnitAt, ExternalOneByteStringCodeUnitAt,       \
    Smi, 0x55a0a1f3)                                                           \
  V(_ExternalTwoByteString, codeUnitAt, ExternalTwoByteStringCodeUnitAt,       \
    Smi, 0x55a0a1f3)                                                           \
  V(_Double, unary-, DoubleFlipSignBit, Double, 0x6db4674f)                    \
  V(_Double, truncateToDouble, DoubleTruncate, Double, 0x2f27e5d3)             \
  V(_Double, roundToDouble, DoubleRound, Double, 0x2f89c512)                   \
  V(_Double, floorToDouble, DoubleFloor, Double, 0x6aa87a5f)                   \
  V(_Double, ceilToDouble, DoubleCeil, Double, 0x1b045e9e)                     \
  V(_Double, _modulo, DoubleMod, Double, 0x5b8ceed7)


#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, Dynamic, 0x0b3066fd)           \
  V(::, _getDefaultTag, UserTag_defaultTag, Dynamic, 0x69f3f1ad)               \
  V(::, _getCurrentTag, Profiler_getCurrentTag, Dynamic, 0x05fa99d2)           \
  V(::, _isDartStreamEnabled, Timeline_isDartStreamEnabled, Dynamic,           \
    0x72f13f7a)                                                                \

#define ASYNC_LIB_INTRINSIC_LIST(V)                                            \
  V(::, _clearAsyncThreadStackTrace, ClearAsyncThreadStackTrace,               \
    Dynamic, 0x2edd4b25)                                                       \
  V(::, _setAsyncThreadStackTrace, SetAsyncThreadStackTrace,                   \
    Dynamic, 0x04f429a7)

#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 function that should always be inlined.
#define INLINE_WHITE_LIST(V)                                                   \
  V(Object, ==, ObjectEquals, 0x7b32a55a)                                      \
  V(_List, get:length, ObjectArrayLength, 0x25952390)                          \
  V(_ImmutableList, get:length, ImmutableArrayLength, 0x25952390)              \
  V(_TypedList, get:length, TypedDataLength, 0x2091c4d8)                       \
  V(_GrowableList, get:length, GrowableArrayLength, 0x18dd86b4)                \
  V(_GrowableList, get:_capacity, GrowableArrayCapacity, 0x2e04be60)           \
  V(_GrowableList, add, GrowableListAdd, 0x40b490b8)                           \
  V(_GrowableList, removeLast, GrowableListRemoveLast, 0x007855e5)             \
  V(_StringBase, get:length, StringBaseLength, 0x2a2d03d1)                     \
  V(ListIterator, moveNext, ListIteratorMoveNext, 0x2dca30ce)                  \
  V(_FixedSizeArrayIterator, moveNext, FixedListIteratorMoveNext, 0x324eb20b)  \
  V(_GrowableList, get:iterator, GrowableArrayIterator, 0x5bd2ef37)            \
  V(_GrowableList, forEach, GrowableArrayForEach, 0x74900bb8)                  \
  V(_List, ., ObjectArrayAllocate, 0x2121902f)                                 \
  V(ListMixin, get:isEmpty, ListMixinIsEmpty, 0x7be74d04)                      \
  V(_List, get:iterator, ObjectArrayIterator, 0x6c851c55)                      \
  V(_List, forEach, ObjectArrayForEach, 0x11406b13)                            \
  V(_List, _slice, ObjectArraySlice, 0x4c865d1d)                               \
  V(_ImmutableList, get:iterator, ImmutableArrayIterator, 0x6c851c55)          \
  V(_ImmutableList, forEach, ImmutableArrayForEach, 0x11406b13)                \
  V(_Uint8ArrayView, [], Uint8ArrayViewGetIndexed, 0x7d308247)                 \
  V(_Uint8ArrayView, []=, Uint8ArrayViewSetIndexed, 0x65ba546e)                \
  V(_Int8ArrayView, [], Int8ArrayViewGetIndexed, 0x7e5a8458)                   \
  V(_Int8ArrayView, []=, Int8ArrayViewSetIndexed, 0x62f615e4)                  \
  V(_ByteDataView, setInt8, ByteDataViewSetInt8, 0x6395293e)                   \
  V(_ByteDataView, setUint8, ByteDataViewSetUint8, 0x79979d1f)                 \
  V(_ByteDataView, setInt16, ByteDataViewSetInt16, 0x525ec534)                 \
  V(_ByteDataView, setUint16, ByteDataViewSetUint16, 0x48eda263)               \
  V(_ByteDataView, setInt32, ByteDataViewSetInt32, 0x523666fa)                 \
  V(_ByteDataView, setUint32, ByteDataViewSetUint32, 0x5a4683da)               \
  V(_ByteDataView, setInt64, ByteDataViewSetInt64, 0x4283a650)                 \
  V(_ByteDataView, setUint64, ByteDataViewSetUint64, 0x687a1892)               \
  V(_ByteDataView, setFloat32, ByteDataViewSetFloat32, 0x7d5784fd)             \
  V(_ByteDataView, setFloat64, ByteDataViewSetFloat64, 0x00101e3f)             \
  V(_ByteDataView, getInt8, ByteDataViewGetInt8, 0x68448b4d)                   \
  V(_ByteDataView, getUint8, ByteDataViewGetUint8, 0x5d68cbf2)                 \
  V(_ByteDataView, getInt16, ByteDataViewGetInt16, 0x691b5ead)                 \
  V(_ByteDataView, getUint16, ByteDataViewGetUint16, 0x78b744d8)               \
  V(_ByteDataView, getInt32, ByteDataViewGetInt32, 0x3a0f4efa)                 \
  V(_ByteDataView, getUint32, ByteDataViewGetUint32, 0x583261be)               \
  V(_ByteDataView, getInt64, ByteDataViewGetInt64, 0x77de471c)                 \
  V(_ByteDataView, getUint64, ByteDataViewGetUint64, 0x0ffadc4b)               \
  V(_ByteDataView, getFloat32, ByteDataViewGetFloat32, 0x6a205749)             \
  V(_ByteDataView, getFloat64, ByteDataViewGetFloat64, 0x69f58d27)             \
  V(::, exp, MathExp, 0x32ab9efa)                                              \
  V(::, log, MathLog, 0x1ee8f9fc)                                              \
  V(::, max, MathMax, 0x377e8889)                                              \
  V(::, min, MathMin, 0x32ebc57d)                                              \
  V(::, pow, MathPow, 0x79efc5a2)                                              \
  V(::, _classRangeCheck, ClassRangeCheck, 0x2ae76b84)                         \
  V(::, _classRangeCheckNegative, ClassRangeCheckNegated, 0x5acdfb75)          \
  V(::, _toInt, ConvertMaskedInt, 0x713908fd)                                  \
  V(::, _toInt8, ConvertIntToInt8, 0x7484a780)                                 \
  V(::, _toUint8, ConvertIntToUint8, 0x0a15b522)                               \
  V(::, _toInt16, ConvertIntToInt16, 0x0a83fcc6)                               \
  V(::, _toUint16, ConvertIntToUint16, 0x6087d1af)                             \
  V(::, _toInt32, ConvertIntToInt32, 0x62b451b9)                               \
  V(::, _toUint32, ConvertIntToUint32, 0x17a8e085)                             \
  V(::, _byteSwap16, ByteSwap16, 0x44f173be)                                   \
  V(::, _byteSwap32, ByteSwap32, 0x6219333b)                                   \
  V(::, _byteSwap64, ByteSwap64, 0x9abe57e0)                                   \
  V(Lists, copy, ListsCopy, 0x40e974f6)                                        \
  V(_HashVMBase, get:_index, LinkedHashMap_getIndex, 0x02477157)               \
  V(_HashVMBase, set:_index, LinkedHashMap_setIndex, 0x4fc8d5e0)               \
  V(_HashVMBase, get:_data, LinkedHashMap_getData, 0x2d7a70ac)                 \
  V(_HashVMBase, set:_data, LinkedHashMap_setData, 0x0ec032e8)                 \
  V(_HashVMBase, get:_usedData, LinkedHashMap_getUsedData, 0x088599ed)         \
  V(_HashVMBase, set:_usedData, LinkedHashMap_setUsedData, 0x5f42ca86)         \
  V(_HashVMBase, get:_hashMask, LinkedHashMap_getHashMask, 0x32f3b13b)         \
  V(_HashVMBase, set:_hashMask, LinkedHashMap_setHashMask, 0x7219c45b)         \
  V(_HashVMBase, get:_deletedKeys, LinkedHashMap_getDeletedKeys, 0x558481c2)   \
  V(_HashVMBase, set:_deletedKeys, LinkedHashMap_setDeletedKeys, 0x5aa9888d)   \

// A list of core function that should never be inlined.
#define INLINE_BLACK_LIST(V)                                                   \
  V(::, asin, MathAsin, 0x2ecc2fcd)                                            \
  V(::, acos, MathAcos, 0x08cf2212)                                            \
  V(::, atan, MathAtan, 0x1e2731d5)                                            \
  V(::, atan2, MathAtan2, 0x39f1fa41)                                          \
  V(::, cos, MathCos, 0x459bf5fe)                                              \
  V(::, sin, MathSin, 0x6b7bd98c)                                              \
  V(::, sqrt, MathSqrt, 0x70482cf3)                                            \
  V(::, tan, MathTan, 0x3bcd772a)                                              \
  V(_BigIntImpl, _lsh, Bigint_lsh, 0x5b6cfc8b)                                 \
  V(_BigIntImpl, _rsh, Bigint_rsh, 0x6ff14a49)                                 \
  V(_BigIntImpl, _absAdd, Bigint_absAdd, 0x5bf14238)                           \
  V(_BigIntImpl, _absSub, Bigint_absSub, 0x1de5bd32)                           \
  V(_BigIntImpl, _mulAdd, Bigint_mulAdd, 0x6f277966)                           \
  V(_BigIntImpl, _sqrAdd, Bigint_sqrAdd, 0x68e4c8ea)                           \
  V(_BigIntImpl, _estimateQuotientDigit, Bigint_estimateQuotientDigit,         \
    0x35456d91)                                                                \
  V(_BigIntMontgomeryReduction, _mulMod, Montgomery_mulMod, 0x0f7b0375)        \
  V(_Double, >, Double_greaterThan, 0x4f1375a3)                                \
  V(_Double, >=, Double_greaterEqualThan, 0x4260c184)                          \
  V(_Double, <, Double_lessThan, 0x365d1eba)                                   \
  V(_Double, <=, Double_lessEqualThan, 0x74b5eb64)                             \
  V(_Double, ==, Double_equal, 0x613492fc)                                     \
  V(_Double, +, Double_add, 0x53994370)                                        \
  V(_Double, -, Double_sub, 0x3b69d466)                                        \
  V(_Double, *, Double_mul, 0x2bb9bd5d)                                        \
  V(_Double, /, Double_div, 0x483eee28)                                        \
  V(_IntegerImplementation, +, Integer_add, 0x43d53af7)                        \
  V(_IntegerImplementation, -, Integer_sub, 0x2dc22e03)                        \
  V(_IntegerImplementation, *, Integer_mul, 0x4e7a1c24)                        \
  V(_IntegerImplementation, ~/, Integer_truncDivide, 0x4efb2d39)               \
  V(_IntegerImplementation, unary-, Integer_negate, 0x428bf6fa)                \
  V(_IntegerImplementation, &, Integer_bitAnd, 0x5ab35f30)                     \
  V(_IntegerImplementation, |, Integer_bitOr, 0x267fa107)                      \
  V(_IntegerImplementation, ^, Integer_bitXor, 0x0c7b0230)                     \
  V(_IntegerImplementation, >, Integer_greaterThan, 0x6599a6e1)                \
  V(_IntegerImplementation, ==, Integer_equal, 0x58abc487)                     \
  V(_IntegerImplementation, <, Integer_lessThan, 0x365d1eba)                   \
  V(_IntegerImplementation, <=, Integer_lessEqualThan, 0x74b5eb64)             \
  V(_IntegerImplementation, >=, Integer_greaterEqualThan, 0x4260c184)          \
  V(_IntegerImplementation, <<, Integer_shl, 0x371c45fa)                       \
  V(_IntegerImplementation, >>, Integer_sar, 0x2b630578)                       \

// A list of core functions that internally dispatch based on received id.
#define POLYMORPHIC_TARGET_LIST(V)                                             \
  V(_StringBase, [], StringBaseCharAt, 0x7cbb8603)                             \
  V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 0x7041895a)                    \
  V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 0x336fa3ea)                  \
  V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 0x231bbe2e)                  \
  V(_TypedList, _getUint16, ByteArrayBaseGetUint16, 0x0371785f)                \
  V(_TypedList, _getInt32, ByteArrayBaseGetInt32, 0x65ab3a20)                  \
  V(_TypedList, _getUint32, ByteArrayBaseGetUint32, 0x0cb0fcf6)                \
  V(_TypedList, _getInt64, ByteArrayBaseGetInt64, 0x7db75d78)                  \
  V(_TypedList, _getUint64, ByteArrayBaseGetUint64, 0x1487cfc6)                \
  V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 0x6674ea6f)              \
  V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 0x236c6e7a)              \
  V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 0x5c367ffb)          \
  V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 0x772d1c0f)              \
  V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 0x12bae36a)                    \
  V(_TypedList, _setUint8, ByteArrayBaseSetInt8, 0x15821cc9)                   \
  V(_TypedList, _setInt16, ByteArrayBaseSetInt16, 0x1f8237fa)                  \
  V(_TypedList, _setUint16, ByteArrayBaseSetInt16, 0x181e5d16)                 \
  V(_TypedList, _setInt32, ByteArrayBaseSetInt32, 0x7ddb9f87)                  \
  V(_TypedList, _setUint32, ByteArrayBaseSetUint32, 0x74094f8d)                \
  V(_TypedList, _setInt64, ByteArrayBaseSetInt64, 0x4741396e)                  \
  V(_TypedList, _setUint64, ByteArrayBaseSetUint64, 0x3b398ae4)                \
  V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 0x03db087b)              \
  V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 0x38a80b0d)              \
  V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 0x40052c4e)          \
  V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 0x07b89f54)              \
  V(Object, get:runtimeType, ObjectRuntimeType, 0x00e8ab29)

// clang-format on

// Forward declarations.
class Function;
class Library;
class RawFunction;
class RawGrowableObjectArray;
class String;
class Zone;

// Class that recognizes the name and owner of a function and returns the
// corresponding enum. See RECOGNIZED_LIST above for list of recognizable
// functions.
class MethodRecognizer : public AllStatic {
 public:
  enum Kind {
    kUnknown,
#define DEFINE_ENUM_LIST(class_name, function_name, enum_name, type, fp)       \
  k##enum_name,
    RECOGNIZED_LIST(DEFINE_ENUM_LIST)
#undef DEFINE_ENUM_LIST
        kNumRecognizedMethods
  };

  static Kind RecognizeKind(const Function& function);
  static bool AlwaysInline(const Function& function);
  static bool PolymorphicTarget(const Function& function);
  static intptr_t NumArgsCheckedForStaticCall(const Function& function);
  static intptr_t ResultCid(const Function& function);
  static intptr_t MethodKindToReceiverCid(Kind kind);
  static const char* KindToCString(Kind kind);

#if !defined(DART_PRECOMPILED_RUNTIME)
  static void InitializeState();
  static RawGrowableObjectArray* QueryRecognizedMethods(Zone* zone);

 private:
  static void Libraries(GrowableArray<Library*>* libs);
#endif  // !defined(DART_PRECOMPILED_RUNTIME)
};

// Recognizes token corresponding to a method name.
class MethodTokenRecognizer : public AllStatic {
 public:
  static Token::Kind RecognizeTokenKind(const String& name);
};

#if !defined(DART_PRECOMPILED_RUNTIME)
#define CHECK_FINGERPRINT2(f, p0, p1, fp)                                      \
  ASSERT(f.CheckSourceFingerprint(#p0 ", " #p1, fp))

#define CHECK_FINGERPRINT3(f, p0, p1, p2, fp)                                  \
  ASSERT(f.CheckSourceFingerprint(#p0 ", " #p1 ", " #p2, fp))
#endif  // !defined(DART_PRECOMPILED_RUNTIME)

// clang-format off
// 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, 0x2121902f)                             \
  V(_GrowableListWithData, _GrowableList, .withData, kGrowableObjectArrayCid,  \
    0x28b2138e)                                                                \
  V(_GrowableListFactory, _GrowableList, ., kGrowableObjectArrayCid,           \
    0x3eed680b)                                                                \
  V(_Int8ArrayFactory, Int8List, ., kTypedDataInt8ArrayCid, 0x7e39a3a1)        \
  V(_Uint8ArrayFactory, Uint8List, ., kTypedDataUint8ArrayCid, 0x3a79adf7)     \
  V(_Uint8ClampedArrayFactory, Uint8ClampedList, .,                            \
    kTypedDataUint8ClampedArrayCid, 0x67f38395)                                \
  V(_Int16ArrayFactory, Int16List, ., kTypedDataInt16ArrayCid, 0x6477bda8)     \
  V(_Uint16ArrayFactory, Uint16List, ., kTypedDataUint16ArrayCid, 0x5707c5a2)  \
  V(_Int32ArrayFactory, Int32List, ., kTypedDataInt32ArrayCid, 0x2b96ec0e)     \
  V(_Uint32ArrayFactory, Uint32List, ., kTypedDataUint32ArrayCid, 0x0c1c0d62)  \
  V(_Int64ArrayFactory, Int64List, ., kTypedDataInt64ArrayCid, 0x279ab485)     \
  V(_Uint64ArrayFactory, Uint64List, ., kTypedDataUint64ArrayCid, 0x7bcb89c2)  \
  V(_Float64ArrayFactory, Float64List, ., kTypedDataFloat64ArrayCid,           \
    0x1fde3eaf)                                                                \
  V(_Float32ArrayFactory, Float32List, ., kTypedDataFloat32ArrayCid,           \
    0x43506c09)                                                                \
  V(_Float32x4ArrayFactory, Float32x4List, ., kTypedDataFloat32x4ArrayCid,     \
    0x4a4030d6)

// clang-format on

// Class that recognizes factories and returns corresponding result cid.
class FactoryRecognizer : public AllStatic {
 public:
  // Return kDynamicCid if factory is not recognized.
  static intptr_t ResultCid(const Function& factory);
};

}  // namespace dart

#endif  // RUNTIME_VM_COMPILER_METHOD_RECOGNIZER_H_
