Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(601)

Side by Side Diff: runtime/vm/method_recognizer.h

Issue 2805903004: Working implementation of #29153 range check in as-casts. (Closed)
Patch Set: Incorporate @rmacnak's feedback: ZoneHandle, position, symbol null. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 V(_HashVMBase, get:_usedData, LinkedHashMap_getUsedData, Smi, 0x0885258e) \ 126 V(_HashVMBase, get:_usedData, LinkedHashMap_getUsedData, Smi, 0x0885258e) \
127 V(_HashVMBase, set:_usedData, LinkedHashMap_setUsedData, Dynamic, 0x631d2ea6)\ 127 V(_HashVMBase, set:_usedData, LinkedHashMap_setUsedData, Dynamic, 0x631d2ea6)\
128 V(_HashVMBase, get:_hashMask, LinkedHashMap_getHashMask, Smi, 0x32f33cdc) \ 128 V(_HashVMBase, get:_hashMask, LinkedHashMap_getHashMask, Smi, 0x32f33cdc) \
129 V(_HashVMBase, set:_hashMask, LinkedHashMap_setHashMask, Dynamic, 0x75f4287b)\ 129 V(_HashVMBase, set:_hashMask, LinkedHashMap_setHashMask, Dynamic, 0x75f4287b)\
130 V(_HashVMBase, get:_deletedKeys, LinkedHashMap_getDeletedKeys, Smi, \ 130 V(_HashVMBase, get:_deletedKeys, LinkedHashMap_getDeletedKeys, Smi, \
131 0x55840d63) \ 131 0x55840d63) \
132 V(_HashVMBase, set:_deletedKeys, LinkedHashMap_setDeletedKeys, Dynamic, \ 132 V(_HashVMBase, set:_deletedKeys, LinkedHashMap_setDeletedKeys, Dynamic, \
133 0x5e83ecad) \ 133 0x5e83ecad) \
134 V(::, _classRangeCheck, ClassRangeCheck, Bool, 0x16a2fc83) \ 134 V(::, _classRangeCheck, ClassRangeCheck, Bool, 0x16a2fc83) \
135 V(::, _classRangeCheckNegative, ClassRangeCheckNegated, Bool, 0x46898c74) \ 135 V(::, _classRangeCheckNegative, ClassRangeCheckNegated, Bool, 0x46898c74) \
136 V(::, _classRangeAssert, ClassRangeAssert, Dynamic, 0x3ccbdf6e) \
137 V(::, _classIdEqualsAssert, ClassIdEqualsAssert, Dynamic, 0x4dc80932) \
136 138
137 139
138 // List of intrinsics: 140 // List of intrinsics:
139 // (class-name, function-name, intrinsification method, fingerprint). 141 // (class-name, function-name, intrinsification method, fingerprint).
140 #define CORE_LIB_INTRINSIC_LIST(V) \ 142 #define CORE_LIB_INTRINSIC_LIST(V) \
141 V(_Smi, ~, Smi_bitNegate, Smi, 0x6574c6b0) \ 143 V(_Smi, ~, Smi_bitNegate, Smi, 0x6574c6b0) \
142 V(_Smi, get:bitLength, Smi_bitLength, Smi, 0x25b356ab) \ 144 V(_Smi, get:bitLength, Smi_bitLength, Smi, 0x25b356ab) \
143 V(_Smi, _bitAndFromSmi, Smi_bitAndFromSmi, Smi, 0x490a4da1) \ 145 V(_Smi, _bitAndFromSmi, Smi_bitAndFromSmi, Smi, 0x490a4da1) \
144 V(_Bigint, _lsh, Bigint_lsh, Dynamic, 0x40d9f1cc) \ 146 V(_Bigint, _lsh, Bigint_lsh, Dynamic, 0x40d9f1cc) \
145 V(_Bigint, _rsh, Bigint_rsh, Dynamic, 0x703f1a40) \ 147 V(_Bigint, _rsh, Bigint_rsh, Dynamic, 0x703f1a40) \
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 V(_ByteDataView, getUint64, ByteDataViewGetUint64, 0x469be77a) \ 416 V(_ByteDataView, getUint64, ByteDataViewGetUint64, 0x469be77a) \
415 V(_ByteDataView, getFloat32, ByteDataViewGetFloat32, 0x32567817) \ 417 V(_ByteDataView, getFloat32, ByteDataViewGetFloat32, 0x32567817) \
416 V(_ByteDataView, getFloat64, ByteDataViewGetFloat64, 0x322badf5) \ 418 V(_ByteDataView, getFloat64, ByteDataViewGetFloat64, 0x322badf5) \
417 V(::, exp, MathExp, 0x32ab9efa) \ 419 V(::, exp, MathExp, 0x32ab9efa) \
418 V(::, log, MathLog, 0x1ee8f9fc) \ 420 V(::, log, MathLog, 0x1ee8f9fc) \
419 V(::, max, MathMax, 0x217af195) \ 421 V(::, max, MathMax, 0x217af195) \
420 V(::, min, MathMin, 0x154735b3) \ 422 V(::, min, MathMin, 0x154735b3) \
421 V(::, pow, MathPow, 0x5f119fa5) \ 423 V(::, pow, MathPow, 0x5f119fa5) \
422 V(::, _classRangeCheck, ClassRangeCheck, 0x16a2fc83) \ 424 V(::, _classRangeCheck, ClassRangeCheck, 0x16a2fc83) \
423 V(::, _classRangeCheckNegative, ClassRangeCheckNegated, 0x46898c74) \ 425 V(::, _classRangeCheckNegative, ClassRangeCheckNegated, 0x46898c74) \
426 V(::, _classRangeAssert, ClassRangeAssert, 0x3ccbdf6e) \
427 V(::, _classIdEqualsAssert, ClassIdEqualsAssert, 0x4dc80932) \
424 V(Lists, copy, ListsCopy, 0x714584f8) \ 428 V(Lists, copy, ListsCopy, 0x714584f8) \
425 V(_Bigint, get:_neg, Bigint_getNeg, 0x356019c4) \ 429 V(_Bigint, get:_neg, Bigint_getNeg, 0x356019c4) \
426 V(_Bigint, get:_used, Bigint_getUsed, 0x33ba5131) \ 430 V(_Bigint, get:_used, Bigint_getUsed, 0x33ba5131) \
427 V(_Bigint, get:_digits, Bigint_getDigits, 0x68defc99) \ 431 V(_Bigint, get:_digits, Bigint_getDigits, 0x68defc99) \
428 V(_HashVMBase, get:_index, LinkedHashMap_getIndex, 0x0246fcf8) \ 432 V(_HashVMBase, get:_index, LinkedHashMap_getIndex, 0x0246fcf8) \
429 V(_HashVMBase, set:_index, LinkedHashMap_setIndex, 0x53a33a00) \ 433 V(_HashVMBase, set:_index, LinkedHashMap_setIndex, 0x53a33a00) \
430 V(_HashVMBase, get:_data, LinkedHashMap_getData, 0x2d79fc4d) \ 434 V(_HashVMBase, get:_data, LinkedHashMap_getData, 0x2d79fc4d) \
431 V(_HashVMBase, set:_data, LinkedHashMap_setData, 0x129a9708) \ 435 V(_HashVMBase, set:_data, LinkedHashMap_setData, 0x129a9708) \
432 V(_HashVMBase, get:_usedData, LinkedHashMap_getUsedData, 0x0885258e) \ 436 V(_HashVMBase, get:_usedData, LinkedHashMap_getUsedData, 0x0885258e) \
433 V(_HashVMBase, set:_usedData, LinkedHashMap_setUsedData, 0x631d2ea6) \ 437 V(_HashVMBase, set:_usedData, LinkedHashMap_setUsedData, 0x631d2ea6) \
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
577 // Class that recognizes factories and returns corresponding result cid. 581 // Class that recognizes factories and returns corresponding result cid.
578 class FactoryRecognizer : public AllStatic { 582 class FactoryRecognizer : public AllStatic {
579 public: 583 public:
580 // Return kDynamicCid if factory is not recognized. 584 // Return kDynamicCid if factory is not recognized.
581 static intptr_t ResultCid(const Function& factory); 585 static intptr_t ResultCid(const Function& factory);
582 }; 586 };
583 587
584 } // namespace dart 588 } // namespace dart
585 589
586 #endif // RUNTIME_VM_METHOD_RECOGNIZER_H_ 590 #endif // RUNTIME_VM_METHOD_RECOGNIZER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698