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, result type, fingerprint). | 12 // (class-name, function-name, recognized enum, result type, 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, Bool, 0x12e69c8c) \ | 16 V(::, identical, ObjectIdentical, Bool, 0x12e69c8c) \ |
17 V(ClassID, getID, ClassIDgetID, Smi, 0x528fd455) \ | 17 V(ClassID, getID, ClassIDgetID, Smi, 0x66d44356) \ |
18 V(Object, Object., ObjectConstructor, Dynamic, 0x681617fe) \ | 18 V(Object, Object., ObjectConstructor, Dynamic, 0x68168c5d) \ |
19 V(_List, ., ObjectArrayAllocate, Array, 0x63078b15) \ | 19 V(_List, ., ObjectArrayAllocate, Array, 0x17edc656) \ |
20 V(_TypedList, _getInt8, ByteArrayBaseGetInt8, Smi, 0x59e7291d) \ | 20 V(_TypedList, _getInt8, ByteArrayBaseGetInt8, Smi, 0x59e7291d) \ |
21 V(_TypedList, _getUint8, ByteArrayBaseGetUint8, Smi, 0x38d3e5bf) \ | 21 V(_TypedList, _getUint8, ByteArrayBaseGetUint8, Smi, 0x38d3e5bf) \ |
22 V(_TypedList, _getInt16, ByteArrayBaseGetInt16, Smi, 0x19dde22c) \ | 22 V(_TypedList, _getInt16, ByteArrayBaseGetInt16, Smi, 0x19dde22c) \ |
23 V(_TypedList, _getUint16, ByteArrayBaseGetUint16, Smi, 0x4f3dbe58) \ | 23 V(_TypedList, _getUint16, ByteArrayBaseGetUint16, Smi, 0x4f3dbe58) \ |
24 V(_TypedList, _getInt32, ByteArrayBaseGetInt32, Dynamic, 0x082db131) \ | 24 V(_TypedList, _getInt32, ByteArrayBaseGetInt32, Dynamic, 0x082db131) \ |
25 V(_TypedList, _getUint32, ByteArrayBaseGetUint32, Dynamic, 0x1dcbfb98) \ | 25 V(_TypedList, _getUint32, ByteArrayBaseGetUint32, Dynamic, 0x1dcbfb98) \ |
26 V(_TypedList, _getInt64, ByteArrayBaseGetInt64, Dynamic, 0x61b71474) \ | 26 V(_TypedList, _getInt64, ByteArrayBaseGetInt64, Dynamic, 0x61b71474) \ |
27 V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, Double, 0x63b56e15) \ | 27 V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, Double, 0x63b56e15) \ |
28 V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, Double, 0x399dacf8) \ | 28 V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, Double, 0x399dacf8) \ |
29 V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, Float32x4, \ | 29 V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, Float32x4, \ |
30 0x4761a5be) \ | 30 0x4761a5be) \ |
31 V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, Int32x4, 0x3053e92c) \ | 31 V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, Int32x4, 0x3053e92c) \ |
32 V(_TypedList, _setInt8, ByteArrayBaseSetInt8, Dynamic, 0x4e82d1e9) \ | 32 V(_TypedList, _setInt8, ByteArrayBaseSetInt8, Dynamic, 0x636784aa) \ |
33 V(_TypedList, _setUint8, ByteArrayBaseSetUint8, Dynamic, 0x4f3587fc) \ | 33 V(_TypedList, _setUint8, ByteArrayBaseSetUint8, Dynamic, 0x641a3abd) \ |
34 V(_TypedList, _setInt16, ByteArrayBaseSetInt16, Dynamic, 0x6cef30ee) \ | 34 V(_TypedList, _setInt16, ByteArrayBaseSetInt16, Dynamic, 0x01d3e3af) \ |
35 V(_TypedList, _setUint16, ByteArrayBaseSetUint16, Dynamic, 0x64f938ac) \ | 35 V(_TypedList, _setUint16, ByteArrayBaseSetUint16, Dynamic, 0x79ddeb6d) \ |
36 V(_TypedList, _setInt32, ByteArrayBaseSetInt32, Dynamic, 0x3693c029) \ | 36 V(_TypedList, _setInt32, ByteArrayBaseSetInt32, Dynamic, 0x4b7872ea) \ |
37 V(_TypedList, _setUint32, ByteArrayBaseSetUint32, Dynamic, 0x74bbf260) \ | 37 V(_TypedList, _setUint32, ByteArrayBaseSetUint32, Dynamic, 0x09a0a521) \ |
38 V(_TypedList, _setInt64, ByteArrayBaseSetInt64, Dynamic, 0x75764edb) \ | 38 V(_TypedList, _setInt64, ByteArrayBaseSetInt64, Dynamic, 0x0a5b019c) \ |
39 V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, Dynamic, 0x6e72f2a4) \ | 39 V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, Dynamic, 0x0357a565) \ |
40 V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, Dynamic, 0x4765edda) \ | 40 V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, Dynamic, 0x5c4aa09b) \ |
41 V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, Dynamic, 0x7cca4533) \ | 41 V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, Dynamic, 0x11aef7f4) \ |
42 V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, Dynamic, 0x7631bdbc) \ | 42 V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, Dynamic, 0x0b16707d) \ |
43 V(_StringBase, _interpolate, StringBaseInterpolate, Dynamic, 0x6f98eb49) \ | 43 V(_StringBase, _interpolate, StringBaseInterpolate, Dynamic, 0x6c687469) \ |
44 V(_IntegerImplementation, toDouble, IntegerToDouble, Double, 0x2f409861) \ | 44 V(_IntegerImplementation, toDouble, IntegerToDouble, Double, 0x2b663802) \ |
45 V(_Double, _add, DoubleAdd, Double, 0x0021c560) \ | 45 V(_Double, _add, DoubleAdd, Double, 0x0021c560) \ |
46 V(_Double, _sub, DoubleSub, Double, 0x419b3c66) \ | 46 V(_Double, _sub, DoubleSub, Double, 0x419b3c66) \ |
47 V(_Double, _mul, DoubleMul, Double, 0x1a08cbe1) \ | 47 V(_Double, _mul, DoubleMul, Double, 0x1a08cbe1) \ |
48 V(_Double, _div, DoubleDiv, Double, 0x38d2770f) \ | 48 V(_Double, _div, DoubleDiv, Double, 0x38d2770f) \ |
49 V(::, min, MathMin, Dynamic, 0x4276561c) \ | 49 V(::, min, MathMin, Dynamic, 0x125298bc) \ |
50 V(::, max, MathMax, Dynamic, 0x54121d6a) \ | 50 V(::, max, MathMax, Dynamic, 0x6a92342a) \ |
51 V(::, _doublePow, MathDoublePow, Double, 0x698eb78d) \ | 51 V(::, _doublePow, MathDoublePow, Double, 0x48eda3ec) \ |
52 V(Float32x4, Float32x4., Float32x4Constructor, Float32x4, 0x05968999) \ | 52 V(Float32x4, Float32x4., Float32x4Constructor, Float32x4, 0x5640679a) \ |
53 V(Float32x4, Float32x4.zero, Float32x4Zero, Float32x4, 0x472a4c46) \ | 53 V(Float32x4, Float32x4.zero, Float32x4Zero, Float32x4, 0x2f0b7925) \ |
54 V(Float32x4, Float32x4.splat, Float32x4Splat, Float32x4, 0x00bba1a5) \ | 54 V(Float32x4, Float32x4.splat, Float32x4Splat, Float32x4, 0x750512c4) \ |
55 V(Float32x4, Float32x4.fromInt32x4Bits, Float32x4FromInt32x4Bits, Float32x4, \ | 55 V(Float32x4, Float32x4.fromInt32x4Bits, Float32x4FromInt32x4Bits, Float32x4, \ |
56 0x46d00995) \ | 56 0x3b197ab4) \ |
57 V(Float32x4, Float32x4.fromFloat64x2, Float32x4FromFloat64x2, Float32x4, \ | 57 V(Float32x4, Float32x4.fromFloat64x2, Float32x4FromFloat64x2, Float32x4, \ |
58 0x685a86d2) \ | 58 0x5ca3f7f1) \ |
59 V(Float32x4, shuffle, Float32x4Shuffle, Float32x4, 0x7829101f) \ | 59 V(Float32x4, shuffle, Float32x4Shuffle, Float32x4, 0x7829101f) \ |
60 V(Float32x4, shuffleMix, Float32x4ShuffleMix, Float32x4, 0x4182c06b) \ | 60 V(Float32x4, shuffleMix, Float32x4ShuffleMix, Float32x4, 0x4182c06b) \ |
61 V(Float32x4, get:signMask, Float32x4GetSignMask, Dynamic, 0x1d07ca93) \ | 61 V(Float32x4, get:signMask, Float32x4GetSignMask, Dynamic, 0x1d083ef2) \ |
62 V(Float32x4, _cmpequal, Float32x4Equal, Int32x4, 0x079804cb) \ | 62 V(Float32x4, _cmpequal, Float32x4Equal, Int32x4, 0x079804cb) \ |
63 V(Float32x4, _cmpgt, Float32x4GreaterThan, Int32x4, 0x7e441585) \ | 63 V(Float32x4, _cmpgt, Float32x4GreaterThan, Int32x4, 0x7e441585) \ |
64 V(Float32x4, _cmpgte, Float32x4GreaterThanOrEqual, Int32x4, 0x213f782d) \ | 64 V(Float32x4, _cmpgte, Float32x4GreaterThanOrEqual, Int32x4, 0x213f782d) \ |
65 V(Float32x4, _cmplt, Float32x4LessThan, Int32x4, 0x3f481f31) \ | 65 V(Float32x4, _cmplt, Float32x4LessThan, Int32x4, 0x3f481f31) \ |
66 V(Float32x4, _cmplte, Float32x4LessThanOrEqual, Int32x4, 0x061db061) \ | 66 V(Float32x4, _cmplte, Float32x4LessThanOrEqual, Int32x4, 0x061db061) \ |
67 V(Float32x4, _cmpnequal, Float32x4NotEqual, Int32x4, 0x6fada13e) \ | 67 V(Float32x4, _cmpnequal, Float32x4NotEqual, Int32x4, 0x6fada13e) \ |
68 V(Float32x4, _min, Float32x4Min, Float32x4, 0x4505ee78) \ | 68 V(Float32x4, _min, Float32x4Min, Float32x4, 0x4505ee78) \ |
69 V(Float32x4, _max, Float32x4Max, Float32x4, 0x071681c6) \ | 69 V(Float32x4, _max, Float32x4Max, Float32x4, 0x071681c6) \ |
70 V(Float32x4, _scale, Float32x4Scale, Float32x4, 0x18c7f49d) \ | 70 V(Float32x4, _scale, Float32x4Scale, Float32x4, 0x18c7f49d) \ |
71 V(Float32x4, _sqrt, Float32x4Sqrt, Float32x4, 0x734e6ad0) \ | 71 V(Float32x4, _sqrt, Float32x4Sqrt, Float32x4, 0x734e6ad0) \ |
72 V(Float32x4, _reciprocalSqrt, Float32x4ReciprocalSqrt, Float32x4, \ | 72 V(Float32x4, _reciprocalSqrt, Float32x4ReciprocalSqrt, Float32x4, \ |
73 0x5e8a97f6) \ | 73 0x5e8a97f6) \ |
74 V(Float32x4, _reciprocal, Float32x4Reciprocal, Float32x4, 0x626f6106) \ | 74 V(Float32x4, _reciprocal, Float32x4Reciprocal, Float32x4, 0x626f6106) \ |
75 V(Float32x4, _negate, Float32x4Negate, Float32x4, 0x7fb3a154) \ | 75 V(Float32x4, _negate, Float32x4Negate, Float32x4, 0x7fb3a154) \ |
76 V(Float32x4, _abs, Float32x4Absolute, Float32x4, 0x1420f447) \ | 76 V(Float32x4, _abs, Float32x4Absolute, Float32x4, 0x1420f447) \ |
77 V(Float32x4, _clamp, Float32x4Clamp, Float32x4, 0x4200222d) \ | 77 V(Float32x4, _clamp, Float32x4Clamp, Float32x4, 0x4200222d) \ |
78 V(Float32x4, withX, Float32x4WithX, Float32x4, 0x4e336aff) \ | 78 V(Float32x4, withX, Float32x4WithX, Float32x4, 0x4e336aff) \ |
79 V(Float32x4, withY, Float32x4WithY, Float32x4, 0x0a72b910) \ | 79 V(Float32x4, withY, Float32x4WithY, Float32x4, 0x0a72b910) \ |
80 V(Float32x4, withZ, Float32x4WithZ, Float32x4, 0x31e93658) \ | 80 V(Float32x4, withZ, Float32x4WithZ, Float32x4, 0x31e93658) \ |
81 V(Float32x4, withW, Float32x4WithW, Float32x4, 0x60ddc105) \ | 81 V(Float32x4, withW, Float32x4WithW, Float32x4, 0x60ddc105) \ |
82 V(Float64x2, Float64x2., Float64x2Constructor, Float64x2, 0x193be61d) \ | 82 V(Float64x2, Float64x2., Float64x2Constructor, Float64x2, 0x2e2098de) \ |
83 V(Float64x2, Float64x2.zero, Float64x2Zero, Float64x2, 0x7b2ed5df) \ | 83 V(Float64x2, Float64x2.zero, Float64x2Zero, Float64x2, 0x631002be) \ |
84 V(Float64x2, Float64x2.splat, Float64x2Splat, Float64x2, 0x2abbfcb2) \ | 84 V(Float64x2, Float64x2.splat, Float64x2Splat, Float64x2, 0x1f056dd1) \ |
85 V(Float64x2, Float64x2.fromFloat32x4, Float64x2FromFloat32x4, Float64x2, \ | 85 V(Float64x2, Float64x2.fromFloat32x4, Float64x2FromFloat32x4, Float64x2, \ |
86 0x2f43d3a6) \ | 86 0x238d44c5) \ |
87 V(Float64x2, get:x, Float64x2GetX, Double, 0x58bfb39a) \ | 87 V(Float64x2, get:x, Float64x2GetX, Double, 0x58c027f9) \ |
88 V(Float64x2, get:y, Float64x2GetY, Double, 0x3cf4fcfa) \ | 88 V(Float64x2, get:y, Float64x2GetY, Double, 0x3cf57159) \ |
89 V(Float64x2, _negate, Float64x2Negate, Float64x2, 0x64ef7b77) \ | 89 V(Float64x2, _negate, Float64x2Negate, Float64x2, 0x64ef7b77) \ |
90 V(Float64x2, abs, Float64x2Abs, Float64x2, 0x031f9e47) \ | 90 V(Float64x2, abs, Float64x2Abs, Float64x2, 0x031f9e47) \ |
91 V(Float64x2, sqrt, Float64x2Sqrt, Float64x2, 0x77f711dd) \ | 91 V(Float64x2, sqrt, Float64x2Sqrt, Float64x2, 0x77f711dd) \ |
92 V(Float64x2, get:signMask, Float64x2GetSignMask, Dynamic, 0x27ddf18d) \ | 92 V(Float64x2, get:signMask, Float64x2GetSignMask, Dynamic, 0x27de65ec) \ |
93 V(Float64x2, scale, Float64x2Scale, Float64x2, 0x26830a61) \ | 93 V(Float64x2, scale, Float64x2Scale, Float64x2, 0x26830a61) \ |
94 V(Float64x2, withX, Float64x2WithX, Float64x2, 0x1d2bcaf5) \ | 94 V(Float64x2, withX, Float64x2WithX, Float64x2, 0x1d2bcaf5) \ |
95 V(Float64x2, withY, Float64x2WithY, Float64x2, 0x383ed6ac) \ | 95 V(Float64x2, withY, Float64x2WithY, Float64x2, 0x383ed6ac) \ |
96 V(Float64x2, min, Float64x2Min, Float64x2, 0x28d7ddf6) \ | 96 V(Float64x2, min, Float64x2Min, Float64x2, 0x28d7ddf6) \ |
97 V(Float64x2, max, Float64x2Max, Float64x2, 0x0bd74e5b) \ | 97 V(Float64x2, max, Float64x2Max, Float64x2, 0x0bd74e5b) \ |
98 V(Int32x4, Int32x4., Int32x4Constructor, Int32x4, 0x26b199a7) \ | 98 V(Int32x4, Int32x4., Int32x4Constructor, Int32x4, 0x775b77a8) \ |
99 V(Int32x4, Int32x4.bool, Int32x4BoolConstructor, Int32x4, 0x1b55a5e1) \ | 99 V(Int32x4, Int32x4.bool, Int32x4BoolConstructor, Int32x4, 0x690007a2) \ |
100 V(Int32x4, Int32x4.fromFloat32x4Bits, Int32x4FromFloat32x4Bits, Int32x4, \ | 100 V(Int32x4, Int32x4.fromFloat32x4Bits, Int32x4FromFloat32x4Bits, Int32x4, \ |
101 0x7e82564c) \ | 101 0x72cbc76b) \ |
102 V(Int32x4, get:flagX, Int32x4GetFlagX, Bool, 0x563883c4) \ | 102 V(Int32x4, get:flagX, Int32x4GetFlagX, Bool, 0x5638f823) \ |
103 V(Int32x4, get:flagY, Int32x4GetFlagY, Bool, 0x446f5e7a) \ | 103 V(Int32x4, get:flagY, Int32x4GetFlagY, Bool, 0x446fd2d9) \ |
104 V(Int32x4, get:flagZ, Int32x4GetFlagZ, Bool, 0x20d61679) \ | 104 V(Int32x4, get:flagZ, Int32x4GetFlagZ, Bool, 0x20d68ad8) \ |
105 V(Int32x4, get:flagW, Int32x4GetFlagW, Bool, 0x504478ac) \ | 105 V(Int32x4, get:flagW, Int32x4GetFlagW, Bool, 0x5044ed0b) \ |
106 V(Int32x4, get:signMask, Int32x4GetSignMask, Dynamic, 0x2c1ec9e5) \ | 106 V(Int32x4, get:signMask, Int32x4GetSignMask, Dynamic, 0x2c1f3e44) \ |
107 V(Int32x4, shuffle, Int32x4Shuffle, Int32x4, 0x20bc0b16) \ | 107 V(Int32x4, shuffle, Int32x4Shuffle, Int32x4, 0x20bc0b16) \ |
108 V(Int32x4, shuffleMix, Int32x4ShuffleMix, Int32x4, 0x5c7056e1) \ | 108 V(Int32x4, shuffleMix, Int32x4ShuffleMix, Int32x4, 0x5c7056e1) \ |
109 V(Int32x4, select, Int32x4Select, Float32x4, 0x518ee337) \ | 109 V(Int32x4, select, Int32x4Select, Float32x4, 0x39701016) \ |
110 V(Int32x4, withFlagX, Int32x4WithFlagX, Int32x4, 0x0ef58fcf) \ | 110 V(Int32x4, withFlagX, Int32x4WithFlagX, Int32x4, 0x0ef58fcf) \ |
111 V(Int32x4, withFlagY, Int32x4WithFlagY, Int32x4, 0x6485a9c4) \ | 111 V(Int32x4, withFlagY, Int32x4WithFlagY, Int32x4, 0x6485a9c4) \ |
112 V(Int32x4, withFlagZ, Int32x4WithFlagZ, Int32x4, 0x267acdfa) \ | 112 V(Int32x4, withFlagZ, Int32x4WithFlagZ, Int32x4, 0x267acdfa) \ |
113 V(Int32x4, withFlagW, Int32x4WithFlagW, Int32x4, 0x345ac675) \ | 113 V(Int32x4, withFlagW, Int32x4WithFlagW, Int32x4, 0x345ac675) \ |
114 V(Float32List, [], Float32ArrayGetIndexed, Double, 0x5686528f) \ | 114 V(Float32List, [], Float32ArrayGetIndexed, Double, 0x0b746d8d) \ |
115 V(Float32List, []=, Float32ArraySetIndexed, Dynamic, 0x1b0d90df) \ | 115 V(Float32List, []=, Float32ArraySetIndexed, Dynamic, 0x72a246ff) \ |
116 V(Int8List, [], Int8ArrayGetIndexed, Smi, 0x069af8b3) \ | 116 V(Int8List, [], Int8ArrayGetIndexed, Smi, 0x3b8913b1) \ |
117 V(Int8List, []=, Int8ArraySetIndexed, Dynamic, 0x33994cd7) \ | 117 V(Int8List, []=, Int8ArraySetIndexed, Dynamic, 0x164f62b7) \ |
118 V(Uint8ClampedList, [], Uint8ClampedArrayGetIndexed, Smi, 0x027603ed) \ | 118 V(Uint8ClampedList, [], Uint8ClampedArrayGetIndexed, Smi, 0x37641eeb) \ |
119 V(Uint8ClampedList, []=, Uint8ClampedArraySetIndexed, Dynamic, 0x28f5f058) \ | 119 V(Uint8ClampedList, []=, Uint8ClampedArraySetIndexed, Dynamic, 0x0bac0638) \ |
120 V(_ExternalUint8ClampedArray, [], ExternalUint8ClampedArrayGetIndexed, \ | 120 V(_ExternalUint8ClampedArray, [], ExternalUint8ClampedArrayGetIndexed, \ |
121 Smi, 0x027603ed) \ | 121 Smi, 0x37641eeb) \ |
122 V(_ExternalUint8ClampedArray, []=, ExternalUint8ClampedArraySetIndexed, \ | 122 V(_ExternalUint8ClampedArray, []=, ExternalUint8ClampedArraySetIndexed, \ |
123 Dynamic, 0x28f5f058) \ | 123 Dynamic, 0x0bac0638) \ |
124 V(Int16List, [], Int16ArrayGetIndexed, Smi, 0x173cd6a1) \ | 124 V(Int16List, [], Int16ArrayGetIndexed, Smi, 0x4c2af19f) \ |
125 V(Int16List, []=, Int16ArraySetIndexed, Dynamic, 0x32f84e3c) \ | 125 V(Int16List, []=, Int16ArraySetIndexed, Dynamic, 0x15ae641c) \ |
126 V(Uint16List, [], Uint16ArrayGetIndexed, Smi, 0x3ececa2f) \ | 126 V(Uint16List, [], Uint16ArrayGetIndexed, Smi, 0x73bce52d) \ |
127 V(Uint16List, []=, Uint16ArraySetIndexed, Dynamic, 0x5c3a0bb9) \ | 127 V(Uint16List, []=, Uint16ArraySetIndexed, Dynamic, 0x3ef02199) \ |
128 V(Int32List, [], Int32ArrayGetIndexed, Dynamic, 0x262eef09) \ | 128 V(Int32List, [], Int32ArrayGetIndexed, Dynamic, 0x5b1d0a07) \ |
129 V(Int32List, []=, Int32ArraySetIndexed, Dynamic, 0x1b05b471) \ | 129 V(Int32List, []=, Int32ArraySetIndexed, Dynamic, 0x7dbbca51) \ |
130 V(Int64List, [], Int64ArrayGetIndexed, Dynamic, 0x0c0c939a) \ | 130 V(Int64List, [], Int64ArrayGetIndexed, Dynamic, 0x40faae98) \ |
131 V(Int64List, []=, Int64ArraySetIndexed, Dynamic, 0x3714d004) \ | 131 V(Int64List, []=, Int64ArraySetIndexed, Dynamic, 0x19cae5e4) \ |
132 V(Float32x4List, [], Float32x4ArrayGetIndexed, Float32x4, 0x01c7017b) \ | 132 V(Float32x4List, [], Float32x4ArrayGetIndexed, Float32x4, 0x36b51c79) \ |
133 V(Float32x4List, []=, Float32x4ArraySetIndexed, Dynamic, 0x56e843aa) \ | 133 V(Float32x4List, []=, Float32x4ArraySetIndexed, Dynamic, 0x2e7cf9ca) \ |
134 V(Int32x4List, [], Int32x4ArrayGetIndexed, Int32x4, 0x08353f8d) \ | 134 V(Int32x4List, [], Int32x4ArrayGetIndexed, Int32x4, 0x3d235a8b) \ |
135 V(Int32x4List, []=, Int32x4ArraySetIndexed, Dynamic, 0x1d9a47a5) \ | 135 V(Int32x4List, []=, Int32x4ArraySetIndexed, Dynamic, 0x752efdc5) \ |
136 V(Float64x2List, [], Float64x2ArrayGetIndexed, Float64x2, 0x669b1498) \ | 136 V(Float64x2List, [], Float64x2ArrayGetIndexed, Float64x2, 0x1b892f96) \ |
137 V(Float64x2List, []=, Float64x2ArraySetIndexed, Dynamic, 0x76da6ffe) \ | 137 V(Float64x2List, []=, Float64x2ArraySetIndexed, Dynamic, 0x4e6f261e) \ |
138 V(_Bigint, get:_neg, Bigint_getNeg, Bool, 0x7bf17a57) \ | 138 V(_Bigint, get:_neg, Bigint_getNeg, Bool, 0x7bf1eeb6) \ |
139 V(_Bigint, get:_used, Bigint_getUsed, Smi, 0x55041013) \ | 139 V(_Bigint, get:_used, Bigint_getUsed, Smi, 0x55048472) \ |
140 V(_Bigint, get:_digits, Bigint_getDigits, TypedDataUint32Array, 0x46a6c1b3) \ | 140 V(_Bigint, get:_digits, Bigint_getDigits, TypedDataUint32Array, 0x46a73612) \ |
141 V(_HashVMBase, get:_index, LinkedHashMap_getIndex, Dynamic, 0x7d6bb76b) \ | 141 V(_HashVMBase, get:_index, LinkedHashMap_getIndex, Dynamic, 0x7d6c2bca) \ |
142 V(_HashVMBase, set:_index, LinkedHashMap_setIndex, Dynamic, 0x4beb13f2) \ | 142 V(_HashVMBase, set:_index, LinkedHashMap_setIndex, Dynamic, 0x4810afd2) \ |
143 V(_HashVMBase, get:_data, LinkedHashMap_getData, Array, 0x4bf5ccb3) \ | 143 V(_HashVMBase, get:_data, LinkedHashMap_getData, Array, 0x4bf64112) \ |
144 V(_HashVMBase, set:_data, LinkedHashMap_setData, Dynamic, 0x6007556d) \ | 144 V(_HashVMBase, set:_data, LinkedHashMap_setData, Dynamic, 0x5c2cf14d) \ |
145 V(_HashVMBase, get:_usedData, LinkedHashMap_getUsedData, Smi, 0x15e70845) \ | 145 V(_HashVMBase, get:_usedData, LinkedHashMap_getUsedData, Smi, 0x15e77ca4) \ |
146 V(_HashVMBase, set:_usedData, LinkedHashMap_setUsedData, Dynamic, 0x3e8c6edc)\ | 146 V(_HashVMBase, set:_usedData, LinkedHashMap_setUsedData, Dynamic, 0x3ab20abc)\ |
147 V(_HashVMBase, get:_hashMask, LinkedHashMap_getHashMask, Smi, 0x35c5ac00) \ | 147 V(_HashVMBase, get:_hashMask, LinkedHashMap_getHashMask, Smi, 0x35c6205f) \ |
148 V(_HashVMBase, set:_hashMask, LinkedHashMap_setHashMask, Dynamic, 0x49adf69e)\ | 148 V(_HashVMBase, set:_hashMask, LinkedHashMap_setHashMask, Dynamic, 0x45d3927e)\ |
149 V(_HashVMBase, get:_deletedKeys, LinkedHashMap_getDeletedKeys, Smi, \ | 149 V(_HashVMBase, get:_deletedKeys, LinkedHashMap_getDeletedKeys, Smi, \ |
150 0x306e6a79) \ | 150 0x306eded8) \ |
151 V(_HashVMBase, set:_deletedKeys, LinkedHashMap_setDeletedKeys, Dynamic, \ | 151 V(_HashVMBase, set:_deletedKeys, LinkedHashMap_setDeletedKeys, Dynamic, \ |
152 0x3fe95fc2) \ | 152 0x3c0efba2) \ |
153 | 153 |
154 | 154 |
155 // List of intrinsics: | 155 // List of intrinsics: |
156 // (class-name, function-name, intrinsification method, fingerprint). | 156 // (class-name, function-name, intrinsification method, fingerprint). |
157 #define CORE_LIB_INTRINSIC_LIST(V) \ | 157 #define CORE_LIB_INTRINSIC_LIST(V) \ |
158 V(_Smi, ~, Smi_bitNegate, Smi, 0x63bfee11) \ | 158 V(_Smi, ~, Smi_bitNegate, Smi, 0x6574c6b0) \ |
159 V(_Smi, get:bitLength, Smi_bitLength, Smi, 0x25b2e24c) \ | 159 V(_Smi, get:bitLength, Smi_bitLength, Smi, 0x25b356ab) \ |
160 V(_Smi, _bitAndFromSmi, Smi_bitAndFromSmi, Smi, 0x0df806ed) \ | 160 V(_Smi, _bitAndFromSmi, Smi_bitAndFromSmi, Smi, 0x0df806ed) \ |
161 V(_Bigint, _lsh, Bigint_lsh, Dynamic, 0x5cd95513) \ | 161 V(_Bigint, _lsh, Bigint_lsh, Dynamic, 0x17995b55) \ |
162 V(_Bigint, _rsh, Bigint_rsh, Dynamic, 0x2d68d0e1) \ | 162 V(_Bigint, _rsh, Bigint_rsh, Dynamic, 0x0f8c6a42) \ |
163 V(_Bigint, _absAdd, Bigint_absAdd, Dynamic, 0x492f4865) \ | 163 V(_Bigint, _absAdd, Bigint_absAdd, Dynamic, 0x68288406) \ |
164 V(_Bigint, _absSub, Bigint_absSub, Dynamic, 0x174a3a34) \ | 164 V(_Bigint, _absSub, Bigint_absSub, Dynamic, 0x310791b3) \ |
165 V(_Bigint, _mulAdd, Bigint_mulAdd, Dynamic, 0x24ced3ee) \ | 165 V(_Bigint, _mulAdd, Bigint_mulAdd, Dynamic, 0x7d2ed4ef) \ |
166 V(_Bigint, _sqrAdd, Bigint_sqrAdd, Dynamic, 0x60c6b633) \ | 166 V(_Bigint, _sqrAdd, Bigint_sqrAdd, Dynamic, 0x0c6594b4) \ |
167 V(_Bigint, _estQuotientDigit, Bigint_estQuotientDigit, Dynamic, 0x2f867482) \ | 167 V(_Bigint, _estQuotientDigit, Bigint_estQuotientDigit, Dynamic, 0x11eb5686) \ |
168 V(_Montgomery, _mulMod, Montgomery_mulMod, Dynamic, 0x741bed13) \ | 168 V(_Montgomery, _mulMod, Montgomery_mulMod, Dynamic, 0x2c21d431) \ |
169 V(_Double, >, Double_greaterThan, Bool, 0x569b0a81) \ | 169 V(_Double, >, Double_greaterThan, Bool, 0x1b8e59a1) \ |
170 V(_Double, >=, Double_greaterEqualThan, Bool, 0x6c317340) \ | 170 V(_Double, >=, Double_greaterEqualThan, Bool, 0x57491a62) \ |
171 V(_Double, <, Double_lessThan, Bool, 0x26dda4bc) \ | 171 V(_Double, <, Double_lessThan, Bool, 0x2e9d61bb) \ |
172 V(_Double, <=, Double_lessEqualThan, Bool, 0x1e869d20) \ | 172 V(_Double, <=, Double_lessEqualThan, Bool, 0x099e4442) \ |
173 V(_Double, ==, Double_equal, Bool, 0x578a1a51) \ | 173 V(_Double, ==, Double_equal, Bool, 0x0a08d74f) \ |
174 V(_Double, +, Double_add, Double, 0x4bac5dd5) \ | 174 V(_Double, +, Double_add, Double, 0x109facf5) \ |
175 V(_Double, -, Double_sub, Double, 0x62052dbb) \ | 175 V(_Double, -, Double_sub, Double, 0x26f87cdb) \ |
176 V(_Double, *, Double_mul, Double, 0x23d068d8) \ | 176 V(_Double, *, Double_mul, Double, 0x68c3b7f8) \ |
177 V(_Double, /, Double_div, Double, 0x48bac1dc) \ | 177 V(_Double, /, Double_div, Double, 0x0dae10fc) \ |
178 V(_Double, get:isNaN, Double_getIsNaN, Bool, 0x0af8ebeb) \ | 178 V(_Double, get:isNaN, Double_getIsNaN, Bool, 0x0af9604a) \ |
179 V(_Double, get:isNegative, Double_getIsNegative, Bool, 0x3a58ff36) \ | 179 V(_Double, get:isNegative, Double_getIsNegative, Bool, 0x3a597395) \ |
180 V(_Double, _mulFromInteger, Double_mulFromInteger, Double, 0x330e9a36) \ | 180 V(_Double, _mulFromInteger, Double_mulFromInteger, Double, 0x036f6e17) \ |
181 V(_Double, .fromInteger, DoubleFromInteger, Double, 0x7ef45843) \ | 181 V(_Double, .fromInteger, DoubleFromInteger, Double, 0x733dc962) \ |
182 V(_List, []=, ObjectArraySetIndexed, Dynamic, 0x34d2c72c) \ | 182 V(_List, []=, ObjectArraySetIndexed, Dynamic, 0x51691f4c) \ |
183 V(_GrowableList, .withData, GrowableArray_Allocate, GrowableObjectArray, \ | 183 V(_GrowableList, .withData, GrowableArray_Allocate, GrowableObjectArray, \ |
184 0x25a786de) \ | 184 0x19f0f7fd) \ |
185 V(_GrowableList, add, GrowableArray_add, Dynamic, 0x0d1358ed) \ | 185 V(_GrowableList, add, GrowableArray_add, Dynamic, 0x350967cf) \ |
186 V(_RegExp, _ExecuteMatch, RegExp_ExecuteMatch, Dynamic, 0x6036d7fa) \ | 186 V(_RegExp, _ExecuteMatch, RegExp_ExecuteMatch, Dynamic, 0x6036d7fa) \ |
187 V(Object, ==, ObjectEquals, Bool, 0x11662ed8) \ | 187 V(Object, ==, ObjectEquals, Bool, 0x464c6a19) \ |
188 V(Object, get:runtimeType, ObjectRuntimeType, Type, 0x00e7c26b) \ | 188 V(Object, get:runtimeType, ObjectRuntimeType, Type, 0x00e836ca) \ |
189 V(_StringBase, get:hashCode, String_getHashCode, Smi, 0x78c2eb88) \ | 189 V(_StringBase, get:hashCode, String_getHashCode, Smi, 0x78c35fe7) \ |
190 V(_StringBase, get:isEmpty, StringBaseIsEmpty, Bool, 0x74c21fca) \ | 190 V(_StringBase, get:isEmpty, StringBaseIsEmpty, Bool, 0x1fa6a4c9) \ |
191 V(_StringBase, _substringMatches, StringBaseSubstringMatches, Bool, \ | 191 V(_StringBase, _substringMatches, StringBaseSubstringMatches, Bool, \ |
192 0x2f851deb) \ | 192 0x11c6ae0c) \ |
193 V(_StringBase, [], StringBaseCharAt, Dynamic, 0x2cf92c45) \ | 193 V(_StringBase, [], StringBaseCharAt, Dynamic, 0x14da5924) \ |
194 V(_OneByteString, get:hashCode, OneByteString_getHashCode, Smi, 0x78c2eb88) \ | 194 V(_OneByteString, get:hashCode, OneByteString_getHashCode, Smi, 0x78c35fe7) \ |
195 V(_OneByteString, _substringUncheckedNative, \ | 195 V(_OneByteString, _substringUncheckedNative, \ |
196 OneByteString_substringUnchecked, OneByteString, 0x638c3722) \ | 196 OneByteString_substringUnchecked, OneByteString, 0x638c3722) \ |
197 V(_OneByteString, _setAt, OneByteStringSetAt, Dynamic, 0x452533ef) \ | 197 V(_OneByteString, _setAt, OneByteStringSetAt, Dynamic, 0x5a09e6b0) \ |
198 V(_OneByteString, _allocate, OneByteString_allocate, OneByteString, \ | 198 V(_OneByteString, _allocate, OneByteString_allocate, OneByteString, \ |
199 0x3d4fad8a) \ | 199 0x51941c8b) \ |
200 V(_OneByteString, ==, OneByteString_equality, Bool, 0x3f59b700) \ | 200 V(_OneByteString, ==, OneByteString_equality, Bool, 0x4719e83f) \ |
201 V(_TwoByteString, ==, TwoByteString_equality, Bool, 0x3f59b700) \ | 201 V(_TwoByteString, ==, TwoByteString_equality, Bool, 0x4719e83f) \ |
202 | 202 |
203 | 203 |
204 #define CORE_INTEGER_LIB_INTRINSIC_LIST(V) \ | 204 #define CORE_INTEGER_LIB_INTRINSIC_LIST(V) \ |
205 V(_IntegerImplementation, _addFromInteger, Integer_addFromInteger, \ | 205 V(_IntegerImplementation, _addFromInteger, Integer_addFromInteger, \ |
206 Dynamic, 0x79bde54b) \ | 206 Dynamic, 0x79bde54b) \ |
207 V(_IntegerImplementation, +, Integer_add, Dynamic, 0x0e4300c2) \ | 207 V(_IntegerImplementation, +, Integer_add, Dynamic, 0x3f4fdb64) \ |
208 V(_IntegerImplementation, _subFromInteger, Integer_subFromInteger, Dynamic, \ | 208 V(_IntegerImplementation, _subFromInteger, Integer_subFromInteger, Dynamic, \ |
209 0x3918c1af) \ | 209 0x3918c1af) \ |
210 V(_IntegerImplementation, -, Integer_sub, Dynamic, 0x0ce294c3) \ | 210 V(_IntegerImplementation, -, Integer_sub, Dynamic, 0x3def6f65) \ |
211 V(_IntegerImplementation, _mulFromInteger, Integer_mulFromInteger, \ | 211 V(_IntegerImplementation, _mulFromInteger, Integer_mulFromInteger, \ |
212 Dynamic, 0x791ecebc) \ | 212 Dynamic, 0x791ecebc) \ |
213 V(_IntegerImplementation, *, Integer_mul, Dynamic, 0x4d8e01a4) \ | 213 V(_IntegerImplementation, *, Integer_mul, Dynamic, 0x7e9adc46) \ |
214 V(_IntegerImplementation, _moduloFromInteger, Integer_moduloFromInteger, \ | 214 V(_IntegerImplementation, _moduloFromInteger, Integer_moduloFromInteger, \ |
215 Dynamic, 0x2e72f552) \ | 215 Dynamic, 0x2e72f552) \ |
216 V(_IntegerImplementation, ~/, Integer_truncDivide, Dynamic, 0x3caf6780) \ | 216 V(_IntegerImplementation, ~/, Integer_truncDivide, Dynamic, 0x142c2c84) \ |
217 V(_IntegerImplementation, unary-, Integer_negate, Dynamic, 0x59dce57c) \ | 217 V(_IntegerImplementation, unary-, Integer_negate, Dynamic, 0x4e346e3b) \ |
218 V(_IntegerImplementation, _bitAndFromInteger, Integer_bitAndFromInteger, \ | 218 V(_IntegerImplementation, _bitAndFromInteger, Integer_bitAndFromInteger, \ |
219 Dynamic, 0x1dfbe172) \ | 219 Dynamic, 0x1dfbe172) \ |
220 V(_IntegerImplementation, &, Integer_bitAnd, Dynamic, 0x596a453e) \ | 220 V(_IntegerImplementation, &, Integer_bitAnd, Dynamic, 0x0a771fe0) \ |
221 V(_IntegerImplementation, _bitOrFromInteger, Integer_bitOrFromInteger, \ | 221 V(_IntegerImplementation, _bitOrFromInteger, Integer_bitOrFromInteger, \ |
222 Dynamic, 0x3d79aa1c) \ | 222 Dynamic, 0x3d79aa1c) \ |
223 V(_IntegerImplementation, |, Integer_bitOr, Dynamic, 0x071e153c) \ | 223 V(_IntegerImplementation, |, Integer_bitOr, Dynamic, 0x382aefde) \ |
224 V(_IntegerImplementation, _bitXorFromInteger, Integer_bitXorFromInteger, \ | 224 V(_IntegerImplementation, _bitXorFromInteger, Integer_bitXorFromInteger, \ |
225 Dynamic, 0x4fd73f45) \ | 225 Dynamic, 0x4fd73f45) \ |
226 V(_IntegerImplementation, ^, Integer_bitXor, Dynamic, 0x0c8aeb3d) \ | 226 V(_IntegerImplementation, ^, Integer_bitXor, Dynamic, 0x3d97c5df) \ |
227 V(_IntegerImplementation, _greaterThanFromInteger, \ | 227 V(_IntegerImplementation, _greaterThanFromInteger, \ |
228 Integer_greaterThanFromInt, Bool, 0x2e801bc8) \ | 228 Integer_greaterThanFromInt, Bool, 0x2e801bc8) \ |
229 V(_IntegerImplementation, >, Integer_greaterThan, Bool, 0x28287b8f) \ | 229 V(_IntegerImplementation, >, Integer_greaterThan, Bool, 0x69e51670) \ |
230 V(_IntegerImplementation, ==, Integer_equal, Bool, 0x103da147) \ | 230 V(_IntegerImplementation, ==, Integer_equal, Bool, 0x00421268) \ |
231 V(_IntegerImplementation, _equalToInteger, Integer_equalToInteger, Bool, \ | 231 V(_IntegerImplementation, _equalToInteger, Integer_equalToInteger, Bool, \ |
232 0x7773d51d) \ | 232 0x7773d51d) \ |
233 V(_IntegerImplementation, <, Integer_lessThan, Bool, 0x26dda4bc) \ | 233 V(_IntegerImplementation, <, Integer_lessThan, Bool, 0x2e9d61bb) \ |
234 V(_IntegerImplementation, <=, Integer_lessEqualThan, Bool, 0x1e869d20) \ | 234 V(_IntegerImplementation, <=, Integer_lessEqualThan, Bool, 0x099e4442) \ |
235 V(_IntegerImplementation, >=, Integer_greaterEqualThan, Bool, 0x6c317340) \ | 235 V(_IntegerImplementation, >=, Integer_greaterEqualThan, Bool, 0x57491a62) \ |
236 V(_IntegerImplementation, <<, Integer_shl, Dynamic, 0x4334dfc0) \ | 236 V(_IntegerImplementation, <<, Integer_shl, Dynamic, 0x7441ba62) \ |
237 V(_IntegerImplementation, >>, Integer_sar, Dynamic, 0x4a2583a1) \ | 237 V(_IntegerImplementation, >>, Integer_sar, Dynamic, 0x7b325e43) \ |
238 V(_Double, toInt, DoubleToInteger, Dynamic, 0x26ef344b) | 238 V(_Double, toInt, DoubleToInteger, Dynamic, 0x26ef344b) |
239 | 239 |
240 | 240 |
241 #define MATH_LIB_INTRINSIC_LIST(V) \ | 241 #define MATH_LIB_INTRINSIC_LIST(V) \ |
242 V(::, sqrt, MathSqrt, Double, 0x18e8d5f6) \ | 242 V(::, sqrt, MathSqrt, Double, 0x18e8d5f6) \ |
243 V(_Random, _nextState, Random_nextState, Dynamic, 0x1e4b0103) \ | 243 V(_Random, _nextState, Random_nextState, Dynamic, 0x1fffd9a2) \ |
244 | 244 |
245 #define GRAPH_MATH_LIB_INTRINSIC_LIST(V) \ | 245 #define GRAPH_MATH_LIB_INTRINSIC_LIST(V) \ |
246 V(::, sin, MathSin, Double, 0x0000fe08) \ | 246 V(::, sin, MathSin, Double, 0x0000fe08) \ |
247 V(::, cos, MathCos, Double, 0x7794b33e) \ | 247 V(::, cos, MathCos, Double, 0x7794b33e) \ |
248 V(::, tan, MathTan, Double, 0x4c1b72fd) \ | 248 V(::, tan, MathTan, Double, 0x4c1b72fd) \ |
249 V(::, asin, MathAsin, Double, 0x640d48ad) \ | 249 V(::, asin, MathAsin, Double, 0x640d48ad) \ |
250 V(::, acos, MathAcos, Double, 0x42d46f81) \ | 250 V(::, acos, MathAcos, Double, 0x42d46f81) \ |
251 V(::, atan, MathAtan, Double, 0x4223f879) \ | 251 V(::, atan, MathAtan, Double, 0x4223f879) \ |
252 V(::, atan2, MathAtan2, Double, 0x3553fb61) \ | 252 V(::, atan2, MathAtan2, Double, 0x3553fb61) \ |
253 | 253 |
254 #define TYPED_DATA_LIB_INTRINSIC_LIST(V) \ | 254 #define TYPED_DATA_LIB_INTRINSIC_LIST(V) \ |
255 V(Int8List, ., TypedData_Int8Array_factory, TypedDataInt8Array, 0x2e7749e3) \ | 255 V(Int8List, ., TypedData_Int8Array_factory, TypedDataInt8Array, 0x165876c2) \ |
256 V(Uint8List, ., TypedData_Uint8Array_factory, TypedDataUint8Array, \ | 256 V(Uint8List, ., TypedData_Uint8Array_factory, TypedDataUint8Array, \ |
257 0x6ab75439) \ | 257 0x52988118) \ |
258 V(Uint8ClampedList, ., TypedData_Uint8ClampedArray_factory, \ | 258 V(Uint8ClampedList, ., TypedData_Uint8ClampedArray_factory, \ |
259 TypedDataUint8ClampedArray, 0x183129d7) \ | 259 TypedDataUint8ClampedArray, 0x001256b6) \ |
260 V(Int16List, ., TypedData_Int16Array_factory, TypedDataInt16Array, \ | 260 V(Int16List, ., TypedData_Int16Array_factory, TypedDataInt16Array, \ |
261 0x14b563ea) \ | 261 0x7c9690c9) \ |
262 V(Uint16List, ., TypedData_Uint16Array_factory, TypedDataUint16Array, \ | 262 V(Uint16List, ., TypedData_Uint16Array_factory, TypedDataUint16Array, \ |
263 0x07456be4) \ | 263 0x6f2698c3) \ |
264 V(Int32List, ., TypedData_Int32Array_factory, TypedDataInt32Array, \ | 264 V(Int32List, ., TypedData_Int32Array_factory, TypedDataInt32Array, \ |
265 0x5bd49250) \ | 265 0x43b5bf2f) \ |
266 V(Uint32List, ., TypedData_Uint32Array_factory, \ | 266 V(Uint32List, ., TypedData_Uint32Array_factory, \ |
267 TypedDataUint32Array, 0x3c59b3a4) \ | 267 TypedDataUint32Array, 0x243ae083) \ |
268 V(Int64List, ., TypedData_Int64Array_factory, \ | 268 V(Int64List, ., TypedData_Int64Array_factory, \ |
269 TypedDataInt64Array, 0x57d85ac7) \ | 269 TypedDataInt64Array, 0x3fb987a6) \ |
270 V(Uint64List, ., TypedData_Uint64Array_factory, \ | 270 V(Uint64List, ., TypedData_Uint64Array_factory, \ |
271 TypedDataUint64Array, 0x2c093004) \ | 271 TypedDataUint64Array, 0x13ea5ce3) \ |
272 V(Float32List, ., TypedData_Float32Array_factory, \ | 272 V(Float32List, ., TypedData_Float32Array_factory, \ |
273 TypedDataFloat32Array, 0x738e124b) \ | 273 TypedDataFloat32Array, 0x5b6f3f2a) \ |
274 V(Float64List, ., TypedData_Float64Array_factory, \ | 274 V(Float64List, ., TypedData_Float64Array_factory, \ |
275 TypedDataFloat64Array, 0x501be4f1) \ | 275 TypedDataFloat64Array, 0x37fd11d0) \ |
276 V(Float32x4List, ., TypedData_Float32x4Array_factory, \ | 276 V(Float32x4List, ., TypedData_Float32x4Array_factory, \ |
277 TypedDataFloat32x4Array, 0x7a7dd718) \ | 277 TypedDataFloat32x4Array, 0x625f03f7) \ |
278 V(Int32x4List, ., TypedData_Int32x4Array_factory, \ | 278 V(Int32x4List, ., TypedData_Int32x4Array_factory, \ |
279 TypedDataInt32x4Array, 0x1e0dca48) \ | 279 TypedDataInt32x4Array, 0x05eef727) \ |
280 V(Float64x2List, ., TypedData_Float64x2Array_factory, \ | 280 V(Float64x2List, ., TypedData_Float64x2Array_factory, \ |
281 TypedDataFloat64x2Array, 0x18cbf4d9) \ | 281 TypedDataFloat64x2Array, 0x00ad21b8) \ |
282 | 282 |
283 #define GRAPH_TYPED_DATA_INTRINSICS_LIST(V) \ | 283 #define GRAPH_TYPED_DATA_INTRINSICS_LIST(V) \ |
284 V(Uint8List, [], Uint8ArrayGetIndexed, Smi, 0x027603ed) \ | 284 V(Uint8List, [], Uint8ArrayGetIndexed, Smi, 0x37641eeb) \ |
285 V(Uint8List, []=, Uint8ArraySetIndexed, Dynamic, 0x060d5256) \ | 285 V(Uint8List, []=, Uint8ArraySetIndexed, Dynamic, 0x68c36836) \ |
286 V(_ExternalUint8Array, [], ExternalUint8ArrayGetIndexed, Smi, 0x027603ed) \ | 286 V(_ExternalUint8Array, [], ExternalUint8ArrayGetIndexed, Smi, 0x37641eeb) \ |
287 V(_ExternalUint8Array, []=, ExternalUint8ArraySetIndexed, Dynamic, \ | 287 V(_ExternalUint8Array, []=, ExternalUint8ArraySetIndexed, Dynamic, \ |
288 0x060d5256) \ | 288 0x68c36836) \ |
289 V(Uint32List, [], Uint32ArrayGetIndexed, Dynamic, 0x6040f7fb) \ | 289 V(Uint32List, [], Uint32ArrayGetIndexed, Dynamic, 0x152f12f9) \ |
290 V(Uint32List, []=, Uint32ArraySetIndexed, Dynamic, 0x3a4e1119) \ | 290 V(Uint32List, []=, Uint32ArraySetIndexed, Dynamic, 0x1d0426f9) \ |
291 V(Float64List, [], Float64ArrayGetIndexed, Double, 0x7a27098d) \ | 291 V(Float64List, [], Float64ArrayGetIndexed, Double, 0x2f15248b) \ |
292 V(Float64List, []=, Float64ArraySetIndexed, Dynamic, 0x139b2465) \ | 292 V(Float64List, []=, Float64ArraySetIndexed, Dynamic, 0x6b2fda85) \ |
293 V(_TypedList, get:length, TypedDataLength, Smi, 0x2090dc1a) \ | 293 V(_TypedList, get:length, TypedDataLength, Smi, 0x20915079) \ |
294 V(Float32x4, get:x, Float32x4ShuffleX, Double, 0x63d0c13f) \ | 294 V(Float32x4, get:x, Float32x4ShuffleX, Double, 0x63d1359e) \ |
295 V(Float32x4, get:y, Float32x4ShuffleY, Double, 0x20343b1b) \ | 295 V(Float32x4, get:y, Float32x4ShuffleY, Double, 0x2034af7a) \ |
296 V(Float32x4, get:z, Float32x4ShuffleZ, Double, 0x13181dba) \ | 296 V(Float32x4, get:z, Float32x4ShuffleZ, Double, 0x13189219) \ |
297 V(Float32x4, get:w, Float32x4ShuffleW, Double, 0x69895020) \ | 297 V(Float32x4, get:w, Float32x4ShuffleW, Double, 0x6989c47f) \ |
298 V(Float32x4, _mul, Float32x4Mul, Float32x4, 0x028d3146) \ | 298 V(Float32x4, _mul, Float32x4Mul, Float32x4, 0x028d3146) \ |
299 V(Float32x4, _sub, Float32x4Sub, Float32x4, 0x062f78f7) \ | 299 V(Float32x4, _sub, Float32x4Sub, Float32x4, 0x062f78f7) \ |
300 V(Float32x4, _add, Float32x4Add, Float32x4, 0x509f9006) \ | 300 V(Float32x4, _add, Float32x4Add, Float32x4, 0x509f9006) \ |
301 | 301 |
302 #define GRAPH_CORE_INTRINSICS_LIST(V) \ | 302 #define GRAPH_CORE_INTRINSICS_LIST(V) \ |
303 V(_List, get:length, ObjectArrayLength, Smi, 0x25943ad2) \ | 303 V(_List, get:length, ObjectArrayLength, Smi, 0x2594af31) \ |
304 V(_List, [], ObjectArrayGetIndexed, Dynamic, 0x157b4670) \ | 304 V(_List, [], ObjectArrayGetIndexed, Dynamic, 0x7d5c734f) \ |
305 V(_ImmutableList, get:length, ImmutableArrayLength, Smi, 0x25943ad2) \ | 305 V(_ImmutableList, get:length, ImmutableArrayLength, Smi, 0x2594af31) \ |
306 V(_ImmutableList, [], ImmutableArrayGetIndexed, Dynamic, 0x157b4670) \ | 306 V(_ImmutableList, [], ImmutableArrayGetIndexed, Dynamic, 0x7d5c734f) \ |
307 V(_GrowableList, get:length, GrowableArrayLength, Smi, 0x18dc9df6) \ | 307 V(_GrowableList, get:length, GrowableArrayLength, Smi, 0x18dd1255) \ |
308 V(_GrowableList, get:_capacity, GrowableArrayCapacity, Smi, 0x02734d82) \ | 308 V(_GrowableList, get:_capacity, GrowableArrayCapacity, Smi, 0x0273c1e1) \ |
309 V(_GrowableList, _setData, GrowableArraySetData, Dynamic, 0x0c854013) \ | 309 V(_GrowableList, _setData, GrowableArraySetData, Dynamic, 0x74666cf2) \ |
310 V(_GrowableList, _setLength, GrowableArraySetLength, Dynamic, 0x1401a7d6) \ | 310 V(_GrowableList, _setLength, GrowableArraySetLength, Dynamic, 0x7be2d4b5) \ |
311 V(_GrowableList, [], GrowableArrayGetIndexed, Dynamic, 0x74ad8832) \ | 311 V(_GrowableList, [], GrowableArrayGetIndexed, Dynamic, 0x5c8eb511) \ |
312 V(_GrowableList, []=, GrowableArraySetIndexed, Dynamic, 0x0d6cfe96) \ | 312 V(_GrowableList, []=, GrowableArraySetIndexed, Dynamic, 0x2a0356b6) \ |
313 V(_StringBase, get:length, StringBaseLength, Smi, 0x2a2c1b13) \ | 313 V(_StringBase, get:length, StringBaseLength, Smi, 0x2a2c8f72) \ |
314 V(_OneByteString, codeUnitAt, OneByteStringCodeUnitAt, Smi, 0x55a0a1f3) \ | 314 V(_OneByteString, codeUnitAt, OneByteStringCodeUnitAt, Smi, 0x55a0a1f3) \ |
315 V(_TwoByteString, codeUnitAt, TwoByteStringCodeUnitAt, Smi, 0x55a0a1f3) \ | 315 V(_TwoByteString, codeUnitAt, TwoByteStringCodeUnitAt, Smi, 0x55a0a1f3) \ |
316 V(_ExternalOneByteString, codeUnitAt, ExternalOneByteStringCodeUnitAt, \ | 316 V(_ExternalOneByteString, codeUnitAt, ExternalOneByteStringCodeUnitAt, \ |
317 Smi, 0x55a0a1f3) \ | 317 Smi, 0x55a0a1f3) \ |
318 V(_ExternalTwoByteString, codeUnitAt, ExternalTwoByteStringCodeUnitAt, \ | 318 V(_ExternalTwoByteString, codeUnitAt, ExternalTwoByteStringCodeUnitAt, \ |
319 Smi, 0x55a0a1f3) \ | 319 Smi, 0x55a0a1f3) \ |
320 V(_Double, unary-, DoubleFlipSignBit, Double, 0x6a4ab611) \ | 320 V(_Double, unary-, DoubleFlipSignBit, Double, 0x6bff8eb0) \ |
321 V(_Double, truncateToDouble, DoubleTruncate, Double, 0x2f27e5d3) \ | 321 V(_Double, truncateToDouble, DoubleTruncate, Double, 0x2f27e5d3) \ |
322 V(_Double, roundToDouble, DoubleRound, Double, 0x2f89c512) \ | 322 V(_Double, roundToDouble, DoubleRound, Double, 0x2f89c512) \ |
323 V(_Double, floorToDouble, DoubleFloor, Double, 0x6aa87a5f) \ | 323 V(_Double, floorToDouble, DoubleFloor, Double, 0x6aa87a5f) \ |
324 V(_Double, ceilToDouble, DoubleCeil, Double, 0x1b045e9e) \ | 324 V(_Double, ceilToDouble, DoubleCeil, Double, 0x1b045e9e) \ |
325 V(_Double, _modulo, DoubleMod, Double, 0x2e41c4fc) | 325 V(_Double, _modulo, DoubleMod, Double, 0x2e41c4fc) |
326 | 326 |
327 | 327 |
328 #define GRAPH_INTRINSICS_LIST(V) \ | 328 #define GRAPH_INTRINSICS_LIST(V) \ |
329 GRAPH_CORE_INTRINSICS_LIST(V) \ | 329 GRAPH_CORE_INTRINSICS_LIST(V) \ |
330 GRAPH_TYPED_DATA_INTRINSICS_LIST(V) \ | 330 GRAPH_TYPED_DATA_INTRINSICS_LIST(V) \ |
(...skipping 16 matching lines...) Expand all Loading... |
347 ALL_INTRINSICS_NO_INTEGER_LIB_LIST(V) \ | 347 ALL_INTRINSICS_NO_INTEGER_LIB_LIST(V) \ |
348 CORE_INTEGER_LIB_INTRINSIC_LIST(V) | 348 CORE_INTEGER_LIB_INTRINSIC_LIST(V) |
349 | 349 |
350 #define RECOGNIZED_LIST(V) \ | 350 #define RECOGNIZED_LIST(V) \ |
351 OTHER_RECOGNIZED_LIST(V) \ | 351 OTHER_RECOGNIZED_LIST(V) \ |
352 ALL_INTRINSICS_LIST(V) \ | 352 ALL_INTRINSICS_LIST(V) \ |
353 GRAPH_INTRINSICS_LIST(V) | 353 GRAPH_INTRINSICS_LIST(V) |
354 | 354 |
355 // A list of core function that should always be inlined. | 355 // A list of core function that should always be inlined. |
356 #define INLINE_WHITE_LIST(V) \ | 356 #define INLINE_WHITE_LIST(V) \ |
357 V(Object, ==, ObjectEquals, 0x11662ed8) \ | 357 V(Object, ==, ObjectEquals, 0x464c6a19) \ |
358 V(_List, get:length, ObjectArrayLength, 0x25943ad2) \ | 358 V(_List, get:length, ObjectArrayLength, 0x2594af31) \ |
359 V(_ImmutableList, get:length, ImmutableArrayLength, 0x25943ad2) \ | 359 V(_ImmutableList, get:length, ImmutableArrayLength, 0x2594af31) \ |
360 V(_TypedList, get:length, TypedDataLength, 0x2090dc1a) \ | 360 V(_TypedList, get:length, TypedDataLength, 0x20915079) \ |
361 V(_GrowableList, get:length, GrowableArrayLength, 0x18dc9df6) \ | 361 V(_GrowableList, get:length, GrowableArrayLength, 0x18dd1255) \ |
362 V(_GrowableList, get:_capacity, GrowableArrayCapacity, 0x02734d82) \ | 362 V(_GrowableList, get:_capacity, GrowableArrayCapacity, 0x0273c1e1) \ |
363 V(_GrowableList, add, GrowableListAdd, 0x0d1358ed) \ | 363 V(_GrowableList, add, GrowableListAdd, 0x350967cf) \ |
364 V(_GrowableList, removeLast, GrowableListRemoveLast, 0x135d7384) \ | 364 V(_GrowableList, removeLast, GrowableListRemoveLast, 0x14026de4) \ |
365 V(_StringBase, get:length, StringBaseLength, 0x2a2c1b13) \ | 365 V(_StringBase, get:length, StringBaseLength, 0x2a2c8f72) \ |
366 V(ListIterator, moveNext, ListIteratorMoveNext, 0x3f892e71) \ | 366 V(ListIterator, moveNext, ListIteratorMoveNext, 0x6ea649f2) \ |
367 V(_FixedSizeArrayIterator, moveNext, FixedListIteratorMoveNext, 0x5681c902) \ | 367 V(_FixedSizeArrayIterator, moveNext, FixedListIteratorMoveNext, 0x4738f1e2) \ |
368 V(_GrowableList, get:iterator, GrowableArrayIterator, 0x6db11a73) \ | 368 V(_GrowableList, get:iterator, GrowableArrayIterator, 0x64c204d5) \ |
369 V(_GrowableList, forEach, GrowableArrayForEach, 0x250036fe) \ | 369 V(_GrowableList, forEach, GrowableArrayForEach, 0x4cc8215b) \ |
370 V(_List, ., ObjectArrayAllocate, 0x63078b15) \ | 370 V(_List, ., ObjectArrayAllocate, 0x17edc656) \ |
371 V(_List, [], ObjectArrayGetIndexed, 0x157b4670) \ | 371 V(_List, [], ObjectArrayGetIndexed, 0x7d5c734f) \ |
372 V(_List, []=, ObjectArraySetIndexed, 0x34d2c72c) \ | 372 V(_List, []=, ObjectArraySetIndexed, 0x51691f4c) \ |
373 V(ListMixin, get:isEmpty, ListMixinIsEmpty, 0x787d9bc6) \ | 373 V(ListMixin, get:isEmpty, ListMixinIsEmpty, 0x7a327465) \ |
374 V(_List, get:iterator, ObjectArrayIterator, 0x119cf41a) \ | 374 V(_List, get:iterator, ObjectArrayIterator, 0x08adde7c) \ |
375 V(_List, forEach, ObjectArrayForEach, 0x0abce191) \ | 375 V(_List, forEach, ObjectArrayForEach, 0x4dfea652) \ |
376 V(_List, _slice, ObjectArraySlice, 0x3219e715) \ | 376 V(_List, _slice, ObjectArraySlice, 0x1781879a) \ |
377 V(_ImmutableList, get:iterator, ImmutableArrayIterator, 0x119cf41a) \ | 377 V(_ImmutableList, get:iterator, ImmutableArrayIterator, 0x08adde7c) \ |
378 V(_ImmutableList, forEach, ImmutableArrayForEach, 0x0abce191) \ | 378 V(_ImmutableList, forEach, ImmutableArrayForEach, 0x4dfea652) \ |
379 V(_ImmutableList, [], ImmutableArrayGetIndexed, 0x157b4670) \ | 379 V(_ImmutableList, [], ImmutableArrayGetIndexed, 0x7d5c734f) \ |
380 V(_GrowableList, [], GrowableArrayGetIndexed, 0x74ad8832) \ | 380 V(_GrowableList, [], GrowableArrayGetIndexed, 0x5c8eb511) \ |
381 V(_GrowableList, []=, GrowableArraySetIndexed, 0x0d6cfe96) \ | 381 V(_GrowableList, []=, GrowableArraySetIndexed, 0x2a0356b6) \ |
382 V(Float32List, [], Float32ArrayGetIndexed, 0x5686528f) \ | 382 V(Float32List, [], Float32ArrayGetIndexed, 0x0b746d8d) \ |
383 V(Float32List, []=, Float32ArraySetIndexed, 0x1b0d90df) \ | 383 V(Float32List, []=, Float32ArraySetIndexed, 0x72a246ff) \ |
384 V(Float64List, [], Float64ArrayGetIndexed, 0x7a27098d) \ | 384 V(Float64List, [], Float64ArrayGetIndexed, 0x2f15248b) \ |
385 V(Float64List, []=, Float64ArraySetIndexed, 0x139b2465) \ | 385 V(Float64List, []=, Float64ArraySetIndexed, 0x6b2fda85) \ |
386 V(Int8List, [], Int8ArrayGetIndexed, 0x069af8b3) \ | 386 V(Int8List, [], Int8ArrayGetIndexed, 0x3b8913b1) \ |
387 V(Int8List, []=, Int8ArraySetIndexed, 0x33994cd7) \ | 387 V(Int8List, []=, Int8ArraySetIndexed, 0x164f62b7) \ |
388 V(Uint8List, [], Uint8ArrayGetIndexed, 0x027603ed) \ | 388 V(Uint8List, [], Uint8ArrayGetIndexed, 0x37641eeb) \ |
389 V(Uint8List, []=, Uint8ArraySetIndexed, 0x060d5256) \ | 389 V(Uint8List, []=, Uint8ArraySetIndexed, 0x68c36836) \ |
390 V(Uint8ClampedList, [], Uint8ClampedArrayGetIndexed, 0x027603ed) \ | 390 V(Uint8ClampedList, [], Uint8ClampedArrayGetIndexed, 0x37641eeb) \ |
391 V(Uint8ClampedList, []=, Uint8ClampedArraySetIndexed, 0x28f5f058) \ | 391 V(Uint8ClampedList, []=, Uint8ClampedArraySetIndexed, 0x0bac0638) \ |
392 V(Uint16List, [], Uint16ArrayGetIndexed, 0x3ececa2f) \ | 392 V(Uint16List, [], Uint16ArrayGetIndexed, 0x73bce52d) \ |
393 V(Uint16List, []=, Uint16ArraySetIndexed, 0x5c3a0bb9) \ | 393 V(Uint16List, []=, Uint16ArraySetIndexed, 0x3ef02199) \ |
394 V(Int16List, [], Int16ArrayGetIndexed, 0x173cd6a1) \ | 394 V(Int16List, [], Int16ArrayGetIndexed, 0x4c2af19f) \ |
395 V(Int16List, []=, Int16ArraySetIndexed, 0x32f84e3c) \ | 395 V(Int16List, []=, Int16ArraySetIndexed, 0x15ae641c) \ |
396 V(Int32List, [], Int32ArrayGetIndexed, 0x262eef09) \ | 396 V(Int32List, [], Int32ArrayGetIndexed, 0x5b1d0a07) \ |
397 V(Int32List, []=, Int32ArraySetIndexed, 0x1b05b471) \ | 397 V(Int32List, []=, Int32ArraySetIndexed, 0x7dbbca51) \ |
398 V(Int64List, [], Int64ArrayGetIndexed, 0x0c0c939a) \ | 398 V(Int64List, [], Int64ArrayGetIndexed, 0x40faae98) \ |
399 V(Int64List, []=, Int64ArraySetIndexed, 0x3714d004) \ | 399 V(Int64List, []=, Int64ArraySetIndexed, 0x19cae5e4) \ |
400 V(_Uint8ArrayView, [], Uint8ArrayViewGetIndexed, 0x4fc6b3d3) \ | 400 V(_Uint8ArrayView, [], Uint8ArrayViewGetIndexed, 0x2845a951) \ |
401 V(_Uint8ArrayView, []=, Uint8ArrayViewSetIndexed, 0x2032fdf0) \ | 401 V(_Uint8ArrayView, []=, Uint8ArrayViewSetIndexed, 0x222f3bd0) \ |
402 V(_Int8ArrayView, [], Int8ArrayViewGetIndexed, 0x12036952) \ | 402 V(_Int8ArrayView, [], Int8ArrayViewGetIndexed, 0x6a825ed0) \ |
403 V(_Int8ArrayView, []=, Int8ArrayViewSetIndexed, 0x6d881658) \ | 403 V(_Int8ArrayView, []=, Int8ArrayViewSetIndexed, 0x6f845438) \ |
404 V(_ByteDataView, setInt8, ByteDataViewSetInt8, 0x275cbdca) \ | 404 V(_ByteDataView, setInt8, ByteDataViewSetInt8, 0x25ef3da9) \ |
405 V(_ByteDataView, setUint8, ByteDataViewSetUint8, 0x62774e77) \ | 405 V(_ByteDataView, setUint8, ByteDataViewSetUint8, 0x6109ce56) \ |
406 V(_ByteDataView, setInt16, ByteDataViewSetInt16, 0x7a43c6c2) \ | 406 V(_ByteDataView, setInt16, ByteDataViewSetInt16, 0x1bcee842) \ |
407 V(_ByteDataView, setUint16, ByteDataViewSetUint16, 0x64dd988f) \ | 407 V(_ByteDataView, setUint16, ByteDataViewSetUint16, 0x0668ba0f) \ |
408 V(_ByteDataView, setInt32, ByteDataViewSetInt32, 0x3363264a) \ | 408 V(_ByteDataView, setInt32, ByteDataViewSetInt32, 0x54ee47ca) \ |
409 V(_ByteDataView, setUint32, ByteDataViewSetUint32, 0x158f9899) \ | 409 V(_ByteDataView, setUint32, ByteDataViewSetUint32, 0x371aba19) \ |
410 V(_ByteDataView, setInt64, ByteDataViewSetInt64, 0x480f73a5) \ | 410 V(_ByteDataView, setInt64, ByteDataViewSetInt64, 0x699a9525) \ |
411 V(_ByteDataView, setUint64, ByteDataViewSetUint64, 0x5c23db8c) \ | 411 V(_ByteDataView, setUint64, ByteDataViewSetUint64, 0x7daefd0c) \ |
412 V(_ByteDataView, setFloat32, ByteDataViewSetFloat32, 0x4f76c49a) \ | 412 V(_ByteDataView, setFloat32, ByteDataViewSetFloat32, 0x0ba709fa) \ |
413 V(_ByteDataView, setFloat64, ByteDataViewSetFloat64, 0x5e1ddd4f) \ | 413 V(_ByteDataView, setFloat64, ByteDataViewSetFloat64, 0x1a4e22af) \ |
414 V(_ByteDataView, getInt8, ByteDataViewGetInt8, 0x01bac87d) \ | 414 V(_ByteDataView, getInt8, ByteDataViewGetInt8, 0x04a1ff5c) \ |
415 V(_ByteDataView, getUint8, ByteDataViewGetUint8, 0x129dab34) \ | 415 V(_ByteDataView, getUint8, ByteDataViewGetUint8, 0x1584e213) \ |
416 V(_ByteDataView, getInt16, ByteDataViewGetInt16, 0x60282377) \ | 416 V(_ByteDataView, getInt16, ByteDataViewGetInt16, 0x30e504fa) \ |
417 V(_ByteDataView, getUint16, ByteDataViewGetUint16, 0x10edcd89) \ | 417 V(_ByteDataView, getUint16, ByteDataViewGetUint16, 0x09b4c626) \ |
418 V(_ByteDataView, getInt32, ByteDataViewGetInt32, 0x79630f81) \ | 418 V(_ByteDataView, getInt32, ByteDataViewGetInt32, 0x4a1ff104) \ |
419 V(_ByteDataView, getUint32, ByteDataViewGetUint32, 0x220d3da8) \ | 419 V(_ByteDataView, getUint32, ByteDataViewGetUint32, 0x1ad43645) \ |
420 V(_ByteDataView, getInt64, ByteDataViewGetInt64, 0x757dd5c8) \ | 420 V(_ByteDataView, getInt64, ByteDataViewGetInt64, 0x463ab74b) \ |
421 V(_ByteDataView, getUint64, ByteDataViewGetUint64, 0x2fab992e) \ | 421 V(_ByteDataView, getUint64, ByteDataViewGetUint64, 0x287291cb) \ |
422 V(_ByteDataView, getFloat32, ByteDataViewGetFloat32, 0x387e9fc6) \ | 422 V(_ByteDataView, getFloat32, ByteDataViewGetFloat32, 0x2389d0c4) \ |
423 V(_ByteDataView, getFloat64, ByteDataViewGetFloat64, 0x5396432d) \ | 423 V(_ByteDataView, getFloat64, ByteDataViewGetFloat64, 0x3ea1742b) \ |
424 V(::, asin, MathAsin, 0x640d48ad) \ | 424 V(::, asin, MathAsin, 0x640d48ad) \ |
425 V(::, acos, MathAcos, 0x42d46f81) \ | 425 V(::, acos, MathAcos, 0x42d46f81) \ |
426 V(::, atan, MathAtan, 0x4223f879) \ | 426 V(::, atan, MathAtan, 0x4223f879) \ |
427 V(::, atan2, MathAtan2, 0x3553fb61) \ | 427 V(::, atan2, MathAtan2, 0x3553fb61) \ |
428 V(::, cos, MathCos, 0x7794b33e) \ | 428 V(::, cos, MathCos, 0x7794b33e) \ |
429 V(::, exp, MathExp, 0x59769f9d) \ | 429 V(::, exp, MathExp, 0x59769f9d) \ |
430 V(::, log, MathLog, 0x2c12654e) \ | 430 V(::, log, MathLog, 0x2c12654e) \ |
431 V(::, max, MathMax, 0x54121d6a) \ | 431 V(::, max, MathMax, 0x6a92342a) \ |
432 V(::, min, MathMin, 0x4276561c) \ | 432 V(::, min, MathMin, 0x125298bc) \ |
433 V(::, pow, MathPow, 0x7ab62ca7) \ | 433 V(::, pow, MathPow, 0x159452a4) \ |
434 V(::, sin, MathSin, 0x0000fe08) \ | 434 V(::, sin, MathSin, 0x0000fe08) \ |
435 V(::, sqrt, MathSqrt, 0x18e8d5f6) \ | 435 V(::, sqrt, MathSqrt, 0x18e8d5f6) \ |
436 V(::, tan, MathTan, 0x4c1b72fd) \ | 436 V(::, tan, MathTan, 0x4c1b72fd) \ |
437 V(Lists, copy, ListsCopy, 0x21a194fa) \ | 437 V(Lists, copy, ListsCopy, 0x714584f8) \ |
438 V(_Bigint, get:_neg, Bigint_getNeg, 0x7bf17a57) \ | 438 V(_Bigint, get:_neg, Bigint_getNeg, 0x7bf1eeb6) \ |
439 V(_Bigint, get:_used, Bigint_getUsed, 0x55041013) \ | 439 V(_Bigint, get:_used, Bigint_getUsed, 0x55048472) \ |
440 V(_Bigint, get:_digits, Bigint_getDigits, 0x46a6c1b3) \ | 440 V(_Bigint, get:_digits, Bigint_getDigits, 0x46a73612) \ |
441 V(_HashVMBase, get:_index, LinkedHashMap_getIndex, 0x7d6bb76b) \ | 441 V(_HashVMBase, get:_index, LinkedHashMap_getIndex, 0x7d6c2bca) \ |
442 V(_HashVMBase, set:_index, LinkedHashMap_setIndex, 0x4beb13f2) \ | 442 V(_HashVMBase, set:_index, LinkedHashMap_setIndex, 0x4810afd2) \ |
443 V(_HashVMBase, get:_data, LinkedHashMap_getData, 0x4bf5ccb3) \ | 443 V(_HashVMBase, get:_data, LinkedHashMap_getData, 0x4bf64112) \ |
444 V(_HashVMBase, set:_data, LinkedHashMap_setData, 0x6007556d) \ | 444 V(_HashVMBase, set:_data, LinkedHashMap_setData, 0x5c2cf14d) \ |
445 V(_HashVMBase, get:_usedData, LinkedHashMap_getUsedData, 0x15e70845) \ | 445 V(_HashVMBase, get:_usedData, LinkedHashMap_getUsedData, 0x15e77ca4) \ |
446 V(_HashVMBase, set:_usedData, LinkedHashMap_setUsedData, 0x3e8c6edc) \ | 446 V(_HashVMBase, set:_usedData, LinkedHashMap_setUsedData, 0x3ab20abc) \ |
447 V(_HashVMBase, get:_hashMask, LinkedHashMap_getHashMask, 0x35c5ac00) \ | 447 V(_HashVMBase, get:_hashMask, LinkedHashMap_getHashMask, 0x35c6205f) \ |
448 V(_HashVMBase, set:_hashMask, LinkedHashMap_setHashMask, 0x49adf69e) \ | 448 V(_HashVMBase, set:_hashMask, LinkedHashMap_setHashMask, 0x45d3927e) \ |
449 V(_HashVMBase, get:_deletedKeys, LinkedHashMap_getDeletedKeys, 0x306e6a79) \ | 449 V(_HashVMBase, get:_deletedKeys, LinkedHashMap_getDeletedKeys, 0x306eded8) \ |
450 V(_HashVMBase, set:_deletedKeys, LinkedHashMap_setDeletedKeys, 0x3fe95fc2) \ | 450 V(_HashVMBase, set:_deletedKeys, LinkedHashMap_setDeletedKeys, 0x3c0efba2) \ |
451 | 451 |
452 // A list of core function that should never be inlined. | 452 // A list of core function that should never be inlined. |
453 #define INLINE_BLACK_LIST(V) \ | 453 #define INLINE_BLACK_LIST(V) \ |
454 V(_Bigint, _lsh, Bigint_lsh, 0x5cd95513) \ | 454 V(_Bigint, _lsh, Bigint_lsh, 0x17995b55) \ |
455 V(_Bigint, _rsh, Bigint_rsh, 0x2d68d0e1) \ | 455 V(_Bigint, _rsh, Bigint_rsh, 0x0f8c6a42) \ |
456 V(_Bigint, _absAdd, Bigint_absAdd, 0x492f4865) \ | 456 V(_Bigint, _absAdd, Bigint_absAdd, 0x68288406) \ |
457 V(_Bigint, _absSub, Bigint_absSub, 0x174a3a34) \ | 457 V(_Bigint, _absSub, Bigint_absSub, 0x310791b3) \ |
458 V(_Bigint, _mulAdd, Bigint_mulAdd, 0x24ced3ee) \ | 458 V(_Bigint, _mulAdd, Bigint_mulAdd, 0x7d2ed4ef) \ |
459 V(_Bigint, _sqrAdd, Bigint_sqrAdd, 0x60c6b633) \ | 459 V(_Bigint, _sqrAdd, Bigint_sqrAdd, 0x0c6594b4) \ |
460 V(_Bigint, _estQuotientDigit, Bigint_estQuotientDigit, 0x2f867482) \ | 460 V(_Bigint, _estQuotientDigit, Bigint_estQuotientDigit, 0x11eb5686) \ |
461 V(_Montgomery, _mulMod, Montgomery_mulMod, 0x741bed13) \ | 461 V(_Montgomery, _mulMod, Montgomery_mulMod, 0x2c21d431) \ |
462 V(_Double, >, Double_greaterThan, 0x569b0a81) \ | 462 V(_Double, >, Double_greaterThan, 0x1b8e59a1) \ |
463 V(_Double, >=, Double_greaterEqualThan, 0x6c317340) \ | 463 V(_Double, >=, Double_greaterEqualThan, 0x57491a62) \ |
464 V(_Double, <, Double_lessThan, 0x26dda4bc) \ | 464 V(_Double, <, Double_lessThan, 0x2e9d61bb) \ |
465 V(_Double, <=, Double_lessEqualThan, 0x1e869d20) \ | 465 V(_Double, <=, Double_lessEqualThan, 0x099e4442) \ |
466 V(_Double, ==, Double_equal, 0x578a1a51) \ | 466 V(_Double, ==, Double_equal, 0x0a08d74f) \ |
467 V(_Double, +, Double_add, 0x4bac5dd5) \ | 467 V(_Double, +, Double_add, 0x109facf5) \ |
468 V(_Double, -, Double_sub, 0x62052dbb) \ | 468 V(_Double, -, Double_sub, 0x26f87cdb) \ |
469 V(_Double, *, Double_mul, 0x23d068d8) \ | 469 V(_Double, *, Double_mul, 0x68c3b7f8) \ |
470 V(_Double, /, Double_div, 0x48bac1dc) \ | 470 V(_Double, /, Double_div, 0x0dae10fc) \ |
471 V(_IntegerImplementation, +, Integer_add, 0x0e4300c2) \ | 471 V(_IntegerImplementation, +, Integer_add, 0x3f4fdb64) \ |
472 V(_IntegerImplementation, -, Integer_sub, 0x0ce294c3) \ | 472 V(_IntegerImplementation, -, Integer_sub, 0x3def6f65) \ |
473 V(_IntegerImplementation, *, Integer_mul, 0x4d8e01a4) \ | 473 V(_IntegerImplementation, *, Integer_mul, 0x7e9adc46) \ |
474 V(_IntegerImplementation, ~/, Integer_truncDivide, 0x3caf6780) \ | 474 V(_IntegerImplementation, ~/, Integer_truncDivide, 0x142c2c84) \ |
475 V(_IntegerImplementation, unary-, Integer_negate, 0x59dce57c) \ | 475 V(_IntegerImplementation, unary-, Integer_negate, 0x4e346e3b) \ |
476 V(_IntegerImplementation, &, Integer_bitAnd, 0x596a453e) \ | 476 V(_IntegerImplementation, &, Integer_bitAnd, 0x0a771fe0) \ |
477 V(_IntegerImplementation, |, Integer_bitOr, 0x071e153c) \ | 477 V(_IntegerImplementation, |, Integer_bitOr, 0x382aefde) \ |
478 V(_IntegerImplementation, ^, Integer_bitXor, 0x0c8aeb3d) \ | 478 V(_IntegerImplementation, ^, Integer_bitXor, 0x3d97c5df) \ |
479 V(_IntegerImplementation, >, Integer_greaterThan, 0x28287b8f) \ | 479 V(_IntegerImplementation, >, Integer_greaterThan, 0x69e51670) \ |
480 V(_IntegerImplementation, ==, Integer_equal, 0x103da147) \ | 480 V(_IntegerImplementation, ==, Integer_equal, 0x00421268) \ |
481 V(_IntegerImplementation, <, Integer_lessThan, 0x26dda4bc) \ | 481 V(_IntegerImplementation, <, Integer_lessThan, 0x2e9d61bb) \ |
482 V(_IntegerImplementation, <=, Integer_lessEqualThan, 0x1e869d20) \ | 482 V(_IntegerImplementation, <=, Integer_lessEqualThan, 0x099e4442) \ |
483 V(_IntegerImplementation, >=, Integer_greaterEqualThan, 0x6c317340) \ | 483 V(_IntegerImplementation, >=, Integer_greaterEqualThan, 0x57491a62) \ |
484 V(_IntegerImplementation, <<, Integer_shl, 0x4334dfc0) \ | 484 V(_IntegerImplementation, <<, Integer_shl, 0x7441ba62) \ |
485 V(_IntegerImplementation, >>, Integer_sar, 0x4a2583a1) \ | 485 V(_IntegerImplementation, >>, Integer_sar, 0x7b325e43) \ |
486 | 486 |
487 // A list of core functions that internally dispatch based on received id. | 487 // A list of core functions that internally dispatch based on received id. |
488 #define POLYMORPHIC_TARGET_LIST(V) \ | 488 #define POLYMORPHIC_TARGET_LIST(V) \ |
489 V(_StringBase, [], StringBaseCharAt, 0x2cf92c45) \ | 489 V(_StringBase, [], StringBaseCharAt, 0x14da5924) \ |
490 V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 0x59e7291d) \ | 490 V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 0x59e7291d) \ |
491 V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 0x38d3e5bf) \ | 491 V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 0x38d3e5bf) \ |
492 V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 0x19dde22c) \ | 492 V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 0x19dde22c) \ |
493 V(_TypedList, _getUint16, ByteArrayBaseGetUint16, 0x4f3dbe58) \ | 493 V(_TypedList, _getUint16, ByteArrayBaseGetUint16, 0x4f3dbe58) \ |
494 V(_TypedList, _getInt32, ByteArrayBaseGetInt32, 0x082db131) \ | 494 V(_TypedList, _getInt32, ByteArrayBaseGetInt32, 0x082db131) \ |
495 V(_TypedList, _getUint32, ByteArrayBaseGetUint32, 0x1dcbfb98) \ | 495 V(_TypedList, _getUint32, ByteArrayBaseGetUint32, 0x1dcbfb98) \ |
496 V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 0x63b56e15) \ | 496 V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 0x63b56e15) \ |
497 V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 0x399dacf8) \ | 497 V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 0x399dacf8) \ |
498 V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 0x4761a5be) \ | 498 V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 0x4761a5be) \ |
499 V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 0x3053e92c) \ | 499 V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 0x3053e92c) \ |
500 V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 0x4e82d1e9) \ | 500 V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 0x636784aa) \ |
501 V(_TypedList, _setUint8, ByteArrayBaseSetInt8, 0x4f3587fc) \ | 501 V(_TypedList, _setUint8, ByteArrayBaseSetInt8, 0x641a3abd) \ |
502 V(_TypedList, _setInt16, ByteArrayBaseSetInt16, 0x6cef30ee) \ | 502 V(_TypedList, _setInt16, ByteArrayBaseSetInt16, 0x01d3e3af) \ |
503 V(_TypedList, _setUint16, ByteArrayBaseSetInt16, 0x64f938ac) \ | 503 V(_TypedList, _setUint16, ByteArrayBaseSetInt16, 0x79ddeb6d) \ |
504 V(_TypedList, _setInt32, ByteArrayBaseSetInt32, 0x3693c029) \ | 504 V(_TypedList, _setInt32, ByteArrayBaseSetInt32, 0x4b7872ea) \ |
505 V(_TypedList, _setUint32, ByteArrayBaseSetUint32, 0x74bbf260) \ | 505 V(_TypedList, _setUint32, ByteArrayBaseSetUint32, 0x09a0a521) \ |
506 V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 0x6e72f2a4) \ | 506 V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 0x0357a565) \ |
507 V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 0x4765edda) \ | 507 V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 0x5c4aa09b) \ |
508 V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 0x7cca4533) \ | 508 V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 0x11aef7f4) \ |
509 V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 0x7631bdbc) \ | 509 V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 0x0b16707d) \ |
510 | 510 |
511 // Forward declarations. | 511 // Forward declarations. |
512 class Function; | 512 class Function; |
513 | 513 |
514 // Class that recognizes the name and owner of a function and returns the | 514 // Class that recognizes the name and owner of a function and returns the |
515 // corresponding enum. See RECOGNIZED_LIST above for list of recognizable | 515 // corresponding enum. See RECOGNIZED_LIST above for list of recognizable |
516 // functions. | 516 // functions. |
517 class MethodRecognizer : public AllStatic { | 517 class MethodRecognizer : public AllStatic { |
518 public: | 518 public: |
519 enum Kind { | 519 enum Kind { |
(...skipping 21 matching lines...) Expand all Loading... |
541 ASSERT(f.CheckSourceFingerprint(#p0 ", " #p1, fp)) | 541 ASSERT(f.CheckSourceFingerprint(#p0 ", " #p1, fp)) |
542 | 542 |
543 #define CHECK_FINGERPRINT3(f, p0, p1, p2, fp) \ | 543 #define CHECK_FINGERPRINT3(f, p0, p1, p2, fp) \ |
544 ASSERT(f.CheckSourceFingerprint(#p0 ", " #p1 ", " #p2, fp)) | 544 ASSERT(f.CheckSourceFingerprint(#p0 ", " #p1 ", " #p2, fp)) |
545 #endif // defined(DART_NO_SNAPSHOT). | 545 #endif // defined(DART_NO_SNAPSHOT). |
546 | 546 |
547 | 547 |
548 // List of recognized list factories: | 548 // List of recognized list factories: |
549 // (factory-name-symbol, result-cid, fingerprint). | 549 // (factory-name-symbol, result-cid, fingerprint). |
550 #define RECOGNIZED_LIST_FACTORY_LIST(V) \ | 550 #define RECOGNIZED_LIST_FACTORY_LIST(V) \ |
551 V(_ListFactory, kArrayCid, 0x63078b15) \ | 551 V(_ListFactory, kArrayCid, 0x17edc656) \ |
552 V(_GrowableListWithData, kGrowableObjectArrayCid, 0x25a786de) \ | 552 V(_GrowableListWithData, kGrowableObjectArrayCid, 0x19f0f7fd) \ |
553 V(_GrowableListFactory, kGrowableObjectArrayCid, 0x4f4d4790) \ | 553 V(_GrowableListFactory, kGrowableObjectArrayCid, 0x7f96cc4f) \ |
554 V(_Int8ArrayFactory, kTypedDataInt8ArrayCid, 0x2e7749e3) \ | 554 V(_Int8ArrayFactory, kTypedDataInt8ArrayCid, 0x165876c2) \ |
555 V(_Uint8ArrayFactory, kTypedDataUint8ArrayCid, 0x6ab75439) \ | 555 V(_Uint8ArrayFactory, kTypedDataUint8ArrayCid, 0x52988118) \ |
556 V(_Uint8ClampedArrayFactory, kTypedDataUint8ClampedArrayCid, 0x183129d7) \ | 556 V(_Uint8ClampedArrayFactory, kTypedDataUint8ClampedArrayCid, 0x001256b6) \ |
557 V(_Int16ArrayFactory, kTypedDataInt16ArrayCid, 0x14b563ea) \ | 557 V(_Int16ArrayFactory, kTypedDataInt16ArrayCid, 0x7c9690c9) \ |
558 V(_Uint16ArrayFactory, kTypedDataUint16ArrayCid, 0x07456be4) \ | 558 V(_Uint16ArrayFactory, kTypedDataUint16ArrayCid, 0x6f2698c3) \ |
559 V(_Int32ArrayFactory, kTypedDataInt32ArrayCid, 0x5bd49250) \ | 559 V(_Int32ArrayFactory, kTypedDataInt32ArrayCid, 0x43b5bf2f) \ |
560 V(_Uint32ArrayFactory, kTypedDataUint32ArrayCid, 0x3c59b3a4) \ | 560 V(_Uint32ArrayFactory, kTypedDataUint32ArrayCid, 0x243ae083) \ |
561 V(_Int64ArrayFactory, kTypedDataInt64ArrayCid, 0x57d85ac7) \ | 561 V(_Int64ArrayFactory, kTypedDataInt64ArrayCid, 0x3fb987a6) \ |
562 V(_Uint64ArrayFactory, kTypedDataUint64ArrayCid, 0x2c093004) \ | 562 V(_Uint64ArrayFactory, kTypedDataUint64ArrayCid, 0x13ea5ce3) \ |
563 V(_Float64ArrayFactory, kTypedDataFloat64ArrayCid, 0x501be4f1) \ | 563 V(_Float64ArrayFactory, kTypedDataFloat64ArrayCid, 0x37fd11d0) \ |
564 V(_Float32ArrayFactory, kTypedDataFloat32ArrayCid, 0x738e124b) \ | 564 V(_Float32ArrayFactory, kTypedDataFloat32ArrayCid, 0x5b6f3f2a) \ |
565 V(_Float32x4ArrayFactory, kTypedDataFloat32x4ArrayCid, 0x7a7dd718) \ | 565 V(_Float32x4ArrayFactory, kTypedDataFloat32x4ArrayCid, 0x625f03f7) \ |
566 | 566 |
567 | 567 |
568 // Class that recognizes factories and returns corresponding result cid. | 568 // Class that recognizes factories and returns corresponding result cid. |
569 class FactoryRecognizer : public AllStatic { | 569 class FactoryRecognizer : public AllStatic { |
570 public: | 570 public: |
571 // Return kDynamicCid if factory is not recognized. | 571 // Return kDynamicCid if factory is not recognized. |
572 static intptr_t ResultCid(const Function& factory); | 572 static intptr_t ResultCid(const Function& factory); |
573 }; | 573 }; |
574 | 574 |
575 } // namespace dart | 575 } // namespace dart |
576 | 576 |
577 #endif // VM_METHOD_RECOGNIZER_H_ | 577 #endif // VM_METHOD_RECOGNIZER_H_ |
OLD | NEW |