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 RUNTIME_VM_METHOD_RECOGNIZER_H_ | 5 #ifndef RUNTIME_VM_METHOD_RECOGNIZER_H_ |
6 #define RUNTIME_VM_METHOD_RECOGNIZER_H_ | 6 #define RUNTIME_VM_METHOD_RECOGNIZER_H_ |
7 | 7 |
8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
9 | 9 |
10 namespace dart { | 10 namespace dart { |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 V(::, min, MathMin, Dynamic, 0x4276561c) \ | 50 V(::, min, MathMin, Dynamic, 0x4276561c) \ |
51 V(::, max, MathMax, Dynamic, 0x54121d6a) \ | 51 V(::, max, MathMax, Dynamic, 0x54121d6a) \ |
52 V(::, _doublePow, MathDoublePow, Double, 0x01d7b09e) \ | 52 V(::, _doublePow, MathDoublePow, Double, 0x01d7b09e) \ |
53 V(Float32x4, Float32x4., Float32x4Constructor, Float32x4, 0x05968999) \ | 53 V(Float32x4, Float32x4., Float32x4Constructor, Float32x4, 0x05968999) \ |
54 V(Float32x4, Float32x4.zero, Float32x4Zero, Float32x4, 0x472a4c46) \ | 54 V(Float32x4, Float32x4.zero, Float32x4Zero, Float32x4, 0x472a4c46) \ |
55 V(Float32x4, Float32x4.splat, Float32x4Splat, Float32x4, 0x00bba1a5) \ | 55 V(Float32x4, Float32x4.splat, Float32x4Splat, Float32x4, 0x00bba1a5) \ |
56 V(Float32x4, Float32x4.fromInt32x4Bits, Float32x4FromInt32x4Bits, Float32x4, \ | 56 V(Float32x4, Float32x4.fromInt32x4Bits, Float32x4FromInt32x4Bits, Float32x4, \ |
57 0x46d00995) \ | 57 0x46d00995) \ |
58 V(Float32x4, Float32x4.fromFloat64x2, Float32x4FromFloat64x2, Float32x4, \ | 58 V(Float32x4, Float32x4.fromFloat64x2, Float32x4FromFloat64x2, Float32x4, \ |
59 0x685a86d2) \ | 59 0x685a86d2) \ |
60 V(Float32x4, shuffle, Float32x4Shuffle, Float32x4, 0x7829101f) \ | 60 V(_Float32x4, shuffle, Float32x4Shuffle, Float32x4, 0x7829101f) \ |
61 V(Float32x4, shuffleMix, Float32x4ShuffleMix, Float32x4, 0x4182c06b) \ | 61 V(_Float32x4, shuffleMix, Float32x4ShuffleMix, Float32x4, 0x4182c06b) \ |
62 V(Float32x4, get:signMask, Float32x4GetSignMask, Dynamic, 0x1d07ca93) \ | 62 V(_Float32x4, get:signMask, Float32x4GetSignMask, Dynamic, 0x1d07ca93) \ |
63 V(Float32x4, _cmpequal, Float32x4Equal, Int32x4, 0x16ad0fea) \ | 63 V(_Float32x4, equal, Float32x4Equal, Int32x4, 0x11adb239) \ |
64 V(Float32x4, _cmpgt, Float32x4GreaterThan, Int32x4, 0x0641f613) \ | 64 V(_Float32x4, greaterThan, Float32x4GreaterThan, Int32x4, 0x48adaf58) \ |
65 V(Float32x4, _cmpgte, Float32x4GreaterThanOrEqual, Int32x4, 0x464b8ffc) \ | 65 V(_Float32x4, greaterThanOrEqual, Float32x4GreaterThanOrEqual, Int32x4, \ |
66 V(Float32x4, _cmplt, Float32x4LessThan, Int32x4, 0x3eecd0de) \ | 66 0x32db94ca) \ |
67 V(Float32x4, _cmplte, Float32x4LessThanOrEqual, Int32x4, 0x06384754) \ | 67 V(_Float32x4, lessThan, Float32x4LessThan, Int32x4, 0x425b000c) \ |
68 V(Float32x4, _cmpnequal, Float32x4NotEqual, Int32x4, 0x2f25ef10) \ | 68 V(_Float32x4, lessThanOrEqual, Float32x4LessThanOrEqual, Int32x4, \ |
69 V(Float32x4, _min, Float32x4Min, Float32x4, 0x1ee6c750) \ | 69 0x0278c2f8) \ |
70 V(Float32x4, _max, Float32x4Max, Float32x4, 0x4db6bbb4) \ | 70 V(_Float32x4, notEqual, Float32x4NotEqual, Int32x4, 0x2987cd26) \ |
71 V(Float32x4, _scale, Float32x4Scale, Float32x4, 0x52052a66) \ | 71 V(_Float32x4, min, Float32x4Min, Float32x4, 0x5ed74b6f) \ |
72 V(Float32x4, _sqrt, Float32x4Sqrt, Float32x4, 0x479f6b4a) \ | 72 V(_Float32x4, max, Float32x4Max, Float32x4, 0x68696442) \ |
73 V(Float32x4, _reciprocalSqrt, Float32x4ReciprocalSqrt, Float32x4, \ | 73 V(_Float32x4, scale, Float32x4Scale, Float32x4, 0x704e4122) \ |
74 0x6d35bfcf) \ | 74 V(_Float32x4, sqrt, Float32x4Sqrt, Float32x4, 0x2c967a6f) \ |
75 V(Float32x4, _reciprocal, Float32x4Reciprocal, Float32x4, 0x21a56839) \ | 75 V(_Float32x4, reciprocalSqrt, Float32x4ReciprocalSqrt, Float32x4, \ |
76 V(Float32x4, _negate, Float32x4Negate, Float32x4, 0x6cfd5db7) \ | 76 0x6264bfe8) \ |
77 V(Float32x4, _abs, Float32x4Absolute, Float32x4, 0x249b8078) \ | 77 V(_Float32x4, reciprocal, Float32x4Reciprocal, Float32x4, 0x3cd7e819) \ |
78 V(Float32x4, _clamp, Float32x4Clamp, Float32x4, 0x28b06c7a) \ | 78 V(_Float32x4, unary-, Float32x4Negate, Float32x4, 0x34431a14) \ |
79 V(Float32x4, withX, Float32x4WithX, Float32x4, 0x4e336aff) \ | 79 V(_Float32x4, abs, Float32x4Absolute, Float32x4, 0x471cdd87) \ |
80 V(Float32x4, withY, Float32x4WithY, Float32x4, 0x0a72b910) \ | 80 V(_Float32x4, clamp, Float32x4Clamp, Float32x4, 0x2cb30492) \ |
81 V(Float32x4, withZ, Float32x4WithZ, Float32x4, 0x31e93658) \ | 81 V(_Float32x4, withX, Float32x4WithX, Float32x4, 0x4e336aff) \ |
82 V(Float32x4, withW, Float32x4WithW, Float32x4, 0x60ddc105) \ | 82 V(_Float32x4, withY, Float32x4WithY, Float32x4, 0x0a72b910) \ |
| 83 V(_Float32x4, withZ, Float32x4WithZ, Float32x4, 0x31e93658) \ |
| 84 V(_Float32x4, withW, Float32x4WithW, Float32x4, 0x60ddc105) \ |
83 V(Float64x2, Float64x2., Float64x2Constructor, Float64x2, 0x193be61d) \ | 85 V(Float64x2, Float64x2., Float64x2Constructor, Float64x2, 0x193be61d) \ |
84 V(Float64x2, Float64x2.zero, Float64x2Zero, Float64x2, 0x7b2ed5df) \ | 86 V(Float64x2, Float64x2.zero, Float64x2Zero, Float64x2, 0x7b2ed5df) \ |
85 V(Float64x2, Float64x2.splat, Float64x2Splat, Float64x2, 0x2abbfcb2) \ | 87 V(Float64x2, Float64x2.splat, Float64x2Splat, Float64x2, 0x2abbfcb2) \ |
86 V(Float64x2, Float64x2.fromFloat32x4, Float64x2FromFloat32x4, Float64x2, \ | 88 V(Float64x2, Float64x2.fromFloat32x4, Float64x2FromFloat32x4, Float64x2, \ |
87 0x2f43d3a6) \ | 89 0x2f43d3a6) \ |
88 V(Float64x2, get:x, Float64x2GetX, Double, 0x58bfb39a) \ | 90 V(_Float64x2, get:x, Float64x2GetX, Double, 0x58bfb39a) \ |
89 V(Float64x2, get:y, Float64x2GetY, Double, 0x3cf4fcfa) \ | 91 V(_Float64x2, get:y, Float64x2GetY, Double, 0x3cf4fcfa) \ |
90 V(Float64x2, _negate, Float64x2Negate, Float64x2, 0x523937da) \ | 92 V(_Float64x2, unary-, Float64x2Negate, Float64x2, 0x3df2eecb) \ |
91 V(Float64x2, abs, Float64x2Abs, Float64x2, 0x031f9e47) \ | 93 V(_Float64x2, abs, Float64x2Abs, Float64x2, 0x031f9e47) \ |
92 V(Float64x2, sqrt, Float64x2Sqrt, Float64x2, 0x77f711dd) \ | 94 V(_Float64x2, sqrt, Float64x2Sqrt, Float64x2, 0x77f711dd) \ |
93 V(Float64x2, get:signMask, Float64x2GetSignMask, Dynamic, 0x27ddf18d) \ | 95 V(_Float64x2, get:signMask, Float64x2GetSignMask, Dynamic, 0x27ddf18d) \ |
94 V(Float64x2, scale, Float64x2Scale, Float64x2, 0x26830a61) \ | 96 V(_Float64x2, scale, Float64x2Scale, Float64x2, 0x26830a61) \ |
95 V(Float64x2, withX, Float64x2WithX, Float64x2, 0x1d2bcaf5) \ | 97 V(_Float64x2, withX, Float64x2WithX, Float64x2, 0x1d2bcaf5) \ |
96 V(Float64x2, withY, Float64x2WithY, Float64x2, 0x383ed6ac) \ | 98 V(_Float64x2, withY, Float64x2WithY, Float64x2, 0x383ed6ac) \ |
97 V(Float64x2, min, Float64x2Min, Float64x2, 0x28d7ddf6) \ | 99 V(_Float64x2, min, Float64x2Min, Float64x2, 0x28d7ddf6) \ |
98 V(Float64x2, max, Float64x2Max, Float64x2, 0x0bd74e5b) \ | 100 V(_Float64x2, max, Float64x2Max, Float64x2, 0x0bd74e5b) \ |
99 V(Int32x4, Int32x4., Int32x4Constructor, Int32x4, 0x26b199a7) \ | 101 V(Int32x4, Int32x4., Int32x4Constructor, Int32x4, 0x26b199a7) \ |
100 V(Int32x4, Int32x4.bool, Int32x4BoolConstructor, Int32x4, 0x1b55a5e1) \ | 102 V(Int32x4, Int32x4.bool, Int32x4BoolConstructor, Int32x4, 0x1b55a5e1) \ |
101 V(Int32x4, Int32x4.fromFloat32x4Bits, Int32x4FromFloat32x4Bits, Int32x4, \ | 103 V(Int32x4, Int32x4.fromFloat32x4Bits, Int32x4FromFloat32x4Bits, Int32x4, \ |
102 0x7e82564c) \ | 104 0x7e82564c) \ |
103 V(Int32x4, get:flagX, Int32x4GetFlagX, Bool, 0x563883c4) \ | 105 V(_Int32x4, get:flagX, Int32x4GetFlagX, Bool, 0x563883c4) \ |
104 V(Int32x4, get:flagY, Int32x4GetFlagY, Bool, 0x446f5e7a) \ | 106 V(_Int32x4, get:flagY, Int32x4GetFlagY, Bool, 0x446f5e7a) \ |
105 V(Int32x4, get:flagZ, Int32x4GetFlagZ, Bool, 0x20d61679) \ | 107 V(_Int32x4, get:flagZ, Int32x4GetFlagZ, Bool, 0x20d61679) \ |
106 V(Int32x4, get:flagW, Int32x4GetFlagW, Bool, 0x504478ac) \ | 108 V(_Int32x4, get:flagW, Int32x4GetFlagW, Bool, 0x504478ac) \ |
107 V(Int32x4, get:signMask, Int32x4GetSignMask, Dynamic, 0x2c1ec9e5) \ | 109 V(_Int32x4, get:signMask, Int32x4GetSignMask, Dynamic, 0x2c1ec9e5) \ |
108 V(Int32x4, shuffle, Int32x4Shuffle, Int32x4, 0x20bc0b16) \ | 110 V(_Int32x4, shuffle, Int32x4Shuffle, Int32x4, 0x20bc0b16) \ |
109 V(Int32x4, shuffleMix, Int32x4ShuffleMix, Int32x4, 0x5c7056e1) \ | 111 V(_Int32x4, shuffleMix, Int32x4ShuffleMix, Int32x4, 0x5c7056e1) \ |
110 V(Int32x4, select, Int32x4Select, Float32x4, 0x5c254e86) \ | 112 V(_Int32x4, select, Int32x4Select, Float32x4, 0x6b49654f) \ |
111 V(Int32x4, withFlagX, Int32x4WithFlagX, Int32x4, 0x0ef58fcf) \ | 113 V(_Int32x4, withFlagX, Int32x4WithFlagX, Int32x4, 0x0ef58fcf) \ |
112 V(Int32x4, withFlagY, Int32x4WithFlagY, Int32x4, 0x6485a9c4) \ | 114 V(_Int32x4, withFlagY, Int32x4WithFlagY, Int32x4, 0x6485a9c4) \ |
113 V(Int32x4, withFlagZ, Int32x4WithFlagZ, Int32x4, 0x267acdfa) \ | 115 V(_Int32x4, withFlagZ, Int32x4WithFlagZ, Int32x4, 0x267acdfa) \ |
114 V(Int32x4, withFlagW, Int32x4WithFlagW, Int32x4, 0x345ac675) \ | 116 V(_Int32x4, withFlagW, Int32x4WithFlagW, Int32x4, 0x345ac675) \ |
115 V(Int64List, [], Int64ArrayGetIndexed, Dynamic, 0x680ec59b) \ | 117 V(_Int64List, [], Int64ArrayGetIndexed, Dynamic, 0x680ec59b) \ |
116 V(Int64List, []=, Int64ArraySetIndexed, Dynamic, 0x0872fc15) \ | 118 V(_Int64List, []=, Int64ArraySetIndexed, Dynamic, 0x0872fc15) \ |
117 V(_Bigint, get:_neg, Bigint_getNeg, Bool, 0x355fa565) \ | 119 V(_Bigint, get:_neg, Bigint_getNeg, Bool, 0x355fa565) \ |
118 V(_Bigint, get:_used, Bigint_getUsed, Smi, 0x33b9dcd2) \ | 120 V(_Bigint, get:_used, Bigint_getUsed, Smi, 0x33b9dcd2) \ |
119 V(_Bigint, get:_digits, Bigint_getDigits, TypedDataUint32Array, 0x68de883a) \ | 121 V(_Bigint, get:_digits, Bigint_getDigits, TypedDataUint32Array, 0x68de883a) \ |
120 V(_HashVMBase, get:_index, LinkedHashMap_getIndex, Dynamic, 0x02468899) \ | 122 V(_HashVMBase, get:_index, LinkedHashMap_getIndex, Dynamic, 0x02468899) \ |
121 V(_HashVMBase, set:_index, LinkedHashMap_setIndex, Dynamic, 0x577d9e20) \ | 123 V(_HashVMBase, set:_index, LinkedHashMap_setIndex, Dynamic, 0x577d9e20) \ |
122 V(_HashVMBase, get:_data, LinkedHashMap_getData, Array, 0x2d7987ee) \ | 124 V(_HashVMBase, get:_data, LinkedHashMap_getData, Array, 0x2d7987ee) \ |
123 V(_HashVMBase, set:_data, LinkedHashMap_setData, Dynamic, 0x1674fb28) \ | 125 V(_HashVMBase, set:_data, LinkedHashMap_setData, Dynamic, 0x1674fb28) \ |
124 V(_HashVMBase, get:_usedData, LinkedHashMap_getUsedData, Smi, 0x0884b12f) \ | 126 V(_HashVMBase, get:_usedData, LinkedHashMap_getUsedData, Smi, 0x0884b12f) \ |
125 V(_HashVMBase, set:_usedData, LinkedHashMap_setUsedData, Dynamic, 0x66f792c6)\ | 127 V(_HashVMBase, set:_usedData, LinkedHashMap_setUsedData, Dynamic, 0x66f792c6)\ |
126 V(_HashVMBase, get:_hashMask, LinkedHashMap_getHashMask, Smi, 0x32f2c87d) \ | 128 V(_HashVMBase, get:_hashMask, LinkedHashMap_getHashMask, Smi, 0x32f2c87d) \ |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
259 V(Float64List, ., TypedData_Float64Array_factory, \ | 261 V(Float64List, ., TypedData_Float64Array_factory, \ |
260 TypedDataFloat64Array, 0x501be4f1) \ | 262 TypedDataFloat64Array, 0x501be4f1) \ |
261 V(Float32x4List, ., TypedData_Float32x4Array_factory, \ | 263 V(Float32x4List, ., TypedData_Float32x4Array_factory, \ |
262 TypedDataFloat32x4Array, 0x7a7dd718) \ | 264 TypedDataFloat32x4Array, 0x7a7dd718) \ |
263 V(Int32x4List, ., TypedData_Int32x4Array_factory, \ | 265 V(Int32x4List, ., TypedData_Int32x4Array_factory, \ |
264 TypedDataInt32x4Array, 0x1e0dca48) \ | 266 TypedDataInt32x4Array, 0x1e0dca48) \ |
265 V(Float64x2List, ., TypedData_Float64x2Array_factory, \ | 267 V(Float64x2List, ., TypedData_Float64x2Array_factory, \ |
266 TypedDataFloat64x2Array, 0x18cbf4d9) \ | 268 TypedDataFloat64x2Array, 0x18cbf4d9) \ |
267 | 269 |
268 #define GRAPH_TYPED_DATA_INTRINSICS_LIST(V) \ | 270 #define GRAPH_TYPED_DATA_INTRINSICS_LIST(V) \ |
269 V(Int8List, [], Int8ArrayGetIndexed, Smi, 0x5f9a4430) \ | 271 V(_Int8List, [], Int8ArrayGetIndexed, Smi, 0x5f9a4430) \ |
270 V(Int8List, []=, Int8ArraySetIndexed, Dynamic, 0x5f880110) \ | 272 V(_Int8List, []=, Int8ArraySetIndexed, Dynamic, 0x5f880110) \ |
271 V(Uint8List, [], Uint8ArrayGetIndexed, Smi, 0x1eb150d8) \ | 273 V(_Uint8List, [], Uint8ArrayGetIndexed, Smi, 0x1eb150d8) \ |
272 V(Uint8List, []=, Uint8ArraySetIndexed, Dynamic, 0x4cf76981) \ | 274 V(_Uint8List, []=, Uint8ArraySetIndexed, Dynamic, 0x4cf76981) \ |
273 V(_ExternalUint8Array, [], ExternalUint8ArrayGetIndexed, Smi, 0x1eb150d8) \ | 275 V(_ExternalUint8Array, [], ExternalUint8ArrayGetIndexed, Smi, 0x1eb150d8) \ |
274 V(_ExternalUint8Array, []=, ExternalUint8ArraySetIndexed, Dynamic, \ | 276 V(_ExternalUint8Array, []=, ExternalUint8ArraySetIndexed, Dynamic, \ |
275 0x4cf76981) \ | 277 0x4cf76981) \ |
276 V(Uint8ClampedList, [], Uint8ClampedArrayGetIndexed, Smi, 0x1eb150d8) \ | 278 V(_Uint8ClampedList, [], Uint8ClampedArrayGetIndexed, Smi, 0x1eb150d8) \ |
277 V(Uint8ClampedList, []=, Uint8ClampedArraySetIndexed, Dynamic, 0x2224afe1) \ | 279 V(_Uint8ClampedList, []=, Uint8ClampedArraySetIndexed, Dynamic, 0x2224afe1) \ |
278 V(_ExternalUint8ClampedArray, [], ExternalUint8ClampedArrayGetIndexed, \ | 280 V(_ExternalUint8ClampedArray, [], ExternalUint8ClampedArrayGetIndexed, \ |
279 Smi, 0x1eb150d8) \ | 281 Smi, 0x1eb150d8) \ |
280 V(_ExternalUint8ClampedArray, []=, ExternalUint8ClampedArraySetIndexed, \ | 282 V(_ExternalUint8ClampedArray, []=, ExternalUint8ClampedArraySetIndexed, \ |
281 Dynamic, 0x2224afe1) \ | 283 Dynamic, 0x2224afe1) \ |
282 V(Int16List, [], Int16ArrayGetIndexed, Smi, 0x74ea134c) \ | 284 V(_Int16List, [], Int16ArrayGetIndexed, Smi, 0x74ea134c) \ |
283 V(Int16List, []=, Int16ArraySetIndexed, Dynamic, 0x48e25661) \ | 285 V(_Int16List, []=, Int16ArraySetIndexed, Dynamic, 0x48e25661) \ |
284 V(Uint16List, [], Uint16ArrayGetIndexed, Smi, 0x756d9a97) \ | 286 V(_Uint16List, [], Uint16ArrayGetIndexed, Smi, 0x756d9a97) \ |
285 V(Uint16List, []=, Uint16ArraySetIndexed, Dynamic, 0x698f9d4f) \ | 287 V(_Uint16List, []=, Uint16ArraySetIndexed, Dynamic, 0x698f9d4f) \ |
286 V(Int32List, [], Int32ArrayGetIndexed, Dynamic, 0x61e49de1) \ | 288 V(_Int32List, [], Int32ArrayGetIndexed, Dynamic, 0x61e49de1) \ |
287 V(Int32List, []=, Int32ArraySetIndexed, Dynamic, 0x55736c63) \ | 289 V(_Int32List, []=, Int32ArraySetIndexed, Dynamic, 0x55736c63) \ |
288 V(Uint32List, [], Uint32ArrayGetIndexed, Dynamic, 0x2eaa22d2) \ | 290 V(_Uint32List, [], Uint32ArrayGetIndexed, Dynamic, 0x2eaa22d2) \ |
289 V(Uint32List, []=, Uint32ArraySetIndexed, Dynamic, 0x3c88eeb9) \ | 291 V(_Uint32List, []=, Uint32ArraySetIndexed, Dynamic, 0x3c88eeb9) \ |
290 V(Float64List, [], Float64ArrayGetIndexed, Double, 0x20950e8a) \ | 292 V(_Float64List, [], Float64ArrayGetIndexed, Double, 0x20950e8a) \ |
291 V(Float64List, []=, Float64ArraySetIndexed, Dynamic, 0x556a0727) \ | 293 V(_Float64List, []=, Float64ArraySetIndexed, Dynamic, 0x556a0727) \ |
292 V(Float32List, [], Float32ArrayGetIndexed, Double, 0x7101fa23) \ | 294 V(_Float32List, [], Float32ArrayGetIndexed, Double, 0x7101fa23) \ |
293 V(Float32List, []=, Float32ArraySetIndexed, Dynamic, 0x5e32c1eb) \ | 295 V(_Float32List, []=, Float32ArraySetIndexed, Dynamic, 0x5e32c1eb) \ |
294 V(Float32x4List, [], Float32x4ArrayGetIndexed, Float32x4, 0x28b0a7ef) \ | 296 V(_Float32x4List, [], Float32x4ArrayGetIndexed, Float32x4, 0x28b0a7ef) \ |
295 V(Float32x4List, []=, Float32x4ArraySetIndexed, Dynamic, 0x4babf032) \ | 297 V(_Float32x4List, []=, Float32x4ArraySetIndexed, Dynamic, 0x4babf032) \ |
296 V(Int32x4List, [], Int32x4ArrayGetIndexed, Int32x4, 0x619c79a0) \ | 298 V(_Int32x4List, [], Int32x4ArrayGetIndexed, Int32x4, 0x619c79a0) \ |
297 V(Int32x4List, []=, Int32x4ArraySetIndexed, Dynamic, 0x021bd16b) \ | 299 V(_Int32x4List, []=, Int32x4ArraySetIndexed, Dynamic, 0x021bd16b) \ |
298 V(Float64x2List, [], Float64x2ArrayGetIndexed, Float64x2, 0x7a6dd5e5) \ | 300 V(_Float64x2List, [], Float64x2ArrayGetIndexed, Float64x2, 0x7a6dd5e5) \ |
299 V(Float64x2List, []=, Float64x2ArraySetIndexed, Dynamic, 0x3c59fecb) \ | 301 V(_Float64x2List, []=, Float64x2ArraySetIndexed, Dynamic, 0x3c59fecb) \ |
300 V(_TypedList, get:length, TypedDataLength, Smi, 0x2090dc1a) \ | 302 V(_TypedList, get:length, TypedDataLength, Smi, 0x2090dc1a) \ |
301 V(Float32x4, get:x, Float32x4ShuffleX, Double, 0x63d0c13f) \ | 303 V(_Float32x4, get:x, Float32x4ShuffleX, Double, 0x63d0c13f) \ |
302 V(Float32x4, get:y, Float32x4ShuffleY, Double, 0x20343b1b) \ | 304 V(_Float32x4, get:y, Float32x4ShuffleY, Double, 0x20343b1b) \ |
303 V(Float32x4, get:z, Float32x4ShuffleZ, Double, 0x13181dba) \ | 305 V(_Float32x4, get:z, Float32x4ShuffleZ, Double, 0x13181dba) \ |
304 V(Float32x4, get:w, Float32x4ShuffleW, Double, 0x69895020) \ | 306 V(_Float32x4, get:w, Float32x4ShuffleW, Double, 0x69895020) \ |
305 V(Float32x4, _mul, Float32x4Mul, Float32x4, 0x6183ae12) \ | 307 V(_Float32x4, *, Float32x4Mul, Float32x4, 0x0e2a0ef4) \ |
306 V(Float32x4, _sub, Float32x4Sub, Float32x4, 0x22a8d3ea) \ | 308 V(_Float32x4, -, Float32x4Sub, Float32x4, 0x6edeeaa3) \ |
307 V(Float32x4, _add, Float32x4Add, Float32x4, 0x613c30f4) \ | 309 V(_Float32x4, +, Float32x4Add, Float32x4, 0x303a9943) \ |
308 | 310 |
309 #define GRAPH_CORE_INTRINSICS_LIST(V) \ | 311 #define GRAPH_CORE_INTRINSICS_LIST(V) \ |
310 V(_List, get:length, ObjectArrayLength, Smi, 0x25943ad2) \ | 312 V(_List, get:length, ObjectArrayLength, Smi, 0x25943ad2) \ |
311 V(_List, [], ObjectArrayGetIndexed, Dynamic, 0x157b4670) \ | 313 V(_List, [], ObjectArrayGetIndexed, Dynamic, 0x157b4670) \ |
312 V(_ImmutableList, get:length, ImmutableArrayLength, Smi, 0x25943ad2) \ | 314 V(_ImmutableList, get:length, ImmutableArrayLength, Smi, 0x25943ad2) \ |
313 V(_ImmutableList, [], ImmutableArrayGetIndexed, Dynamic, 0x157b4670) \ | 315 V(_ImmutableList, [], ImmutableArrayGetIndexed, Dynamic, 0x157b4670) \ |
314 V(_GrowableList, get:length, GrowableArrayLength, Smi, 0x18dc9df6) \ | 316 V(_GrowableList, get:length, GrowableArrayLength, Smi, 0x18dc9df6) \ |
315 V(_GrowableList, get:_capacity, GrowableArrayCapacity, Smi, 0x2e03d5a2) \ | 317 V(_GrowableList, get:_capacity, GrowableArrayCapacity, Smi, 0x2e03d5a2) \ |
316 V(_GrowableList, _setData, GrowableArraySetData, Dynamic, 0x6dfc498a) \ | 318 V(_GrowableList, _setData, GrowableArraySetData, Dynamic, 0x6dfc498a) \ |
317 V(_GrowableList, _setLength, GrowableArraySetLength, Dynamic, 0x257bfc1c) \ | 319 V(_GrowableList, _setLength, GrowableArraySetLength, Dynamic, 0x257bfc1c) \ |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
531 #define CHECK_FINGERPRINT2(f, p0, p1, fp) \ | 533 #define CHECK_FINGERPRINT2(f, p0, p1, fp) \ |
532 ASSERT(f.CheckSourceFingerprint(#p0 ", " #p1, fp)) | 534 ASSERT(f.CheckSourceFingerprint(#p0 ", " #p1, fp)) |
533 | 535 |
534 #define CHECK_FINGERPRINT3(f, p0, p1, p2, fp) \ | 536 #define CHECK_FINGERPRINT3(f, p0, p1, p2, fp) \ |
535 ASSERT(f.CheckSourceFingerprint(#p0 ", " #p1 ", " #p2, fp)) | 537 ASSERT(f.CheckSourceFingerprint(#p0 ", " #p1 ", " #p2, fp)) |
536 #endif // !defined(DART_PRECOMPILED_RUNTIME) | 538 #endif // !defined(DART_PRECOMPILED_RUNTIME) |
537 | 539 |
538 | 540 |
539 // clang-format off | 541 // clang-format off |
540 // List of recognized list factories: | 542 // List of recognized list factories: |
541 // (factory-name-symbol, result-cid, fingerprint). | 543 // (factory-name-symbol, class-name-string, constructor-name-string, |
| 544 // result-cid, fingerprint). |
542 #define RECOGNIZED_LIST_FACTORY_LIST(V) \ | 545 #define RECOGNIZED_LIST_FACTORY_LIST(V) \ |
543 V(_ListFactory, kArrayCid, 0x375519ad) \ | 546 V(_ListFactory, _List, ., kArrayCid, 0x375519ad) \ |
544 V(_GrowableListWithData, kGrowableObjectArrayCid, 0x401f3150) \ | 547 V(_GrowableListWithData, _GrowableList, .withData, kGrowableObjectArrayCid, \ |
545 V(_GrowableListFactory, kGrowableObjectArrayCid, 0x0b8d9feb) \ | 548 0x401f3150) \ |
546 V(_Int8ArrayFactory, kTypedDataInt8ArrayCid, 0x2e7749e3) \ | 549 V(_GrowableListFactory, _GrowableList, ., kGrowableObjectArrayCid, \ |
547 V(_Uint8ArrayFactory, kTypedDataUint8ArrayCid, 0x6ab75439) \ | 550 0x0b8d9feb) \ |
548 V(_Uint8ClampedArrayFactory, kTypedDataUint8ClampedArrayCid, 0x183129d7) \ | 551 V(_Int8ArrayFactory, Int8List, ., kTypedDataInt8ArrayCid, 0x2e7749e3) \ |
549 V(_Int16ArrayFactory, kTypedDataInt16ArrayCid, 0x14b563ea) \ | 552 V(_Uint8ArrayFactory, Uint8List, ., kTypedDataUint8ArrayCid, 0x6ab75439) \ |
550 V(_Uint16ArrayFactory, kTypedDataUint16ArrayCid, 0x07456be4) \ | 553 V(_Uint8ClampedArrayFactory, Uint8ClampedList, ., \ |
551 V(_Int32ArrayFactory, kTypedDataInt32ArrayCid, 0x5bd49250) \ | 554 kTypedDataUint8ClampedArrayCid, 0x183129d7) \ |
552 V(_Uint32ArrayFactory, kTypedDataUint32ArrayCid, 0x3c59b3a4) \ | 555 V(_Int16ArrayFactory, Int16List, ., kTypedDataInt16ArrayCid, 0x14b563ea) \ |
553 V(_Int64ArrayFactory, kTypedDataInt64ArrayCid, 0x57d85ac7) \ | 556 V(_Uint16ArrayFactory, Uint16List, ., kTypedDataUint16ArrayCid, 0x07456be4) \ |
554 V(_Uint64ArrayFactory, kTypedDataUint64ArrayCid, 0x2c093004) \ | 557 V(_Int32ArrayFactory, Int32List, ., kTypedDataInt32ArrayCid, 0x5bd49250) \ |
555 V(_Float64ArrayFactory, kTypedDataFloat64ArrayCid, 0x501be4f1) \ | 558 V(_Uint32ArrayFactory, Uint32List, ., kTypedDataUint32ArrayCid, 0x3c59b3a4) \ |
556 V(_Float32ArrayFactory, kTypedDataFloat32ArrayCid, 0x738e124b) \ | 559 V(_Int64ArrayFactory, Int64List, ., kTypedDataInt64ArrayCid, 0x57d85ac7) \ |
557 V(_Float32x4ArrayFactory, kTypedDataFloat32x4ArrayCid, 0x7a7dd718) | 560 V(_Uint64ArrayFactory, Uint64List, ., kTypedDataUint64ArrayCid, 0x2c093004) \ |
| 561 V(_Float64ArrayFactory, Float64List, ., kTypedDataFloat64ArrayCid, \ |
| 562 0x501be4f1) \ |
| 563 V(_Float32ArrayFactory, Float32List, ., kTypedDataFloat32ArrayCid, \ |
| 564 0x738e124b) \ |
| 565 V(_Float32x4ArrayFactory, Float32x4List, ., kTypedDataFloat32x4ArrayCid, \ |
| 566 0x7a7dd718) |
558 | 567 |
559 // clang-format on | 568 // clang-format on |
560 | 569 |
561 // Class that recognizes factories and returns corresponding result cid. | 570 // Class that recognizes factories and returns corresponding result cid. |
562 class FactoryRecognizer : public AllStatic { | 571 class FactoryRecognizer : public AllStatic { |
563 public: | 572 public: |
564 // Return kDynamicCid if factory is not recognized. | 573 // Return kDynamicCid if factory is not recognized. |
565 static intptr_t ResultCid(const Function& factory); | 574 static intptr_t ResultCid(const Function& factory); |
566 }; | 575 }; |
567 | 576 |
568 } // namespace dart | 577 } // namespace dart |
569 | 578 |
570 #endif // RUNTIME_VM_METHOD_RECOGNIZER_H_ | 579 #endif // RUNTIME_VM_METHOD_RECOGNIZER_H_ |
OLD | NEW |