OLD | NEW |
---|---|
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_METHOD_RECOGNIZER_H_ | 5 #ifndef VM_METHOD_RECOGNIZER_H_ |
6 #define VM_METHOD_RECOGNIZER_H_ | 6 #define VM_METHOD_RECOGNIZER_H_ |
7 | 7 |
8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
9 | 9 |
10 namespace dart { | 10 namespace dart { |
11 | 11 |
12 // (class-name, function-name, recognized enum, fingerprint). | 12 // (class-name, function-name, recognized enum, fingerprint). |
13 // When adding a new function add a 0 as fingerprint, build and run to get the | 13 // When adding a new function add a 0 as fingerprint, build and run to get the |
14 // correct fingerprint from the mismatch error. | 14 // correct fingerprint from the mismatch error. |
15 #define OTHER_RECOGNIZED_LIST(V) \ | 15 #define OTHER_RECOGNIZED_LIST(V) \ |
16 V(::, identical, ObjectIdentical, 496869842) \ | 16 V(::, identical, ObjectIdentical, 496869842) \ |
17 V(ClassID, getID, ClassIDgetID, 1322490980) \ | 17 V(ClassID, getID, ClassIDgetID, 1662520165) \ |
18 V(Object, Object., ObjectConstructor, 1066669787) \ | 18 V(Object, Object., ObjectConstructor, 1066669787) \ |
19 V(_List, ., ObjectArrayAllocate, 1595327584) \ | 19 V(_List, ., ObjectArrayAllocate, 335347617) \ |
20 V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 1541411498) \ | 20 V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 1541411498) \ |
21 V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 1032404349) \ | 21 V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 1032404349) \ |
22 V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 381073990) \ | 22 V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 381073990) \ |
23 V(_TypedList, _getUint16, ByteArrayBaseGetUint16, 1142676276) \ | 23 V(_TypedList, _getUint16, ByteArrayBaseGetUint16, 1142676276) \ |
24 V(_TypedList, _getInt32, ByteArrayBaseGetInt32, 330269934) \ | 24 V(_TypedList, _getInt32, ByteArrayBaseGetInt32, 330269934) \ |
25 V(_TypedList, _getUint32, ByteArrayBaseGetUint32, 59490554) \ | 25 V(_TypedList, _getUint32, ByteArrayBaseGetUint32, 59490554) \ |
26 V(_TypedList, _getInt64, ByteArrayBaseGetInt64, 322272622) \ | 26 V(_TypedList, _getInt64, ByteArrayBaseGetInt64, 322272622) \ |
27 V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 393003933) \ | 27 V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 393003933) \ |
28 V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 1792407200) \ | 28 V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 1792407200) \ |
29 V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 1338379857) \ | 29 V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 1338379857) \ |
30 V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 1469917805) \ | 30 V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 1469917805) \ |
31 V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 433348464) \ | 31 V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 783880753) \ |
Florian Schneider
2014/11/19 12:42:29
dbc: What's wrong with our fingerprint computation
hausner
2014/11/19 16:47:00
It's the added keyword 'enum' that caused the toke
| |
32 V(_TypedList, _setUint8, ByteArrayBaseSetUint8, 149406583) \ | 32 V(_TypedList, _setUint8, ByteArrayBaseSetUint8, 499938872) \ |
33 V(_TypedList, _setInt16, ByteArrayBaseSetInt16, 805477162) \ | 33 V(_TypedList, _setInt16, ByteArrayBaseSetInt16, 1156009451) \ |
34 V(_TypedList, _setUint16, ByteArrayBaseSetUint16, 888580944) \ | 34 V(_TypedList, _setUint16, ByteArrayBaseSetUint16, 1239113233) \ |
35 V(_TypedList, _setInt32, ByteArrayBaseSetInt32, 1708248181) \ | 35 V(_TypedList, _setInt32, ByteArrayBaseSetInt32, 2058780470) \ |
36 V(_TypedList, _setUint32, ByteArrayBaseSetUint32, 1863152792) \ | 36 V(_TypedList, _setUint32, ByteArrayBaseSetUint32, 66201433) \ |
37 V(_TypedList, _setInt64, ByteArrayBaseSetInt64, 1473080053) \ | 37 V(_TypedList, _setInt64, ByteArrayBaseSetInt64, 1823612342) \ |
38 V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 1148703855) \ | 38 V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 1499236144) \ |
39 V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 972883980) \ | 39 V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 1323416269) \ |
40 V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 950522310) \ | 40 V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 1301054599) \ |
41 V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 1301138078) \ | 41 V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 1651670367) \ |
42 V(_StringBase, _interpolate, StringBaseInterpolate, 1540062866) \ | 42 V(_StringBase, _interpolate, StringBaseInterpolate, 1503544722) \ |
43 V(_IntegerImplementation, toDouble, IntegerToDouble, 1084977108) \ | 43 V(_IntegerImplementation, toDouble, IntegerToDouble, 1020333941) \ |
44 V(_IntegerImplementation, _leftShiftWithMask32, IntegerLeftShiftWithMask32, \ | 44 V(_IntegerImplementation, _leftShiftWithMask32, IntegerLeftShiftWithMask32, \ |
45 597111055) \ | 45 597111055) \ |
46 V(_Double, truncateToDouble, DoubleTruncate, 2117801967) \ | 46 V(_Double, truncateToDouble, DoubleTruncate, 2117801967) \ |
47 V(_Double, roundToDouble, DoubleRound, 2124216110) \ | 47 V(_Double, roundToDouble, DoubleRound, 2124216110) \ |
48 V(_Double, floorToDouble, DoubleFloor, 968600699) \ | 48 V(_Double, floorToDouble, DoubleFloor, 968600699) \ |
49 V(_Double, ceilToDouble, DoubleCeil, 1779929274) \ | 49 V(_Double, ceilToDouble, DoubleCeil, 1779929274) \ |
50 V(_Double, _modulo, DoubleMod, 1473971007) \ | 50 V(_Double, _modulo, DoubleMod, 1473971007) \ |
51 V(_Double, _add, DoubleAdd, 1570715125) \ | 51 V(_Double, _add, DoubleAdd, 1570715125) \ |
52 V(_Double, _sub, DoubleSub, 1466395310) \ | 52 V(_Double, _sub, DoubleSub, 1466395310) \ |
53 V(_Double, _mul, DoubleMul, 546441193) \ | 53 V(_Double, _mul, DoubleMul, 546441193) \ |
54 V(_Double, _div, DoubleDiv, 1201505037) \ | 54 V(_Double, _div, DoubleDiv, 1201505037) \ |
55 V(::, sin, MathSin, 1741396147) \ | 55 V(::, sin, MathSin, 1741396147) \ |
56 V(::, cos, MathCos, 1951197905) \ | 56 V(::, cos, MathCos, 1951197905) \ |
57 V(::, min, MathMin, 1022567780) \ | 57 V(::, min, MathMin, 214919172) \ |
58 V(::, max, MathMax, 612058870) \ | 58 V(::, max, MathMax, 989552054) \ |
59 V(::, _doublePow, MathDoublePow, 823139975) \ | 59 V(::, _doublePow, MathDoublePow, 275712742) \ |
60 V(Float32x4, Float32x4., Float32x4Constructor, 1755873079) \ | 60 V(Float32x4, Float32x4., Float32x4Constructor, 137170840) \ |
61 V(Float32x4, Float32x4.zero, Float32x4Zero, 1494069379) \ | 61 V(Float32x4, Float32x4.zero, Float32x4Zero, 1336967908) \ |
62 V(Float32x4, Float32x4.splat, Float32x4Splat, 916211464) \ | 62 V(Float32x4, Float32x4.splat, Float32x4Splat, 2001978631) \ |
63 V(Float32x4, Float32x4.fromInt32x4Bits, Float32x4FromInt32x4Bits, \ | 63 V(Float32x4, Float32x4.fromInt32x4Bits, Float32x4FromInt32x4Bits, \ |
64 640076216) \ | 64 1725843383) \ |
65 V(Float32x4, Float32x4.fromFloat64x2, Float32x4FromFloat64x2, 1279591344) \ | 65 V(Float32x4, Float32x4.fromFloat64x2, Float32x4FromFloat64x2, 217874863) \ |
66 V(_Float32x4, shuffle, Float32x4Shuffle, 1636488139) \ | 66 V(_Float32x4, shuffle, Float32x4Shuffle, 1636488139) \ |
67 V(_Float32x4, shuffleMix, Float32x4ShuffleMix, 597555927) \ | 67 V(_Float32x4, shuffleMix, Float32x4ShuffleMix, 597555927) \ |
68 V(_Float32x4, get:x, Float32x4ShuffleX, 384850558) \ | 68 V(_Float32x4, get:x, Float32x4ShuffleX, 384880349) \ |
69 V(_Float32x4, get:y, Float32x4ShuffleY, 1398002778) \ | 69 V(_Float32x4, get:y, Float32x4ShuffleY, 1398032569) \ |
70 V(_Float32x4, get:z, Float32x4ShuffleZ, 1178056441) \ | 70 V(_Float32x4, get:z, Float32x4ShuffleZ, 1178086232) \ |
71 V(_Float32x4, get:w, Float32x4ShuffleW, 480831839) \ | 71 V(_Float32x4, get:w, Float32x4ShuffleW, 480861630) \ |
72 V(_Float32x4, get:signMask, Float32x4GetSignMask, 630761511) \ | 72 V(_Float32x4, get:signMask, Float32x4GetSignMask, 630791302) \ |
73 V(_Float32x4, _cmpequal, Float32x4Equal, 571062952) \ | 73 V(_Float32x4, _cmpequal, Float32x4Equal, 571062952) \ |
74 V(_Float32x4, _cmpgt, Float32x4GreaterThan, 1613543295) \ | 74 V(_Float32x4, _cmpgt, Float32x4GreaterThan, 1613543295) \ |
75 V(_Float32x4, _cmpgte, Float32x4GreaterThanOrEqual, 589402909) \ | 75 V(_Float32x4, _cmpgte, Float32x4GreaterThanOrEqual, 589402909) \ |
76 V(_Float32x4, _cmplt, Float32x4LessThan, 1502332656) \ | 76 V(_Float32x4, _cmplt, Float32x4LessThan, 1502332656) \ |
77 V(_Float32x4, _cmplte, Float32x4LessThanOrEqual, 1069848031) \ | 77 V(_Float32x4, _cmplte, Float32x4LessThanOrEqual, 1069848031) \ |
78 V(_Float32x4, _cmpnequal, Float32x4NotEqual, 1334574472) \ | 78 V(_Float32x4, _cmpnequal, Float32x4NotEqual, 1334574472) \ |
79 V(_Float32x4, _min, Float32x4Min, 2036349551) \ | 79 V(_Float32x4, _min, Float32x4Min, 2036349551) \ |
80 V(_Float32x4, _max, Float32x4Max, 571688115) \ | 80 V(_Float32x4, _max, Float32x4Max, 571688115) \ |
81 V(_Float32x4, _scale, Float32x4Scale, 1311297761) \ | 81 V(_Float32x4, _scale, Float32x4Scale, 1311297761) \ |
82 V(_Float32x4, _sqrt, Float32x4Sqrt, 1709659395) \ | 82 V(_Float32x4, _sqrt, Float32x4Sqrt, 1709659395) \ |
83 V(_Float32x4, _reciprocalSqrt, Float32x4ReciprocalSqrt, 2043980962) \ | 83 V(_Float32x4, _reciprocalSqrt, Float32x4ReciprocalSqrt, 2043980962) \ |
84 V(_Float32x4, _reciprocal, Float32x4Reciprocal, 739405237) \ | 84 V(_Float32x4, _reciprocal, Float32x4Reciprocal, 739405237) \ |
85 V(_Float32x4, _negate, Float32x4Negate, 445839777) \ | 85 V(_Float32x4, _negate, Float32x4Negate, 445839777) \ |
86 V(_Float32x4, _abs, Float32x4Absolute, 1152777608) \ | 86 V(_Float32x4, _abs, Float32x4Absolute, 1152777608) \ |
87 V(_Float32x4, _clamp, Float32x4Clamp, 353415442) \ | 87 V(_Float32x4, _clamp, Float32x4Clamp, 353415442) \ |
88 V(_Float32x4, withX, Float32x4WithX, 1446546696) \ | 88 V(_Float32x4, withX, Float32x4WithX, 1446546696) \ |
89 V(_Float32x4, withY, Float32x4WithY, 309844761) \ | 89 V(_Float32x4, withY, Float32x4WithY, 309844761) \ |
90 V(_Float32x4, withZ, Float32x4WithZ, 971921505) \ | 90 V(_Float32x4, withZ, Float32x4WithZ, 971921505) \ |
91 V(_Float32x4, withW, Float32x4WithW, 1759699726) \ | 91 V(_Float32x4, withW, Float32x4WithW, 1759699726) \ |
92 V(Float64x2, Float64x2., Float64x2Constructor, 1399581872) \ | 92 V(Float64x2, Float64x2., Float64x2Constructor, 490465873) \ |
93 V(Float64x2, Float64x2.zero, Float64x2Zero, 1836770587) \ | 93 V(Float64x2, Float64x2.zero, Float64x2Zero, 1679669116) \ |
94 V(Float64x2, Float64x2.splat, Float64x2Splat, 939291159) \ | 94 V(Float64x2, Float64x2.splat, Float64x2Splat, 2025058326) \ |
95 V(Float64x2, Float64x2.fromFloat32x4, Float64x2FromFloat32x4, 1499726406) \ | 95 V(Float64x2, Float64x2.fromFloat32x4, Float64x2FromFloat32x4, 438009925) \ |
96 V(_Float64x2, get:x, Float64x2GetX, 261044094) \ | 96 V(_Float64x2, get:x, Float64x2GetX, 261073885) \ |
97 V(_Float64x2, get:y, Float64x2GetY, 1942257886) \ | 97 V(_Float64x2, get:y, Float64x2GetY, 1942287677) \ |
98 V(_Float64x2, _negate, Float64x2Negate, 2133212774) \ | 98 V(_Float64x2, _negate, Float64x2Negate, 2133212774) \ |
99 V(_Float64x2, abs, Float64x2Abs, 1224776282) \ | 99 V(_Float64x2, abs, Float64x2Abs, 1224776282) \ |
100 V(_Float64x2, sqrt, Float64x2Sqrt, 1037569520) \ | 100 V(_Float64x2, sqrt, Float64x2Sqrt, 1037569520) \ |
101 V(_Float64x2, get:signMask, Float64x2GetSignMask, 252936800) \ | 101 V(_Float64x2, get:signMask, Float64x2GetSignMask, 252966591) \ |
102 V(_Float64x2, scale, Float64x2Scale, 1199438744) \ | 102 V(_Float64x2, scale, Float64x2Scale, 1199438744) \ |
103 V(_Float64x2, withX, Float64x2WithX, 1042725932) \ | 103 V(_Float64x2, withX, Float64x2WithX, 1042725932) \ |
104 V(_Float64x2, withY, Float64x2WithY, 1496958947) \ | 104 V(_Float64x2, withY, Float64x2WithY, 1496958947) \ |
105 V(_Float64x2, min, Float64x2Min, 485240583) \ | 105 V(_Float64x2, min, Float64x2Min, 485240583) \ |
106 V(_Float64x2, max, Float64x2Max, 2146148204) \ | 106 V(_Float64x2, max, Float64x2Max, 2146148204) \ |
107 V(Int32x4, Int32x4., Int32x4Constructor, 665986284) \ | 107 V(Int32x4, Int32x4., Int32x4Constructor, 1194767693) \ |
108 V(Int32x4, Int32x4.bool, Int32x4BoolConstructor, 87082660) \ | 108 V(Int32x4, Int32x4.bool, Int32x4BoolConstructor, 1052882565) \ |
109 V(Int32x4, Int32x4.fromFloat32x4Bits, Int32x4FromFloat32x4Bits, \ | 109 V(Int32x4, Int32x4.fromFloat32x4Bits, Int32x4FromFloat32x4Bits, \ |
110 372517418) \ | 110 1458284585) \ |
111 V(_Int32x4, get:flagX, Int32x4GetFlagX, 1077555238) \ | 111 V(_Int32x4, get:flagX, Int32x4GetFlagX, 1077585029) \ |
112 V(_Int32x4, get:flagY, Int32x4GetFlagY, 779160284) \ | 112 V(_Int32x4, get:flagY, Int32x4GetFlagY, 779190075) \ |
113 V(_Int32x4, get:flagZ, Int32x4GetFlagZ, 181912283) \ | 113 V(_Int32x4, get:flagZ, Int32x4GetFlagZ, 181942074) \ |
114 V(_Int32x4, get:flagW, Int32x4GetFlagW, 977675534) \ | 114 V(_Int32x4, get:flagW, Int32x4GetFlagW, 977705325) \ |
115 V(_Int32x4, get:signMask, Int32x4GetSignMask, 1929271914) \ | 115 V(_Int32x4, get:signMask, Int32x4GetSignMask, 1929301705) \ |
116 V(_Int32x4, shuffle, Int32x4Shuffle, 1870018702) \ | 116 V(_Int32x4, shuffle, Int32x4Shuffle, 1870018702) \ |
117 V(_Int32x4, shuffleMix, Int32x4ShuffleMix, 967644870) \ | 117 V(_Int32x4, shuffleMix, Int32x4ShuffleMix, 967644870) \ |
118 V(_Int32x4, select, Int32x4Select, 1696037681) \ | 118 V(_Int32x4, select, Int32x4Select, 1291364368) \ |
119 V(_Int32x4, withFlagX, Int32x4WithFlagX, 467852789) \ | 119 V(_Int32x4, withFlagX, Int32x4WithFlagX, 467852789) \ |
120 V(_Int32x4, withFlagY, Int32x4WithFlagY, 1903359978) \ | 120 V(_Int32x4, withFlagY, Int32x4WithFlagY, 1903359978) \ |
121 V(_Int32x4, withFlagZ, Int32x4WithFlagZ, 862460960) \ | 121 V(_Int32x4, withFlagZ, Int32x4WithFlagZ, 862460960) \ |
122 V(_Int32x4, withFlagW, Int32x4WithFlagW, 1095242907) \ | 122 V(_Int32x4, withFlagW, Int32x4WithFlagW, 1095242907) \ |
123 V(_Float32Array, [], Float32ArrayGetIndexed, 856653338) \ | 123 V(_Float32Array, [], Float32ArrayGetIndexed, 1092936601) \ |
124 V(_Float32Array, []=, Float32ArraySetIndexed, 2086166464) \ | 124 V(_Float32Array, []=, Float32ArraySetIndexed, 102284991) \ |
125 V(_Int8Array, [], Int8ArrayGetIndexed, 321230586) \ | 125 V(_Int8Array, [], Int8ArrayGetIndexed, 557513849) \ |
126 V(_Int8Array, []=, Int8ArraySetIndexed, 2050598685) \ | 126 V(_Int8Array, []=, Int8ArraySetIndexed, 1135113150) \ |
127 V(_Uint8ClampedArray, [], Uint8ClampedArrayGetIndexed, 430672063) \ | 127 V(_Uint8ClampedArray, [], Uint8ClampedArrayGetIndexed, 666955326) \ |
128 V(_Uint8ClampedArray, []=, Uint8ClampedArraySetIndexed, 821294340) \ | 128 V(_Uint8ClampedArray, []=, Uint8ClampedArraySetIndexed, 2053292453) \ |
129 V(_ExternalUint8ClampedArray, [], ExternalUint8ClampedArrayGetIndexed, \ | 129 V(_ExternalUint8ClampedArray, [], ExternalUint8ClampedArrayGetIndexed, \ |
130 1346536303) \ | 130 1582819566) \ |
131 V(_ExternalUint8ClampedArray, []=, ExternalUint8ClampedArraySetIndexed, \ | 131 V(_ExternalUint8ClampedArray, []=, ExternalUint8ClampedArraySetIndexed, \ |
132 1794849214) \ | 132 879363679) \ |
133 V(_Int16Array, [], Int16ArrayGetIndexed, 74127855) \ | 133 V(_Int16Array, [], Int16ArrayGetIndexed, 310411118) \ |
134 V(_Int16Array, []=, Int16ArraySetIndexed, 1610252345) \ | 134 V(_Int16Array, []=, Int16ArraySetIndexed, 694766810) \ |
135 V(_Uint16Array, [], Uint16ArrayGetIndexed, 470411953) \ | 135 V(_Uint16Array, [], Uint16ArrayGetIndexed, 706695216) \ |
136 V(_Uint16Array, []=, Uint16ArraySetIndexed, 1648929040) \ | 136 V(_Uint16Array, []=, Uint16ArraySetIndexed, 733443505) \ |
137 V(_Int32Array, [], Int32ArrayGetIndexed, 203101370) \ | 137 V(_Int32Array, [], Int32ArrayGetIndexed, 439384633) \ |
138 V(_Int32Array, []=, Int32ArraySetIndexed, 338968571) \ | 138 V(_Int32Array, []=, Int32ArraySetIndexed, 1570966684) \ |
139 V(_Uint32Array, [], Uint32ArrayGetIndexed, 1640672852) \ | 139 V(_Uint32Array, [], Uint32ArrayGetIndexed, 1876956115) \ |
140 V(_Uint32Array, []=, Uint32ArraySetIndexed, 1472976717) \ | 140 V(_Uint32Array, []=, Uint32ArraySetIndexed, 557491182) \ |
141 V(_Int64Array, [], Int64ArrayGetIndexed, 206855782) \ | 141 V(_Int64Array, [], Int64ArrayGetIndexed, 443139045) \ |
142 V(_Int64Array, []=, Int64ArraySetIndexed, 1258282177) \ | 142 V(_Int64Array, []=, Int64ArraySetIndexed, 342796642) \ |
143 V(_Float32x4Array, [], Float32x4ArrayGetIndexed, 1466627059) \ | 143 V(_Float32x4Array, [], Float32x4ArrayGetIndexed, 1702910322) \ |
144 V(_Float32x4Array, []=, Float32x4ArraySetIndexed, 2141660076) \ | 144 V(_Float32x4Array, []=, Float32x4ArraySetIndexed, 157778603) \ |
145 V(_Int32x4Array, [], Int32x4ArrayGetIndexed, 818792056) \ | 145 V(_Int32x4Array, [], Int32x4ArrayGetIndexed, 1055075319) \ |
146 V(_Int32x4Array, []=, Int32x4ArraySetIndexed, 1021474038) \ | 146 V(_Int32x4Array, []=, Int32x4ArraySetIndexed, 1185076213) \ |
147 V(_Float64x2Array, [], Float64x2ArrayGetIndexed, 288114492) \ | 147 V(_Float64x2Array, [], Float64x2ArrayGetIndexed, 524397755) \ |
148 V(_Float64x2Array, []=, Float64x2ArraySetIndexed, 941746736) \ | 148 V(_Float64x2Array, []=, Float64x2ArraySetIndexed, 1105348911) \ |
149 V(_Bigint, get:_neg, Bigint_getNeg, 1151514099) \ | 149 V(_Bigint, get:_neg, Bigint_getNeg, 1151543890) \ |
150 V(_Bigint, get:_used, Bigint_getUsed, 1308529543) \ | 150 V(_Bigint, get:_used, Bigint_getUsed, 1308559334) \ |
151 V(_Bigint, get:_digits, Bigint_getDigits, 1408062672) \ | 151 V(_Bigint, get:_digits, Bigint_getDigits, 1408092463) \ |
152 | 152 |
153 // List of intrinsics: | 153 // List of intrinsics: |
154 // (class-name, function-name, intrinsification method, fingerprint). | 154 // (class-name, function-name, intrinsification method, fingerprint). |
155 #define CORE_LIB_INTRINSIC_LIST(V) \ | 155 #define CORE_LIB_INTRINSIC_LIST(V) \ |
156 V(_Smi, ~, Smi_bitNegate, 105519892) \ | 156 V(_Smi, ~, Smi_bitNegate, 134149043) \ |
157 V(_Smi, get:bitLength, Smi_bitLength, 869956497) \ | 157 V(_Smi, get:bitLength, Smi_bitLength, 869986288) \ |
158 V(_Bigint, set:_neg, Bigint_setNeg, 920204960) \ | 158 V(_Bigint, set:_neg, Bigint_setNeg, 855560832) \ |
159 V(_Bigint, set:_used, Bigint_setUsed, 1857576743) \ | 159 V(_Bigint, set:_used, Bigint_setUsed, 1792932615) \ |
160 V(_Bigint, _set_digits, Bigint_setDigits, 582835804) \ | 160 V(_Bigint, _set_digits, Bigint_setDigits, 178162491) \ |
161 V(_Bigint, _absAdd, Bigint_absAdd, 233965936) \ | 161 V(_Bigint, _absAdd, Bigint_absAdd, 97148049) \ |
162 V(_Bigint, _absSub, Bigint_absSub, 1401148862) \ | 162 V(_Bigint, _absSub, Bigint_absSub, 159012285) \ |
163 V(_Bigint, _mulAdd, Bigint_mulAdd, 1283124653) \ | 163 V(_Bigint, _mulAdd, Bigint_mulAdd, 101252203) \ |
164 V(_Bigint, _sqrAdd, Bigint_sqrAdd, 1665155090) \ | 164 V(_Bigint, _sqrAdd, Bigint_sqrAdd, 1684445648) \ |
165 V(_Bigint, _estQuotientDigit, Bigint_estQuotientDigit, 643982609) \ | 165 V(_Bigint, _estQuotientDigit, Bigint_estQuotientDigit, 649845040) \ |
166 V(_Montgomery, _mulMod, Montgomery_mulMod, 149127024) \ | 166 V(_Montgomery, _mulMod, Montgomery_mulMod, 1551846228) \ |
167 V(_Double, >, Double_greaterThan, 381325711) \ | 167 V(_Double, >, Double_greaterThan, 1538121903) \ |
168 V(_Double, >=, Double_greaterEqualThan, 1409267140) \ | 168 V(_Double, >=, Double_greaterEqualThan, 1058495718) \ |
169 V(_Double, <, Double_lessThan, 2080387973) \ | 169 V(_Double, <, Double_lessThan, 62910596) \ |
170 V(_Double, <=, Double_lessEqualThan, 106225572) \ | 170 V(_Double, <=, Double_lessEqualThan, 1902937798) \ |
171 V(_Double, ==, Double_equal, 2093918133) \ | 171 V(_Double, ==, Double_equal, 793601203) \ |
172 V(_Double, +, Double_add, 1646350451) \ | 172 V(_Double, +, Double_add, 655662995) \ |
173 V(_Double, -, Double_sub, 1477459276) \ | 173 V(_Double, -, Double_sub, 486771820) \ |
174 V(_Double, *, Double_mul, 1334580777) \ | 174 V(_Double, *, Double_mul, 343893321) \ |
175 V(_Double, /, Double_div, 1938037155) \ | 175 V(_Double, /, Double_div, 947349699) \ |
176 V(_Double, get:isNaN, Double_getIsNaN, 843050033) \ | 176 V(_Double, get:isNaN, Double_getIsNaN, 843079824) \ |
177 V(_Double, get:isNegative, Double_getIsNegative, 1637875580) \ | 177 V(_Double, get:isNegative, Double_getIsNegative, 1637905371) \ |
178 V(_Double, _mulFromInteger, Double_mulFromInteger, 1594796483) \ | 178 V(_Double, _mulFromInteger, Double_mulFromInteger, 1748815298) \ |
179 V(_Double, .fromInteger, DoubleFromInteger, 999771940) \ | 179 V(_Double, .fromInteger, DoubleFromInteger, 803258435) \ |
180 V(_List, []=, ObjectArraySetIndexed, 1288827575) \ | 180 V(_List, []=, ObjectArraySetIndexed, 1768442583) \ |
181 V(_GrowableList, .withData, GrowableArray_Allocate, 732923072) \ | 181 V(_GrowableList, .withData, GrowableArray_Allocate, 536409567) \ |
182 V(_GrowableList, [], GrowableArrayGetIndexed, 919108233) \ | 182 V(_GrowableList, [], GrowableArrayGetIndexed, 514434920) \ |
183 V(_GrowableList, []=, GrowableArraySetIndexed, 1218649853) \ | 183 V(_GrowableList, []=, GrowableArraySetIndexed, 1698264861) \ |
184 V(_GrowableList, _setLength, GrowableArraySetLength, 89389299) \ | 184 V(_GrowableList, _setLength, GrowableArraySetLength, 1832199634) \ |
185 V(_GrowableList, _setData, GrowableArraySetData, 2126927509) \ | 185 V(_GrowableList, _setData, GrowableArraySetData, 1722254196) \ |
186 V(_GrowableList, add, GrowableArray_add, 1899133961) \ | 186 V(_GrowableList, add, GrowableArray_add, 422087403) \ |
187 V(Object, ==, ObjectEquals, 1068471689) \ | 187 V(Object, ==, ObjectEquals, 1955975370) \ |
188 V(_StringBase, get:hashCode, String_getHashCode, 2102906241) \ | 188 V(_StringBase, get:hashCode, String_getHashCode, 2102936032) \ |
189 V(_StringBase, get:isEmpty, StringBaseIsEmpty, 49873871) \ | 189 V(_StringBase, get:isEmpty, StringBaseIsEmpty, 769493198) \ |
190 V(_StringBase, codeUnitAt, StringBaseCodeUnitAt, 397735324) \ | 190 V(_StringBase, codeUnitAt, StringBaseCodeUnitAt, 397735324) \ |
191 V(_StringBase, [], StringBaseCharAt, 1512210677) \ | 191 V(_StringBase, [], StringBaseCharAt, 1107537364) \ |
192 V(_OneByteString, get:hashCode, OneByteString_getHashCode, 1111837929) \ | 192 V(_OneByteString, get:hashCode, OneByteString_getHashCode, 1111867720) \ |
193 V(_OneByteString, _substringUncheckedNative, \ | 193 V(_OneByteString, _substringUncheckedNative, \ |
194 OneByteString_substringUnchecked, 1527498975) \ | 194 OneByteString_substringUnchecked, 1527498975) \ |
195 V(_OneByteString, _setAt, OneByteStringSetAt, 468605749) \ | 195 V(_OneByteString, _setAt, OneByteStringSetAt, 819138038) \ |
196 V(_OneByteString, _allocate, OneByteString_allocate, 2035417022) \ | 196 V(_OneByteString, _allocate, OneByteString_allocate, 227962559) \ |
197 V(_OneByteString, ==, OneByteString_equality, 1727047023) \ | 197 V(_OneByteString, ==, OneByteString_equality, 1857083054) \ |
198 V(_TwoByteString, ==, TwoByteString_equality, 951149689) \ | 198 V(_TwoByteString, ==, TwoByteString_equality, 1081185720) \ |
199 | 199 |
200 | 200 |
201 #define CORE_INTEGER_LIB_INTRINSIC_LIST(V) \ | 201 #define CORE_INTEGER_LIB_INTRINSIC_LIST(V) \ |
202 V(_IntegerImplementation, _addFromInteger, Integer_addFromInteger, \ | 202 V(_IntegerImplementation, _addFromInteger, Integer_addFromInteger, \ |
203 438687793) \ | 203 438687793) \ |
204 V(_IntegerImplementation, +, Integer_add, 501253666) \ | 204 V(_IntegerImplementation, +, Integer_add, 1324179652) \ |
205 V(_IntegerImplementation, _subFromInteger, Integer_subFromInteger, \ | 205 V(_IntegerImplementation, _subFromInteger, Integer_subFromInteger, \ |
206 562800077) \ | 206 562800077) \ |
207 V(_IntegerImplementation, -, Integer_sub, 1819430179) \ | 207 V(_IntegerImplementation, -, Integer_sub, 494872517) \ |
208 V(_IntegerImplementation, _mulFromInteger, Integer_mulFromInteger, \ | 208 V(_IntegerImplementation, _mulFromInteger, Integer_mulFromInteger, \ |
209 67891834) \ | 209 67891834) \ |
210 V(_IntegerImplementation, *, Integer_mul, 1787870724) \ | 210 V(_IntegerImplementation, *, Integer_mul, 463313062) \ |
211 V(_IntegerImplementation, _moduloFromInteger, Integer_moduloFromInteger, \ | 211 V(_IntegerImplementation, _moduloFromInteger, Integer_moduloFromInteger, \ |
212 93478264) \ | 212 93478264) \ |
213 V(_IntegerImplementation, ~/, Integer_truncDivide, 1309867000) \ | 213 V(_IntegerImplementation, ~/, Integer_truncDivide, 300412283) \ |
214 V(_IntegerImplementation, unary-, Integer_negate, 2095203689) \ | 214 V(_IntegerImplementation, unary-, Integer_negate, 1899613736) \ |
215 V(_IntegerImplementation, _bitAndFromInteger, \ | 215 V(_IntegerImplementation, _bitAndFromInteger, \ |
216 Integer_bitAndFromInteger, 504496713) \ | 216 Integer_bitAndFromInteger, 504496713) \ |
217 V(_IntegerImplementation, &, Integer_bitAnd, 648886925) \ | 217 V(_IntegerImplementation, &, Integer_bitAnd, 1471812911) \ |
218 V(_IntegerImplementation, _bitOrFromInteger, \ | 218 V(_IntegerImplementation, _bitOrFromInteger, \ |
219 Integer_bitOrFromInteger, 1763728073) \ | 219 Integer_bitOrFromInteger, 1763728073) \ |
220 V(_IntegerImplementation, |, Integer_bitOr, 1473764427) \ | 220 V(_IntegerImplementation, |, Integer_bitOr, 149206765) \ |
221 V(_IntegerImplementation, _bitXorFromInteger, \ | 221 V(_IntegerImplementation, _bitXorFromInteger, \ |
222 Integer_bitXorFromInteger, 281425907) \ | 222 Integer_bitXorFromInteger, 281425907) \ |
223 V(_IntegerImplementation, ^, Integer_bitXor, 99980524) \ | 223 V(_IntegerImplementation, ^, Integer_bitXor, 922906510) \ |
224 V(_IntegerImplementation, \ | 224 V(_IntegerImplementation, \ |
225 _greaterThanFromInteger, \ | 225 _greaterThanFromInteger, \ |
226 Integer_greaterThanFromInt, 787426822) \ | 226 Integer_greaterThanFromInt, 787426822) \ |
227 V(_IntegerImplementation, >, Integer_greaterThan, 123961041) \ | 227 V(_IntegerImplementation, >, Integer_greaterThan, 1226840498) \ |
228 V(_IntegerImplementation, ==, Integer_equal, 1423724294) \ | 228 V(_IntegerImplementation, ==, Integer_equal, 1155579943) \ |
229 V(_IntegerImplementation, _equalToInteger, Integer_equalToInteger, \ | 229 V(_IntegerImplementation, _equalToInteger, Integer_equalToInteger, \ |
230 1790821042) \ | 230 1790821042) \ |
231 V(_IntegerImplementation, <, Integer_lessThan, 425560117) \ | 231 V(_IntegerImplementation, <, Integer_lessThan, 555566388) \ |
232 V(_IntegerImplementation, <=, Integer_lessEqualThan, 1512735828) \ | 232 V(_IntegerImplementation, <=, Integer_lessEqualThan, 1161964406) \ |
233 V(_IntegerImplementation, >=, Integer_greaterEqualThan, 668293748) \ | 233 V(_IntegerImplementation, >=, Integer_greaterEqualThan, 317522326) \ |
234 V(_IntegerImplementation, <<, Integer_shl, 656407087) \ | 234 V(_IntegerImplementation, <<, Integer_shl, 1479333073) \ |
235 V(_IntegerImplementation, >>, Integer_sar, 487746736) \ | 235 V(_IntegerImplementation, >>, Integer_sar, 1310672722) \ |
236 V(_Double, toInt, DoubleToInteger, 1547535151) | 236 V(_Double, toInt, DoubleToInteger, 1547535151) |
237 | 237 |
238 | 238 |
239 #define MATH_LIB_INTRINSIC_LIST(V) \ | 239 #define MATH_LIB_INTRINSIC_LIST(V) \ |
240 V(::, sqrt, MathSqrt, 101545548) \ | 240 V(::, sqrt, MathSqrt, 101545548) \ |
241 V(_Random, _nextState, Random_nextState, 55890711) \ | 241 V(_Random, _nextState, Random_nextState, 84519862) \ |
242 | 242 |
243 | 243 |
244 #define TYPED_DATA_LIB_INTRINSIC_LIST(V) \ | 244 #define TYPED_DATA_LIB_INTRINSIC_LIST(V) \ |
245 V(_Int8Array, _new, TypedData_Int8Array_new, 1150131819) \ | 245 V(_Int8Array, _new, TypedData_Int8Array_new, 1490161004) \ |
246 V(_Uint8Array, _new, TypedData_Uint8Array_new, 2019665760) \ | 246 V(_Uint8Array, _new, TypedData_Uint8Array_new, 212211297) \ |
247 V(_Uint8ClampedArray, _new, TypedData_Uint8ClampedArray_new, 726412668) \ | 247 V(_Uint8ClampedArray, _new, TypedData_Uint8ClampedArray_new, 1066441853) \ |
248 V(_Int16Array, _new, TypedData_Int16Array_new, 1879541015) \ | 248 V(_Int16Array, _new, TypedData_Int16Array_new, 72086552) \ |
249 V(_Uint16Array, _new, TypedData_Uint16Array_new, 189496401) \ | 249 V(_Uint16Array, _new, TypedData_Uint16Array_new, 529525586) \ |
250 V(_Int32Array, _new, TypedData_Int32Array_new, 1725327048) \ | 250 V(_Int32Array, _new, TypedData_Int32Array_new, 2065356233) \ |
251 V(_Uint32Array, _new, TypedData_Uint32Array_new, 10306485) \ | 251 V(_Uint32Array, _new, TypedData_Uint32Array_new, 350335670) \ |
252 V(_Int64Array, _new, TypedData_Int64Array_new, 1299501918) \ | 252 V(_Int64Array, _new, TypedData_Int64Array_new, 1639531103) \ |
253 V(_Uint64Array, _new, TypedData_Uint64Array_new, 1635318703) \ | 253 V(_Uint64Array, _new, TypedData_Uint64Array_new, 1975347888) \ |
254 V(_Float32Array, _new, TypedData_Float32Array_new, 577737480) \ | 254 V(_Float32Array, _new, TypedData_Float32Array_new, 917766665) \ |
255 V(_Float64Array, _new, TypedData_Float64Array_new, 645355686) \ | 255 V(_Float64Array, _new, TypedData_Float64Array_new, 985384871) \ |
256 V(_Float32x4Array, _new, TypedData_Float32x4Array_new, 596639418) \ | 256 V(_Float32x4Array, _new, TypedData_Float32x4Array_new, 936668603) \ |
257 V(_Int32x4Array, _new, TypedData_Int32x4Array_new, 496358233) \ | 257 V(_Int32x4Array, _new, TypedData_Int32x4Array_new, 836387418) \ |
258 V(_Float64x2Array, _new, TypedData_Float64x2Array_new, 1506975080) \ | 258 V(_Float64x2Array, _new, TypedData_Float64x2Array_new, 1847004265) \ |
259 V(_Int8Array, ., TypedData_Int8Array_factory, 1499010120) \ | 259 V(_Int8Array, ., TypedData_Int8Array_factory, 1234236264) \ |
260 V(_Uint8Array, ., TypedData_Uint8Array_factory, 354210806) \ | 260 V(_Uint8Array, ., TypedData_Uint8Array_factory, 89436950) \ |
261 V(_Uint8ClampedArray, ., TypedData_Uint8ClampedArray_factory, 231626935) \ | 261 V(_Uint8ClampedArray, ., TypedData_Uint8ClampedArray_factory, 2114336727) \ |
262 V(_Int16Array, ., TypedData_Int16Array_factory, 1044203454) \ | 262 V(_Int16Array, ., TypedData_Int16Array_factory, 779429598) \ |
263 V(_Uint16Array, ., TypedData_Uint16Array_factory, 616427808) \ | 263 V(_Uint16Array, ., TypedData_Uint16Array_factory, 351653952) \ |
264 V(_Int32Array, ., TypedData_Int32Array_factory, 26656923) \ | 264 V(_Int32Array, ., TypedData_Int32Array_factory, 1909366715) \ |
265 V(_Uint32Array, ., TypedData_Uint32Array_factory, 297463966) \ | 265 V(_Uint32Array, ., TypedData_Uint32Array_factory, 32690110) \ |
266 V(_Int64Array, ., TypedData_Int64Array_factory, 105050331) \ | 266 V(_Int64Array, ., TypedData_Int64Array_factory, 1987760123) \ |
267 V(_Uint64Array, ., TypedData_Uint64Array_factory, 1469861670) \ | 267 V(_Uint64Array, ., TypedData_Uint64Array_factory, 1205087814) \ |
268 V(_Float32Array, ., TypedData_Float32Array_factory, 105860920) \ | 268 V(_Float32Array, ., TypedData_Float32Array_factory, 1988570712) \ |
269 V(_Float64Array, ., TypedData_Float64Array_factory, 342242776) \ | 269 V(_Float64Array, ., TypedData_Float64Array_factory, 77468920) \ |
270 V(_Float32x4Array, ., TypedData_Float32x4Array_factory, 1217848993) \ | 270 V(_Float32x4Array, ., TypedData_Float32x4Array_factory, 953075137) \ |
271 V(_Int32x4Array, ., TypedData_Int32x4Array_factory, 100825417) \ | 271 V(_Int32x4Array, ., TypedData_Int32x4Array_factory, 1983535209) \ |
272 V(_Float64x2Array, ., TypedData_Float64x2Array_factory, 611308575) \ | 272 V(_Float64x2Array, ., TypedData_Float64x2Array_factory, 346534719) \ |
273 | 273 |
274 #define GRAPH_TYPED_DATA_INTRINSICS_LIST(V) \ | 274 #define GRAPH_TYPED_DATA_INTRINSICS_LIST(V) \ |
275 V(_Uint8Array, [], Uint8ArrayGetIndexed, 16125140) \ | 275 V(_Uint8Array, [], Uint8ArrayGetIndexed, 252408403) \ |
276 V(_Uint8Array, []=, Uint8ArraySetIndexed, 2018064553) \ | 276 V(_Uint8Array, []=, Uint8ArraySetIndexed, 1102579018) \ |
277 V(_ExternalUint8Array, [], ExternalUint8ArrayGetIndexed, 1678777951) \ | 277 V(_ExternalUint8Array, [], ExternalUint8ArrayGetIndexed, 1915061214) \ |
278 V(_ExternalUint8Array, []=, ExternalUint8ArraySetIndexed, 918478513) \ | 278 V(_ExternalUint8Array, []=, ExternalUint8ArraySetIndexed, 2992978) \ |
279 V(_Float64Array, []=, Float64ArraySetIndexed, 243929230) \ | 279 V(_Float64Array, []=, Float64ArraySetIndexed, 407531405) \ |
280 V(_Float64Array, [], Float64ArrayGetIndexed, 1779054297) \ | 280 V(_Float64Array, [], Float64ArrayGetIndexed, 2015337560) \ |
281 V(_TypedList, get:length, TypedDataLength, 522565357) \ | 281 V(_TypedList, get:length, TypedDataLength, 522595148) \ |
282 | 282 |
283 #define GRAPH_CORE_INTRINSICS_LIST(V) \ | 283 #define GRAPH_CORE_INTRINSICS_LIST(V) \ |
284 V(_List, get:length, ObjectArrayLength, 1181352729) \ | 284 V(_List, get:length, ObjectArrayLength, 1181382520) \ |
285 V(_List, [], ObjectArrayGetIndexed, 795612476) \ | 285 V(_List, [], ObjectArrayGetIndexed, 390939163) \ |
286 V(_ImmutableList, get:length, ImmutableArrayLength, 274917727) \ | 286 V(_ImmutableList, get:length, ImmutableArrayLength, 274947518) \ |
287 V(_ImmutableList, [], ImmutableArrayGetIndexed, 1990177341) \ | 287 V(_ImmutableList, [], ImmutableArrayGetIndexed, 1585504028) \ |
288 V(_GrowableList, get:length, GrowableArrayLength, 778505107) \ | 288 V(_GrowableList, get:length, GrowableArrayLength, 778534898) \ |
289 V(_GrowableList, get:_capacity, GrowableArrayCapacity, 555140075) \ | 289 V(_GrowableList, get:_capacity, GrowableArrayCapacity, 555169866) \ |
290 V(_StringBase, get:length, StringBaseLength, 784399628) \ | 290 V(_StringBase, get:length, StringBaseLength, 784429419) \ |
291 | 291 |
292 #define GRAPH_INTRINSICS_LIST(V) \ | 292 #define GRAPH_INTRINSICS_LIST(V) \ |
293 GRAPH_CORE_INTRINSICS_LIST(V) \ | 293 GRAPH_CORE_INTRINSICS_LIST(V) \ |
294 GRAPH_TYPED_DATA_INTRINSICS_LIST(V) \ | 294 GRAPH_TYPED_DATA_INTRINSICS_LIST(V) \ |
295 | 295 |
296 #define PROFILER_LIB_INTRINSIC_LIST(V) \ | 296 #define PROFILER_LIB_INTRINSIC_LIST(V) \ |
297 V(_UserTag, makeCurrent, UserTag_makeCurrent, 370414636) \ | 297 V(_UserTag, makeCurrent, UserTag_makeCurrent, 370414636) \ |
298 V(::, _getDefaultTag, UserTag_defaultTag, 1159885970) \ | 298 V(::, _getDefaultTag, UserTag_defaultTag, 1159885970) \ |
299 V(::, _getCurrentTag, Profiler_getCurrentTag, 1182126114) \ | 299 V(::, _getCurrentTag, Profiler_getCurrentTag, 1182126114) \ |
300 | 300 |
301 #define ALL_INTRINSICS_NO_INTEGER_LIB_LIST(V) \ | 301 #define ALL_INTRINSICS_NO_INTEGER_LIB_LIST(V) \ |
302 CORE_LIB_INTRINSIC_LIST(V) \ | 302 CORE_LIB_INTRINSIC_LIST(V) \ |
303 MATH_LIB_INTRINSIC_LIST(V) \ | 303 MATH_LIB_INTRINSIC_LIST(V) \ |
304 TYPED_DATA_LIB_INTRINSIC_LIST(V) \ | 304 TYPED_DATA_LIB_INTRINSIC_LIST(V) \ |
305 PROFILER_LIB_INTRINSIC_LIST(V) | 305 PROFILER_LIB_INTRINSIC_LIST(V) |
306 | 306 |
307 #define ALL_INTRINSICS_LIST(V) \ | 307 #define ALL_INTRINSICS_LIST(V) \ |
308 ALL_INTRINSICS_NO_INTEGER_LIB_LIST(V) \ | 308 ALL_INTRINSICS_NO_INTEGER_LIB_LIST(V) \ |
309 CORE_INTEGER_LIB_INTRINSIC_LIST(V) | 309 CORE_INTEGER_LIB_INTRINSIC_LIST(V) |
310 | 310 |
311 #define RECOGNIZED_LIST(V) \ | 311 #define RECOGNIZED_LIST(V) \ |
312 OTHER_RECOGNIZED_LIST(V) \ | 312 OTHER_RECOGNIZED_LIST(V) \ |
313 ALL_INTRINSICS_LIST(V) \ | 313 ALL_INTRINSICS_LIST(V) \ |
314 GRAPH_INTRINSICS_LIST(V) | 314 GRAPH_INTRINSICS_LIST(V) |
315 | 315 |
316 // A list of core function that should always be inlined. | 316 // A list of core function that should always be inlined. |
317 #define INLINE_WHITE_LIST(V) \ | 317 #define INLINE_WHITE_LIST(V) \ |
318 V(Object, ==, ObjectEquals, 1068471689) \ | 318 V(Object, ==, ObjectEquals, 1955975370) \ |
319 V(_List, get:length, ObjectArrayLength, 1181352729) \ | 319 V(_List, get:length, ObjectArrayLength, 1181382520) \ |
320 V(_ImmutableList, get:length, ImmutableArrayLength, 274917727) \ | 320 V(_ImmutableList, get:length, ImmutableArrayLength, 274947518) \ |
321 V(_TypedList, get:length, TypedDataLength, 522565357) \ | 321 V(_TypedList, get:length, TypedDataLength, 522595148) \ |
322 V(_GrowableList, get:length, GrowableArrayLength, 778505107) \ | 322 V(_GrowableList, get:length, GrowableArrayLength, 778534898) \ |
323 V(_StringBase, get:length, StringBaseLength, 784399628) \ | 323 V(_StringBase, get:length, StringBaseLength, 784429419) \ |
324 V(ListIterator, moveNext, ListIteratorMoveNext, 210829138) \ | 324 V(ListIterator, moveNext, ListIteratorMoveNext, 1001265875) \ |
325 V(_FixedSizeArrayIterator, moveNext, FixedListIteratorMoveNext, 1147271335) \ | 325 V(_FixedSizeArrayIterator, moveNext, FixedListIteratorMoveNext, 890839431) \ |
326 V(_GrowableList, get:iterator, GrowableArrayIterator, 1812933946) \ | 326 V(_GrowableList, get:iterator, GrowableArrayIterator, 1663047580) \ |
327 V(_GrowableList, forEach, GrowableArrayForEach, 2085943947) \ | 327 V(_GrowableList, forEach, GrowableArrayForEach, 605873384) \ |
328 V(_List, ., ObjectArrayAllocate, 1595327584) \ | 328 V(_List, ., ObjectArrayAllocate, 335347617) \ |
329 V(_List, [], ObjectArrayGetIndexed, 795612476) \ | 329 V(_List, [], ObjectArrayGetIndexed, 390939163) \ |
330 V(_List, []=, ObjectArraySetIndexed, 1288827575) \ | 330 V(_List, []=, ObjectArraySetIndexed, 1768442583) \ |
331 V(_List, get:isEmpty, ObjectArrayIsEmpty, 2130247737) \ | 331 V(_List, get:isEmpty, ObjectArrayIsEmpty, 702383416) \ |
332 V(_List, get:iterator, ObjectArrayIterator, 458612415) \ | 332 V(_List, get:iterator, ObjectArrayIterator, 308726049) \ |
333 V(_List, forEach, ObjectArrayForEach, 592525445) \ | 333 V(_List, forEach, ObjectArrayForEach, 1720909126) \ |
334 V(_List, _slice, ObjectArraySlice, 1891508040) \ | 334 V(_List, _slice, ObjectArraySlice, 1738717516) \ |
335 V(_ImmutableList, get:iterator, ImmutableArrayIterator, 362084797) \ | 335 V(_ImmutableList, get:iterator, ImmutableArrayIterator, 212198431) \ |
336 V(_ImmutableList, forEach, ImmutableArrayForEach, 63658053) \ | 336 V(_ImmutableList, forEach, ImmutableArrayForEach, 1192041734) \ |
337 V(_ImmutableList, [], ImmutableArrayGetIndexed, 1990177341) \ | 337 V(_ImmutableList, [], ImmutableArrayGetIndexed, 1585504028) \ |
338 V(_GrowableList, [], GrowableArrayGetIndexed, 919108233) \ | 338 V(_GrowableList, [], GrowableArrayGetIndexed, 514434920) \ |
339 V(_GrowableList, []=, GrowableArraySetIndexed, 1218649853) \ | 339 V(_GrowableList, []=, GrowableArraySetIndexed, 1698264861) \ |
340 V(_Float32Array, [], Float32ArrayGetIndexed, 856653338) \ | 340 V(_Float32Array, [], Float32ArrayGetIndexed, 1092936601) \ |
341 V(_Float32Array, []=, Float32ArraySetIndexed, 2086166464) \ | 341 V(_Float32Array, []=, Float32ArraySetIndexed, 102284991) \ |
342 V(_Float64Array, [], Float64ArrayGetIndexed, 1779054297) \ | 342 V(_Float64Array, [], Float64ArrayGetIndexed, 2015337560) \ |
343 V(_Float64Array, []=, Float64ArraySetIndexed, 243929230) \ | 343 V(_Float64Array, []=, Float64ArraySetIndexed, 407531405) \ |
344 V(_Int8Array, [], Int8ArrayGetIndexed, 321230586) \ | 344 V(_Int8Array, [], Int8ArrayGetIndexed, 557513849) \ |
345 V(_Int8Array, []=, Int8ArraySetIndexed, 2050598685) \ | 345 V(_Int8Array, []=, Int8ArraySetIndexed, 1135113150) \ |
346 V(_Uint8Array, [], Uint8ArrayGetIndexed, 16125140) \ | 346 V(_Uint8Array, [], Uint8ArrayGetIndexed, 252408403) \ |
347 V(_Uint8Array, []=, Uint8ArraySetIndexed, 2018064553) \ | 347 V(_Uint8Array, []=, Uint8ArraySetIndexed, 1102579018) \ |
348 V(_Uint8ClampedArray, [], Uint8ClampedArrayGetIndexed, 430672063) \ | 348 V(_Uint8ClampedArray, [], Uint8ClampedArrayGetIndexed, 666955326) \ |
349 V(_Uint8ClampedArray, []=, Uint8ClampedArraySetIndexed, 821294340) \ | 349 V(_Uint8ClampedArray, []=, Uint8ClampedArraySetIndexed, 2053292453) \ |
350 V(_Uint16Array, [], Uint16ArrayGetIndexed, 470411953) \ | 350 V(_Uint16Array, [], Uint16ArrayGetIndexed, 706695216) \ |
351 V(_Uint16Array, []=, Uint16ArraySetIndexed, 1648929040) \ | 351 V(_Uint16Array, []=, Uint16ArraySetIndexed, 733443505) \ |
352 V(_Int16Array, [], Int16ArrayGetIndexed, 74127855) \ | 352 V(_Int16Array, [], Int16ArrayGetIndexed, 310411118) \ |
353 V(_Int16Array, []=, Int16ArraySetIndexed, 1610252345) \ | 353 V(_Int16Array, []=, Int16ArraySetIndexed, 694766810) \ |
354 V(_Int32Array, [], Int32ArrayGetIndexed, 203101370) \ | 354 V(_Int32Array, [], Int32ArrayGetIndexed, 439384633) \ |
355 V(_Int32Array, []=, Int32ArraySetIndexed, 338968571) \ | 355 V(_Int32Array, []=, Int32ArraySetIndexed, 1570966684) \ |
356 V(_Int64Array, [], Int64ArrayGetIndexed, 206855782) \ | 356 V(_Int64Array, [], Int64ArrayGetIndexed, 443139045) \ |
357 V(_Int64Array, []=, Int64ArraySetIndexed, 1258282177) \ | 357 V(_Int64Array, []=, Int64ArraySetIndexed, 342796642) \ |
358 V(_Uint8ArrayView, [], Uint8ArrayViewGetIndexed, 1543480955) \ | 358 V(_Uint8ArrayView, [], Uint8ArrayViewGetIndexed, 735017274) \ |
359 V(_Uint8ArrayView, []=, Uint8ArrayViewSetIndexed, 936729641) \ | 359 V(_Uint8ArrayView, []=, Uint8ArrayViewSetIndexed, 1913230218) \ |
360 V(_Int8ArrayView, [], Int8ArrayViewGetIndexed, 1898018934) \ | 360 V(_Int8ArrayView, [], Int8ArrayViewGetIndexed, 1089555253) \ |
361 V(_Int8ArrayView, []=, Int8ArrayViewSetIndexed, 111684506) \ | 361 V(_Int8ArrayView, []=, Int8ArrayViewSetIndexed, 1088185083) \ |
362 V(::, asin, MathASin, 1651042633) \ | 362 V(::, asin, MathASin, 1651042633) \ |
363 V(::, acos, MathACos, 1139647090) \ | 363 V(::, acos, MathACos, 1139647090) \ |
364 V(::, atan, MathATan, 1668754384) \ | 364 V(::, atan, MathATan, 1668754384) \ |
365 V(::, atan2, MathATan2, 1845649456) \ | 365 V(::, atan2, MathATan2, 1845649456) \ |
366 V(::, cos, MathCos, 1951197905) \ | 366 V(::, cos, MathCos, 1951197905) \ |
367 V(::, exp, MathExp, 1809210829) \ | 367 V(::, exp, MathExp, 1809210829) \ |
368 V(::, log, MathLog, 1620336448) \ | 368 V(::, log, MathLog, 1620336448) \ |
369 V(::, max, MathMax, 612058870) \ | 369 V(::, max, MathMax, 989552054) \ |
370 V(::, min, MathMin, 1022567780) \ | 370 V(::, min, MathMin, 214919172) \ |
371 V(::, pow, MathPow, 930962530) \ | 371 V(::, pow, MathPow, 1381728863) \ |
372 V(::, sin, MathSin, 1741396147) \ | 372 V(::, sin, MathSin, 1741396147) \ |
373 V(::, sqrt, MathSqrt, 101545548) \ | 373 V(::, sqrt, MathSqrt, 101545548) \ |
374 V(::, tan, MathTan, 982072809) \ | 374 V(::, tan, MathTan, 982072809) \ |
375 V(Lists, copy, ListsCopy, 902244797) \ | 375 V(Lists, copy, ListsCopy, 605584668) \ |
376 V(_Bigint, get:_neg, Bigint_getNeg, 1151514099) \ | 376 V(_Bigint, get:_neg, Bigint_getNeg, 1151543890) \ |
377 V(_Bigint, get:_used, Bigint_getUsed, 1308529543) \ | 377 V(_Bigint, get:_used, Bigint_getUsed, 1308559334) \ |
378 V(_Bigint, get:_digits, Bigint_getDigits, 1408062672) \ | 378 V(_Bigint, get:_digits, Bigint_getDigits, 1408092463) \ |
379 V(_Bigint, set:_digits, Bigint_setDigits, 1135754410) \ | 379 V(_Bigint, set:_digits, Bigint_setDigits, 1625268649) \ |
380 | 380 |
381 // A list of core function that should never be inlined. | 381 // A list of core function that should never be inlined. |
382 #define INLINE_BLACK_LIST(V) \ | 382 #define INLINE_BLACK_LIST(V) \ |
383 V(_Bigint, _absAdd, Bigint_absAdd, 233965936) \ | 383 V(_Bigint, _absAdd, Bigint_absAdd, 97148049) \ |
384 V(_Bigint, _absSub, Bigint_absSub, 1401148862) \ | 384 V(_Bigint, _absSub, Bigint_absSub, 159012285) \ |
385 V(_Bigint, _mulAdd, Bigint_mulAdd, 1283124653) \ | 385 V(_Bigint, _mulAdd, Bigint_mulAdd, 101252203) \ |
386 V(_Bigint, _sqrAdd, Bigint_sqrAdd, 1665155090) \ | 386 V(_Bigint, _sqrAdd, Bigint_sqrAdd, 1684445648) \ |
387 V(_Bigint, _estQuotientDigit, Bigint_estQuotientDigit, 643982609) \ | 387 V(_Bigint, _estQuotientDigit, Bigint_estQuotientDigit, 649845040) \ |
388 V(_Montgomery, _mulMod, Montgomery_mulMod, 149127024) \ | 388 V(_Montgomery, _mulMod, Montgomery_mulMod, 1551846228) \ |
389 | 389 |
390 // A list of core functions that internally dispatch based on received id. | 390 // A list of core functions that internally dispatch based on received id. |
391 #define POLYMORPHIC_TARGET_LIST(V) \ | 391 #define POLYMORPHIC_TARGET_LIST(V) \ |
392 V(_StringBase, [], StringBaseCharAt, 1512210677) \ | 392 V(_StringBase, [], StringBaseCharAt, 1107537364) \ |
393 V(_StringBase, codeUnitAt, StringBaseCodeUnitAt, 397735324) \ | 393 V(_StringBase, codeUnitAt, StringBaseCodeUnitAt, 397735324) \ |
394 V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 1541411498) \ | 394 V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 1541411498) \ |
395 V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 1032404349) \ | 395 V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 1032404349) \ |
396 V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 381073990) \ | 396 V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 381073990) \ |
397 V(_TypedList, _getUint16, ByteArrayBaseGetUint16, 1142676276) \ | 397 V(_TypedList, _getUint16, ByteArrayBaseGetUint16, 1142676276) \ |
398 V(_TypedList, _getInt32, ByteArrayBaseGetInt32, 330269934) \ | 398 V(_TypedList, _getInt32, ByteArrayBaseGetInt32, 330269934) \ |
399 V(_TypedList, _getUint32, ByteArrayBaseGetUint32, 59490554) \ | 399 V(_TypedList, _getUint32, ByteArrayBaseGetUint32, 59490554) \ |
400 V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 393003933) \ | 400 V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 393003933) \ |
401 V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 1792407200) \ | 401 V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 1792407200) \ |
402 V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 1338379857) \ | 402 V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 1338379857) \ |
403 V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 1469917805) \ | 403 V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 1469917805) \ |
404 V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 433348464) \ | 404 V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 783880753) \ |
405 V(_TypedList, _setUint8, ByteArrayBaseSetInt8, 149406583) \ | 405 V(_TypedList, _setUint8, ByteArrayBaseSetInt8, 499938872) \ |
406 V(_TypedList, _setInt16, ByteArrayBaseSetInt16, 805477162) \ | 406 V(_TypedList, _setInt16, ByteArrayBaseSetInt16, 1156009451) \ |
407 V(_TypedList, _setUint16, ByteArrayBaseSetInt16, 888580944) \ | 407 V(_TypedList, _setUint16, ByteArrayBaseSetInt16, 1239113233) \ |
408 V(_TypedList, _setInt32, ByteArrayBaseSetInt32, 1708248181) \ | 408 V(_TypedList, _setInt32, ByteArrayBaseSetInt32, 2058780470) \ |
409 V(_TypedList, _setUint32, ByteArrayBaseSetUint32, 1863152792) \ | 409 V(_TypedList, _setUint32, ByteArrayBaseSetUint32, 66201433) \ |
410 V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 1148703855) \ | 410 V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 1499236144) \ |
411 V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 972883980) \ | 411 V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 1323416269) \ |
412 V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 950522310) \ | 412 V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 1301054599) \ |
413 V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 1301138078) \ | 413 V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 1651670367) \ |
414 | 414 |
415 // Forward declarations. | 415 // Forward declarations. |
416 class Function; | 416 class Function; |
417 | 417 |
418 // Class that recognizes the name and owner of a function and returns the | 418 // Class that recognizes the name and owner of a function and returns the |
419 // corresponding enum. See RECOGNIZED_LIST above for list of recognizable | 419 // corresponding enum. See RECOGNIZED_LIST above for list of recognizable |
420 // functions. | 420 // functions. |
421 class MethodRecognizer : public AllStatic { | 421 class MethodRecognizer : public AllStatic { |
422 public: | 422 public: |
423 enum Kind { | 423 enum Kind { |
424 kUnknown, | 424 kUnknown, |
425 #define DEFINE_ENUM_LIST(class_name, function_name, enum_name, fp) k##enum_name, | 425 #define DEFINE_ENUM_LIST(class_name, function_name, enum_name, fp) k##enum_name, |
426 RECOGNIZED_LIST(DEFINE_ENUM_LIST) | 426 RECOGNIZED_LIST(DEFINE_ENUM_LIST) |
427 #undef DEFINE_ENUM_LIST | 427 #undef DEFINE_ENUM_LIST |
428 kNumRecognizedMethods | 428 kNumRecognizedMethods |
429 }; | 429 }; |
430 | 430 |
431 static Kind RecognizeKind(const Function& function); | 431 static Kind RecognizeKind(const Function& function); |
432 static bool AlwaysInline(const Function& function); | 432 static bool AlwaysInline(const Function& function); |
433 static bool PolymorphicTarget(const Function& function); | 433 static bool PolymorphicTarget(const Function& function); |
434 static const char* KindToCString(Kind kind); | 434 static const char* KindToCString(Kind kind); |
435 static void InitializeState(); | 435 static void InitializeState(); |
436 }; | 436 }; |
437 | 437 |
438 } // namespace dart | 438 } // namespace dart |
439 | 439 |
440 #endif // VM_METHOD_RECOGNIZER_H_ | 440 #endif // VM_METHOD_RECOGNIZER_H_ |
OLD | NEW |