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 { |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 IntegerLeftShiftWithMask32, 1634465017) \ | 45 IntegerLeftShiftWithMask32, 1634465017) \ |
46 V(_Double, truncateToDouble, DoubleTruncate, 791143891) \ | 46 V(_Double, truncateToDouble, DoubleTruncate, 791143891) \ |
47 V(_Double, roundToDouble, DoubleRound, 797558034) \ | 47 V(_Double, roundToDouble, DoubleRound, 797558034) \ |
48 V(_Double, floorToDouble, DoubleFloor, 1789426271) \ | 48 V(_Double, floorToDouble, DoubleFloor, 1789426271) \ |
49 V(_Double, ceilToDouble, DoubleCeil, 453271198) \ | 49 V(_Double, ceilToDouble, DoubleCeil, 453271198) \ |
50 V(_Double, _modulo, DoubleMod, 1093862165) \ | 50 V(_Double, _modulo, DoubleMod, 1093862165) \ |
51 V(_Double, _add, DoubleAdd, 1190606283) \ | 51 V(_Double, _add, DoubleAdd, 1190606283) \ |
52 V(_Double, _sub, DoubleSub, 1086286468) \ | 52 V(_Double, _sub, DoubleSub, 1086286468) \ |
53 V(_Double, _mul, DoubleMul, 166332351) \ | 53 V(_Double, _mul, DoubleMul, 166332351) \ |
54 V(_Double, _div, DoubleDiv, 821396195) \ | 54 V(_Double, _div, DoubleDiv, 821396195) \ |
| 55 V(::, sin, MathSin, 939048573) \ |
| 56 V(::, cos, MathCos, 1148850331) \ |
| 57 V(::, tan, MathTan, 179725235) \ |
| 58 V(::, asin, MathAsin, 848695059) \ |
| 59 V(::, acos, MathAcos, 337299516) \ |
| 60 V(::, atan, MathAtan, 866406810) \ |
| 61 V(::, atan2, MathAtan2, 1901969510) \ |
55 V(::, min, MathMin, 1115051548) \ | 62 V(::, min, MathMin, 1115051548) \ |
56 V(::, max, MathMax, 1410473322) \ | 63 V(::, max, MathMax, 1410473322) \ |
57 V(::, _doublePow, MathDoublePow, 562154128) \ | 64 V(::, _doublePow, MathDoublePow, 562154128) \ |
58 V(Float32x4, Float32x4., Float32x4Constructor, 93751705) \ | 65 V(Float32x4, Float32x4., Float32x4Constructor, 93751705) \ |
59 V(Float32x4, Float32x4.zero, Float32x4Zero, 1193954374) \ | 66 V(Float32x4, Float32x4.zero, Float32x4Zero, 1193954374) \ |
60 V(Float32x4, Float32x4.splat, Float32x4Splat, 12296613) \ | 67 V(Float32x4, Float32x4.splat, Float32x4Splat, 12296613) \ |
61 V(Float32x4, Float32x4.fromInt32x4Bits, Float32x4FromInt32x4Bits, 1188039061)\ | 68 V(Float32x4, Float32x4.fromInt32x4Bits, Float32x4FromInt32x4Bits, 1188039061)\ |
62 V(Float32x4, Float32x4.fromFloat64x2, Float32x4FromFloat64x2, 1750763218) \ | 69 V(Float32x4, Float32x4.fromFloat64x2, Float32x4FromFloat64x2, 1750763218) \ |
63 V(Float32x4, shuffle, Float32x4Shuffle, 2015957023) \ | 70 V(Float32x4, shuffle, Float32x4Shuffle, 2015957023) \ |
64 V(Float32x4, shuffleMix, Float32x4ShuffleMix, 1099087979) \ | 71 V(Float32x4, shuffleMix, Float32x4ShuffleMix, 1099087979) \ |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
229 V(_IntegerImplementation, >=, Integer_greaterEqualThan, 1815180096) \ | 236 V(_IntegerImplementation, >=, Integer_greaterEqualThan, 1815180096) \ |
230 V(_IntegerImplementation, <<, Integer_shl, 293751452) \ | 237 V(_IntegerImplementation, <<, Integer_shl, 293751452) \ |
231 V(_IntegerImplementation, >>, Integer_sar, 125091101) \ | 238 V(_IntegerImplementation, >>, Integer_sar, 125091101) \ |
232 V(_Double, toInt, DoubleToInteger, 653210699) | 239 V(_Double, toInt, DoubleToInteger, 653210699) |
233 | 240 |
234 | 241 |
235 #define MATH_LIB_INTRINSIC_LIST(V) \ | 242 #define MATH_LIB_INTRINSIC_LIST(V) \ |
236 V(::, sqrt, MathSqrt, 1446681622) \ | 243 V(::, sqrt, MathSqrt, 1446681622) \ |
237 V(_Random, _nextState, Random_nextState, 1241583299) \ | 244 V(_Random, _nextState, Random_nextState, 1241583299) \ |
238 | 245 |
239 #define GRAPH_MATH_LIB_INTRINSIC_LIST(V) \ | |
240 V(::, sin, MathSin, 939048573) \ | |
241 V(::, cos, MathCos, 1148850331) \ | |
242 V(::, tan, MathTan, 179725235) \ | |
243 V(::, asin, MathAsin, 848695059) \ | |
244 V(::, acos, MathAcos, 337299516) \ | |
245 V(::, atan, MathAtan, 866406810) \ | |
246 V(::, atan2, MathAtan2, 1901969510) \ | |
247 | 246 |
248 #define TYPED_DATA_LIB_INTRINSIC_LIST(V) \ | 247 #define TYPED_DATA_LIB_INTRINSIC_LIST(V) \ |
249 V(Int8List, ., TypedData_Int8Array_factory, 779569635) \ | 248 V(Int8List, ., TypedData_Int8Array_factory, 779569635) \ |
250 V(Uint8List, ., TypedData_Uint8Array_factory, 1790399545) \ | 249 V(Uint8List, ., TypedData_Uint8Array_factory, 1790399545) \ |
251 V(Uint8ClampedList, ., TypedData_Uint8ClampedArray_factory, 405875159) \ | 250 V(Uint8ClampedList, ., TypedData_Uint8ClampedArray_factory, 405875159) \ |
252 V(Int16List, ., TypedData_Int16Array_factory, 347431914) \ | 251 V(Int16List, ., TypedData_Int16Array_factory, 347431914) \ |
253 V(Uint16List, ., TypedData_Uint16Array_factory, 121990116) \ | 252 V(Uint16List, ., TypedData_Uint16Array_factory, 121990116) \ |
254 V(Int32List, ., TypedData_Int32Array_factory, 1540657744) \ | 253 V(Int32List, ., TypedData_Int32Array_factory, 1540657744) \ |
255 V(Uint32List, ., TypedData_Uint32Array_factory, 1012511652) \ | 254 V(Uint32List, ., TypedData_Uint32Array_factory, 1012511652) \ |
256 V(Int64List, ., TypedData_Int64Array_factory, 1473796807) \ | 255 V(Int64List, ., TypedData_Int64Array_factory, 1473796807) \ |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
289 V(_GrowableList, _setData, GrowableArraySetData, 1496536873) \ | 288 V(_GrowableList, _setData, GrowableArraySetData, 1496536873) \ |
290 V(_GrowableList, _setLength, GrowableArraySetLength, 32203572) \ | 289 V(_GrowableList, _setLength, GrowableArraySetLength, 32203572) \ |
291 V(_GrowableList, [], GrowableArrayGetIndexed, 1957529650) \ | 290 V(_GrowableList, [], GrowableArrayGetIndexed, 1957529650) \ |
292 V(_GrowableList, []=, GrowableArraySetIndexed, 225246870) \ | 291 V(_GrowableList, []=, GrowableArraySetIndexed, 225246870) \ |
293 V(_StringBase, get:length, StringBaseLength, 707533587) \ | 292 V(_StringBase, get:length, StringBaseLength, 707533587) \ |
294 V(_Double, unary-, DoubleFlipSignBit, 1783281169) | 293 V(_Double, unary-, DoubleFlipSignBit, 1783281169) |
295 | 294 |
296 #define GRAPH_INTRINSICS_LIST(V) \ | 295 #define GRAPH_INTRINSICS_LIST(V) \ |
297 GRAPH_CORE_INTRINSICS_LIST(V) \ | 296 GRAPH_CORE_INTRINSICS_LIST(V) \ |
298 GRAPH_TYPED_DATA_INTRINSICS_LIST(V) \ | 297 GRAPH_TYPED_DATA_INTRINSICS_LIST(V) \ |
299 GRAPH_MATH_LIB_INTRINSIC_LIST(V) \ | |
300 | 298 |
301 #define DEVELOPER_LIB_INTRINSIC_LIST(V) \ | 299 #define DEVELOPER_LIB_INTRINSIC_LIST(V) \ |
302 V(_UserTag, makeCurrent, UserTag_makeCurrent, 187721469) \ | 300 V(_UserTag, makeCurrent, UserTag_makeCurrent, 187721469) \ |
303 V(::, _getDefaultTag, UserTag_defaultTag, 1872263331) \ | 301 V(::, _getDefaultTag, UserTag_defaultTag, 1872263331) \ |
304 V(::, _getCurrentTag, Profiler_getCurrentTag, 692104531) \ | 302 V(::, _getCurrentTag, Profiler_getCurrentTag, 692104531) \ |
305 | 303 |
306 #define ALL_INTRINSICS_NO_INTEGER_LIB_LIST(V) \ | 304 #define ALL_INTRINSICS_NO_INTEGER_LIB_LIST(V) \ |
307 CORE_LIB_INTRINSIC_LIST(V) \ | 305 CORE_LIB_INTRINSIC_LIST(V) \ |
308 DEVELOPER_LIB_INTRINSIC_LIST(V) \ | 306 DEVELOPER_LIB_INTRINSIC_LIST(V) \ |
309 MATH_LIB_INTRINSIC_LIST(V) \ | 307 MATH_LIB_INTRINSIC_LIST(V) \ |
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
509 // Class that recognizes factories and returns corresponding result cid. | 507 // Class that recognizes factories and returns corresponding result cid. |
510 class FactoryRecognizer : public AllStatic { | 508 class FactoryRecognizer : public AllStatic { |
511 public: | 509 public: |
512 // Return kDynamicCid if factory is not recognized. | 510 // Return kDynamicCid if factory is not recognized. |
513 static intptr_t ResultCid(const Function& factory); | 511 static intptr_t ResultCid(const Function& factory); |
514 }; | 512 }; |
515 | 513 |
516 } // namespace dart | 514 } // namespace dart |
517 | 515 |
518 #endif // VM_METHOD_RECOGNIZER_H_ | 516 #endif // VM_METHOD_RECOGNIZER_H_ |
OLD | NEW |