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 #include "vm/method_recognizer.h" | 5 #include "vm/method_recognizer.h" |
6 | 6 |
7 #include "vm/object.h" | 7 #include "vm/object.h" |
8 #include "vm/symbols.h" | 8 #include "vm/symbols.h" |
9 | 9 |
10 namespace dart { | 10 namespace dart { |
(...skipping 19 matching lines...) Expand all Loading... |
30 #define DEFINE_CASE(cname, fname, ename, result_type, fingerprint) \ | 30 #define DEFINE_CASE(cname, fname, ename, result_type, fingerprint) \ |
31 case k##ename: return k##result_type##Cid; | 31 case k##ename: return k##result_type##Cid; |
32 RECOGNIZED_LIST(DEFINE_CASE) | 32 RECOGNIZED_LIST(DEFINE_CASE) |
33 #undef DEFINE_CASE | 33 #undef DEFINE_CASE |
34 default: | 34 default: |
35 return kDynamicCid; | 35 return kDynamicCid; |
36 } | 36 } |
37 } | 37 } |
38 | 38 |
39 | 39 |
| 40 intptr_t MethodRecognizer::MethodKindToCid(Kind kind) { |
| 41 switch (kind) { |
| 42 case kImmutableArrayGetIndexed: |
| 43 return kImmutableArrayCid; |
| 44 |
| 45 case kObjectArrayGetIndexed: |
| 46 case kObjectArraySetIndexed: |
| 47 return kArrayCid; |
| 48 |
| 49 case kGrowableArrayGetIndexed: |
| 50 case kGrowableArraySetIndexed: |
| 51 return kGrowableObjectArrayCid; |
| 52 |
| 53 case kFloat32ArrayGetIndexed: |
| 54 case kFloat32ArraySetIndexed: |
| 55 return kTypedDataFloat32ArrayCid; |
| 56 |
| 57 case kFloat64ArrayGetIndexed: |
| 58 case kFloat64ArraySetIndexed: |
| 59 return kTypedDataFloat64ArrayCid; |
| 60 |
| 61 case kInt8ArrayGetIndexed: |
| 62 case kInt8ArraySetIndexed: |
| 63 return kTypedDataInt8ArrayCid; |
| 64 |
| 65 case kUint8ArrayGetIndexed: |
| 66 case kUint8ArraySetIndexed: |
| 67 return kTypedDataUint8ArrayCid; |
| 68 |
| 69 case kUint8ClampedArrayGetIndexed: |
| 70 case kUint8ClampedArraySetIndexed: |
| 71 return kTypedDataUint8ClampedArrayCid; |
| 72 |
| 73 case kExternalUint8ArrayGetIndexed: |
| 74 case kExternalUint8ArraySetIndexed: |
| 75 return kExternalTypedDataUint8ArrayCid; |
| 76 |
| 77 case kExternalUint8ClampedArrayGetIndexed: |
| 78 case kExternalUint8ClampedArraySetIndexed: |
| 79 return kExternalTypedDataUint8ClampedArrayCid; |
| 80 |
| 81 case kInt16ArrayGetIndexed: |
| 82 case kInt16ArraySetIndexed: |
| 83 return kTypedDataInt16ArrayCid; |
| 84 |
| 85 case kUint16ArrayGetIndexed: |
| 86 case kUint16ArraySetIndexed: |
| 87 return kTypedDataUint16ArrayCid; |
| 88 |
| 89 case kInt32ArrayGetIndexed: |
| 90 case kInt32ArraySetIndexed: |
| 91 return kTypedDataInt32ArrayCid; |
| 92 |
| 93 case kUint32ArrayGetIndexed: |
| 94 case kUint32ArraySetIndexed: |
| 95 return kTypedDataUint32ArrayCid; |
| 96 |
| 97 case kInt64ArrayGetIndexed: |
| 98 case kInt64ArraySetIndexed: |
| 99 return kTypedDataInt64ArrayCid; |
| 100 |
| 101 case kFloat32x4ArrayGetIndexed: |
| 102 case kFloat32x4ArraySetIndexed: |
| 103 return kTypedDataFloat32x4ArrayCid; |
| 104 |
| 105 case kInt32x4ArrayGetIndexed: |
| 106 case kInt32x4ArraySetIndexed: |
| 107 return kTypedDataInt32x4ArrayCid; |
| 108 |
| 109 case kFloat64x2ArrayGetIndexed: |
| 110 case kFloat64x2ArraySetIndexed: |
| 111 return kTypedDataFloat64x2ArrayCid; |
| 112 |
| 113 default: |
| 114 break; |
| 115 } |
| 116 UNREACHABLE(); |
| 117 return kIllegalCid; |
| 118 } |
| 119 |
| 120 |
40 #define KIND_TO_STRING(class_name, function_name, enum_name, type, fp) \ | 121 #define KIND_TO_STRING(class_name, function_name, enum_name, type, fp) \ |
41 #enum_name, | 122 #enum_name, |
42 static const char* recognized_list_method_name[] = { | 123 static const char* recognized_list_method_name[] = { |
43 "Unknown", | 124 "Unknown", |
44 RECOGNIZED_LIST(KIND_TO_STRING) | 125 RECOGNIZED_LIST(KIND_TO_STRING) |
45 }; | 126 }; |
46 #undef KIND_TO_STRING | 127 #undef KIND_TO_STRING |
47 | 128 |
48 const char* MethodRecognizer::KindToCString(Kind kind) { | 129 const char* MethodRecognizer::KindToCString(Kind kind) { |
49 if (kind > kUnknown && kind < kNumRecognizedMethods) | 130 if (kind > kUnknown && kind < kNumRecognizedMethods) |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 POLYMORPHIC_TARGET_LIST(SET_IS_POLYMORPHIC_TARGET); | 179 POLYMORPHIC_TARGET_LIST(SET_IS_POLYMORPHIC_TARGET); |
99 | 180 |
100 #undef SET_RECOGNIZED_KIND | 181 #undef SET_RECOGNIZED_KIND |
101 #undef SET_IS_ALWAYS_INLINE | 182 #undef SET_IS_ALWAYS_INLINE |
102 #undef SET_IS_POLYMORPHIC_TARGET | 183 #undef SET_IS_POLYMORPHIC_TARGET |
103 #undef SET_FUNCTION_BIT | 184 #undef SET_FUNCTION_BIT |
104 } | 185 } |
105 #endif // defined(DART_NO_SNAPSHOT). | 186 #endif // defined(DART_NO_SNAPSHOT). |
106 | 187 |
107 } // namespace dart | 188 } // namespace dart |
OLD | NEW |