| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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_INTERMEDIATE_LANGUAGE_H_ | 5 #ifndef VM_INTERMEDIATE_LANGUAGE_H_ |
| 6 #define VM_INTERMEDIATE_LANGUAGE_H_ | 6 #define VM_INTERMEDIATE_LANGUAGE_H_ |
| 7 | 7 |
| 8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
| 9 #include "vm/ast.h" | 9 #include "vm/ast.h" |
| 10 #include "vm/growable_array.h" | 10 #include "vm/growable_array.h" |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 class ParsedFunction; | 33 class ParsedFunction; |
| 34 class Range; | 34 class Range; |
| 35 | 35 |
| 36 | 36 |
| 37 // TODO(srdjan): Unify with INTRINSIC_LIST. | 37 // TODO(srdjan): Unify with INTRINSIC_LIST. |
| 38 // (class-name, function-name, recognized enum, fingerprint). | 38 // (class-name, function-name, recognized enum, fingerprint). |
| 39 // See intrinsifier for fingerprint computation. | 39 // See intrinsifier for fingerprint computation. |
| 40 #define RECOGNIZED_LIST(V) \ | 40 #define RECOGNIZED_LIST(V) \ |
| 41 V(::, identical, ObjectIdentical, 496869842) \ | 41 V(::, identical, ObjectIdentical, 496869842) \ |
| 42 V(Object, ==, ObjectEquals, 1068471689) \ | 42 V(Object, ==, ObjectEquals, 1068471689) \ |
| 43 V(Object, Object., ObjectConstructor, 1058615085) \ | 43 V(Object, Object., ObjectConstructor, 1066669787) \ |
| 44 V(Object, get:_cid, ObjectCid, 1498751301) \ | 44 V(Object, get:_cid, ObjectCid, 1771959715) \ |
| 45 V(_TypedListBase, get:_cid, TypedListBaseCid, 1938244762) \ | 45 V(_TypedListBase, get:_cid, TypedListBaseCid, 1438451377) \ |
| 46 V(_List, get:length, ObjectArrayLength, 215183186) \ | 46 V(_List, get:length, ObjectArrayLength, 1181352729) \ |
| 47 V(_List, _List., ObjectArrayConstructor, 176587978) \ | 47 V(_List, _List., ObjectArrayConstructor, 1595327584) \ |
| 48 V(_ImmutableList, get:length, ImmutableArrayLength, 578762861) \ | 48 V(_ImmutableList, get:length, ImmutableArrayLength, 274917727) \ |
| 49 V(_TypedList, get:length, TypedDataLength, 26646119) \ | 49 V(_TypedList, get:length, TypedDataLength, 522565357) \ |
| 50 V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 272598802) \ | 50 V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 1541411498) \ |
| 51 V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 831354841) \ | 51 V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 1032404349) \ |
| 52 V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 1832126257) \ | 52 V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 381073990) \ |
| 53 V(_TypedList, _getUint16, ByteArrayBaseGetUint16, 1762714698) \ | 53 V(_TypedList, _getUint16, ByteArrayBaseGetUint16, 1142676276) \ |
| 54 V(_TypedList, _getInt32, ByteArrayBaseGetInt32, 48785449) \ | 54 V(_TypedList, _getInt32, ByteArrayBaseGetInt32, 330269934) \ |
| 55 V(_TypedList, _getUint32, ByteArrayBaseGetUint32, 1392579206) \ | 55 V(_TypedList, _getUint32, ByteArrayBaseGetUint32, 59490554) \ |
| 56 V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 185163470) \ | 56 V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 393003933) \ |
| 57 V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 1356392173) \ | 57 V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 1792407200) \ |
| 58 V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 1239681356) \ | 58 V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 1338379857) \ |
| 59 V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 163795162) \ | 59 V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 1469917805) \ |
| 60 V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 1793798234) \ | 60 V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 433348464) \ |
| 61 V(_TypedList, _setUint8, ByteArrayBaseSetUint8, 67253374) \ | 61 V(_TypedList, _setUint8, ByteArrayBaseSetUint8, 149406583) \ |
| 62 V(_TypedList, _setInt16, ByteArrayBaseSetInt16, 10467750) \ | 62 V(_TypedList, _setInt16, ByteArrayBaseSetInt16, 805477162) \ |
| 63 V(_TypedList, _setUint16, ByteArrayBaseSetUint16, 1596986894) \ | 63 V(_TypedList, _setUint16, ByteArrayBaseSetUint16, 888580944) \ |
| 64 V(_TypedList, _setInt32, ByteArrayBaseSetInt32, 868037529) \ | 64 V(_TypedList, _setInt32, ByteArrayBaseSetInt32, 1708248181) \ |
| 65 V(_TypedList, _setUint32, ByteArrayBaseSetUint32, 1776345006) \ | 65 V(_TypedList, _setUint32, ByteArrayBaseSetUint32, 1863152792) \ |
| 66 V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 1807927533) \ | 66 V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 1148703855) \ |
| 67 V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 399659907) \ | 67 V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 972883980) \ |
| 68 V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 1612092224) \ | 68 V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 950522310) \ |
| 69 V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 74799321) \ | 69 V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 1301138078) \ |
| 70 V(_GrowableList, get:length, GrowableArrayLength, 1654255033) \ | 70 V(_GrowableList, get:length, GrowableArrayLength, 778505107) \ |
| 71 V(_GrowableList, get:_capacity, GrowableArrayCapacity, 817119794) \ | 71 V(_GrowableList, get:_capacity, GrowableArrayCapacity, 555140075) \ |
| 72 V(_GrowableList, _setData, GrowableArraySetData, 970836644) \ | 72 V(_GrowableList, _setData, GrowableArraySetData, 2126927509) \ |
| 73 V(_GrowableList, _setLength, GrowableArraySetLength, 823005129) \ | 73 V(_GrowableList, _setLength, GrowableArraySetLength, 89389299) \ |
| 74 V(_StringBase, get:length, StringBaseLength, 1483549854) \ | 74 V(_StringBase, get:length, StringBaseLength, 784399628) \ |
| 75 V(_StringBase, get:isEmpty, StringBaseIsEmpty, 1599468763) \ | 75 V(_StringBase, get:isEmpty, StringBaseIsEmpty, 49873871) \ |
| 76 V(_StringBase, codeUnitAt, StringBaseCodeUnitAt, 1958436584) \ | 76 V(_StringBase, codeUnitAt, StringBaseCodeUnitAt, 397735324) \ |
| 77 V(_StringBase, [], StringBaseCharAt, 585372763) \ | 77 V(_StringBase, [], StringBaseCharAt, 1512210677) \ |
| 78 V(_StringBase, _interpolate, StringBaseInterpolate, 2013078843) \ | 78 V(_StringBase, _interpolate, StringBaseInterpolate, 172499441) \ |
| 79 V(_OneByteString, _setAt, OneByteStringSetAt, 658941003) \ | 79 V(_OneByteString, _setAt, OneByteStringSetAt, 468605749) \ |
| 80 V(_IntegerImplementation, toDouble, IntegerToDouble, 1947355341) \ | 80 V(_IntegerImplementation, toDouble, IntegerToDouble, 1084977108) \ |
| 81 V(_IntegerImplementation, _leftShiftWithMask32, IntegerLeftShiftWithMask32, \ | 81 V(_IntegerImplementation, _leftShiftWithMask32, IntegerLeftShiftWithMask32, \ |
| 82 2095943661) \ | 82 597111055) \ |
| 83 V(_Double, toInt, DoubleToInteger, 1328149975) \ | 83 V(_Double, toInt, DoubleToInteger, 1547535151) \ |
| 84 V(_Double, truncateToDouble, DoubleTruncate, 615732263) \ | 84 V(_Double, truncateToDouble, DoubleTruncate, 2117801967) \ |
| 85 V(_Double, roundToDouble, DoubleRound, 622146406) \ | 85 V(_Double, roundToDouble, DoubleRound, 2124216110) \ |
| 86 V(_Double, floorToDouble, DoubleFloor, 1614014643) \ | 86 V(_Double, floorToDouble, DoubleFloor, 968600699) \ |
| 87 V(_Double, ceilToDouble, DoubleCeil, 277859570) \ | 87 V(_Double, ceilToDouble, DoubleCeil, 1779929274) \ |
| 88 V(_Double, _modulo, DoubleMod, 1443289156) \ | 88 V(_Double, _modulo, DoubleMod, 1473971007) \ |
| 89 V(::, sqrt, MathSqrt, 465520247) \ | 89 V(::, sqrt, MathSqrt, 101545548) \ |
| 90 V(::, sin, MathSin, 730107143) \ | 90 V(::, sin, MathSin, 1741396147) \ |
| 91 V(::, cos, MathCos, 1282146521) \ | 91 V(::, cos, MathCos, 1951197905) \ |
| 92 V(::, min, MathMin, 1022567780) \ | 92 V(::, min, MathMin, 1022567780) \ |
| 93 V(::, max, MathMax, 612058870) \ | 93 V(::, max, MathMax, 612058870) \ |
| 94 V(::, _doublePow, MathDoublePow, 342259456) \ | 94 V(::, _doublePow, MathDoublePow, 823139975) \ |
| 95 V(Float32x4, Float32x4., Float32x4Constructor, 1314950569) \ | 95 V(Float32x4, Float32x4., Float32x4Constructor, 1755873079) \ |
| 96 V(Float32x4, Float32x4.zero, Float32x4Zero, 1432281809) \ | 96 V(Float32x4, Float32x4.zero, Float32x4Zero, 1494069379) \ |
| 97 V(Float32x4, Float32x4.splat, Float32x4Splat, 1148280442) \ | 97 V(Float32x4, Float32x4.splat, Float32x4Splat, 916211464) \ |
| 98 V(Float32x4, Float32x4.fromInt32x4Bits, Float32x4FromInt32x4Bits, \ | 98 V(Float32x4, Float32x4.fromInt32x4Bits, Float32x4FromInt32x4Bits, \ |
| 99 872145194) \ | 99 640076216) \ |
| 100 V(Float32x4, Float32x4.fromFloat64x2, Float32x4FromFloat64x2, 1511660322) \ | 100 V(Float32x4, Float32x4.fromFloat64x2, Float32x4FromFloat64x2, 1279591344) \ |
| 101 V(_Float32x4, shuffle, Float32x4Shuffle, 1178727105) \ | 101 V(_Float32x4, shuffle, Float32x4Shuffle, 1636488139) \ |
| 102 V(_Float32x4, shuffleMix, Float32x4ShuffleMix, 927956119) \ | 102 V(_Float32x4, shuffleMix, Float32x4ShuffleMix, 597555927) \ |
| 103 V(_Float32x4, get:x, Float32x4ShuffleX, 1351747629) \ | 103 V(_Float32x4, get:x, Float32x4ShuffleX, 384850558) \ |
| 104 V(_Float32x4, get:y, Float32x4ShuffleY, 217416201) \ | 104 V(_Float32x4, get:y, Float32x4ShuffleY, 1398002778) \ |
| 105 V(_Float32x4, get:z, Float32x4ShuffleZ, 2144953512) \ | 105 V(_Float32x4, get:z, Float32x4ShuffleZ, 1178056441) \ |
| 106 V(_Float32x4, get:w, Float32x4ShuffleW, 1447728910) \ | 106 V(_Float32x4, get:w, Float32x4ShuffleW, 480831839) \ |
| 107 V(_Float32x4, get:signMask, Float32x4GetSignMask, 1198879138) \ | 107 V(_Float32x4, get:signMask, Float32x4GetSignMask, 630761511) \ |
| 108 V(_Float32x4, _cmpequal, Float32x4Equal, 1944929844) \ | 108 V(_Float32x4, _cmpequal, Float32x4Equal, 571062952) \ |
| 109 V(_Float32x4, _cmpgt, Float32x4GreaterThan, 499965951) \ | 109 V(_Float32x4, _cmpgt, Float32x4GreaterThan, 1613543295) \ |
| 110 V(_Float32x4, _cmpgte, Float32x4GreaterThanOrEqual, 1003006845) \ | 110 V(_Float32x4, _cmpgte, Float32x4GreaterThanOrEqual, 589402909) \ |
| 111 V(_Float32x4, _cmplt, Float32x4LessThan, 747070271) \ | 111 V(_Float32x4, _cmplt, Float32x4LessThan, 1502332656) \ |
| 112 V(_Float32x4, _cmplte, Float32x4LessThanOrEqual, 2008368570) \ | 112 V(_Float32x4, _cmplte, Float32x4LessThanOrEqual, 1069848031) \ |
| 113 V(_Float32x4, _cmpnequal, Float32x4NotEqual, 1038562565) \ | 113 V(_Float32x4, _cmpnequal, Float32x4NotEqual, 1334574472) \ |
| 114 V(_Float32x4, _min, Float32x4Min, 1166664658) \ | 114 V(_Float32x4, _min, Float32x4Min, 2036349551) \ |
| 115 V(_Float32x4, _max, Float32x4Max, 343968921) \ | 115 V(_Float32x4, _max, Float32x4Max, 571688115) \ |
| 116 V(_Float32x4, _scale, Float32x4Scale, 803505531) \ | 116 V(_Float32x4, _scale, Float32x4Scale, 1311297761) \ |
| 117 V(_Float32x4, _sqrt, Float32x4Sqrt, 2092250151) \ | 117 V(_Float32x4, _sqrt, Float32x4Sqrt, 1709659395) \ |
| 118 V(_Float32x4, _reciprocalSqrt, Float32x4ReciprocalSqrt, 965252704) \ | 118 V(_Float32x4, _reciprocalSqrt, Float32x4ReciprocalSqrt, 2043980962) \ |
| 119 V(_Float32x4, _reciprocal, Float32x4Reciprocal, 1262202915) \ | 119 V(_Float32x4, _reciprocal, Float32x4Reciprocal, 739405237) \ |
| 120 V(_Float32x4, _negate, Float32x4Negate, 1203192635) \ | 120 V(_Float32x4, _negate, Float32x4Negate, 445839777) \ |
| 121 V(_Float32x4, _abs, Float32x4Absolute, 386324188) \ | 121 V(_Float32x4, _abs, Float32x4Absolute, 1152777608) \ |
| 122 V(_Float32x4, _clamp, Float32x4Clamp, 1454612345) \ | 122 V(_Float32x4, _clamp, Float32x4Clamp, 353415442) \ |
| 123 V(_Float32x4, withX, Float32x4WithX, 795284225) \ | 123 V(_Float32x4, withX, Float32x4WithX, 1446546696) \ |
| 124 V(_Float32x4, withY, Float32x4WithY, 1806065938) \ | 124 V(_Float32x4, withY, Float32x4WithY, 309844761) \ |
| 125 V(_Float32x4, withZ, Float32x4WithZ, 320659034) \ | 125 V(_Float32x4, withZ, Float32x4WithZ, 971921505) \ |
| 126 V(_Float32x4, withW, Float32x4WithW, 1108437255) \ | 126 V(_Float32x4, withW, Float32x4WithW, 1759699726) \ |
| 127 V(Float64x2, Float64x2., Float64x2Constructor, 1283521526) \ | 127 V(Float64x2, Float64x2., Float64x2Constructor, 1399581872) \ |
| 128 V(Float64x2, Float64x2.zero, Float64x2Zero, 1971574037) \ | 128 V(Float64x2, Float64x2.zero, Float64x2Zero, 1836770587) \ |
| 129 V(Float64x2, Float64x2.splat, Float64x2Splat, 823230813) \ | 129 V(Float64x2, Float64x2.splat, Float64x2Splat, 939291159) \ |
| 130 V(Float64x2, Float64x2.fromFloat32x4, Float64x2FromFloat32x4, 1383666060) \ | 130 V(Float64x2, Float64x2.fromFloat32x4, Float64x2FromFloat32x4, 1499726406) \ |
| 131 V(_Float64x2, get:x, Float64x2GetX, 176817227) \ | 131 V(_Float64x2, get:x, Float64x2GetX, 261044094) \ |
| 132 V(_Float64x2, get:y, Float64x2GetY, 1858031019) \ | 132 V(_Float64x2, get:y, Float64x2GetY, 1942257886) \ |
| 133 V(_Float64x2, _negate, Float64x2Negate, 1345265430) \ | 133 V(_Float64x2, _negate, Float64x2Negate, 2133212774) \ |
| 134 V(_Float64x2, abs, Float64x2Abs, 778551930) \ | 134 V(_Float64x2, abs, Float64x2Abs, 1224776282) \ |
| 135 V(_Float64x2, sqrt, Float64x2Sqrt, 591345168) \ | 135 V(_Float64x2, sqrt, Float64x2Sqrt, 1037569520) \ |
| 136 V(_Float64x2, get:signMask, Float64x2GetSignMask, 601579087) \ | 136 V(_Float64x2, get:signMask, Float64x2GetSignMask, 252936800) \ |
| 137 V(_Float64x2, scale, Float64x2Scale, 1781090062) \ | 137 V(_Float64x2, scale, Float64x2Scale, 1199438744) \ |
| 138 V(_Float64x2, withX, Float64x2WithX, 1624377250) \ | 138 V(_Float64x2, withX, Float64x2WithX, 1042725932) \ |
| 139 V(_Float64x2, withY, Float64x2WithY, 2078610265) \ | 139 V(_Float64x2, withY, Float64x2WithY, 1496958947) \ |
| 140 V(_Float64x2, min, Float64x2Min, 876488999) \ | 140 V(_Float64x2, min, Float64x2Min, 485240583) \ |
| 141 V(_Float64x2, max, Float64x2Max, 389912972) \ | 141 V(_Float64x2, max, Float64x2Max, 2146148204) \ |
| 142 V(Int32x4, Int32x4.bool, Int32x4BoolConstructor, 295910141) \ | 142 V(Int32x4, Int32x4.bool, Int32x4BoolConstructor, 87082660) \ |
| 143 V(Int32x4, Int32x4.fromFloat32x4Bits, Int32x4FromFloat32x4Bits, \ | 143 V(Int32x4, Int32x4.fromFloat32x4Bits, Int32x4FromFloat32x4Bits, \ |
| 144 893850947) \ | 144 372517418) \ |
| 145 V(_Int32x4, get:flagX, Int32x4GetFlagX, 729265594) \ | 145 V(_Int32x4, get:flagX, Int32x4GetFlagX, 1077555238) \ |
| 146 V(_Int32x4, get:flagY, Int32x4GetFlagY, 430870640) \ | 146 V(_Int32x4, get:flagY, Int32x4GetFlagY, 779160284) \ |
| 147 V(_Int32x4, get:flagZ, Int32x4GetFlagZ, 1981106287) \ | 147 V(_Int32x4, get:flagZ, Int32x4GetFlagZ, 181912283) \ |
| 148 V(_Int32x4, get:flagW, Int32x4GetFlagW, 629385890) \ | 148 V(_Int32x4, get:flagW, Int32x4GetFlagW, 977675534) \ |
| 149 V(_Int32x4, get:signMask, Int32x4GetSignMask, 1598817537) \ | 149 V(_Int32x4, get:signMask, Int32x4GetSignMask, 1929271914) \ |
| 150 V(_Int32x4, shuffle, Int32x4Shuffle, 599391160) \ | 150 V(_Int32x4, shuffle, Int32x4Shuffle, 1870018702) \ |
| 151 V(_Int32x4, shuffleMix, Int32x4ShuffleMix, 1491641197) \ | 151 V(_Int32x4, shuffleMix, Int32x4ShuffleMix, 967644870) \ |
| 152 V(_Int32x4, select, Int32x4Select, 194269493) \ | 152 V(_Int32x4, select, Int32x4Select, 1696037681) \ |
| 153 V(_Int32x4, withFlagX, Int32x4WithFlagX, 63248661) \ | 153 V(_Int32x4, withFlagX, Int32x4WithFlagX, 467852789) \ |
| 154 V(_Int32x4, withFlagY, Int32x4WithFlagY, 1498755850) \ | 154 V(_Int32x4, withFlagY, Int32x4WithFlagY, 1903359978) \ |
| 155 V(_Int32x4, withFlagZ, Int32x4WithFlagZ, 457856832) \ | 155 V(_Int32x4, withFlagZ, Int32x4WithFlagZ, 862460960) \ |
| 156 V(_Int32x4, withFlagW, Int32x4WithFlagW, 690638779) \ | 156 V(_Int32x4, withFlagW, Int32x4WithFlagW, 1095242907) \ |
| 157 V(_List, [], ObjectArrayGetIndexed, 675155875) \ | 157 V(_List, [], ObjectArrayGetIndexed, 795612476) \ |
| 158 V(_List, []=, ObjectArraySetIndexed, 1228569706) \ | 158 V(_List, []=, ObjectArraySetIndexed, 1288827575) \ |
| 159 V(_ImmutableList, [], ImmutableArrayGetIndexed, 1768793932) \ | 159 V(_ImmutableList, [], ImmutableArrayGetIndexed, 1990177341) \ |
| 160 V(_GrowableList, [], GrowableArrayGetIndexed, 1282104248) \ | 160 V(_GrowableList, [], GrowableArrayGetIndexed, 919108233) \ |
| 161 V(_GrowableList, []=, GrowableArraySetIndexed, 807019110) \ | 161 V(_GrowableList, []=, GrowableArraySetIndexed, 1218649853) \ |
| 162 V(_Float32Array, [], Float32ArrayGetIndexed, 1461569776) \ | 162 V(_Float32Array, [], Float32ArrayGetIndexed, 856653338) \ |
| 163 V(_Float32Array, []=, Float32ArraySetIndexed, 1318757370) \ | 163 V(_Float32Array, []=, Float32ArraySetIndexed, 2086166464) \ |
| 164 V(_Float64Array, [], Float64ArrayGetIndexed, 1107401598) \ | 164 V(_Float64Array, [], Float64ArrayGetIndexed, 1779054297) \ |
| 165 V(_Float64Array, []=, Float64ArraySetIndexed, 377873481) \ | 165 V(_Float64Array, []=, Float64ArraySetIndexed, 243929230) \ |
| 166 V(_Int8Array, [], Int8ArrayGetIndexed, 436208801) \ | 166 V(_Int8Array, [], Int8ArrayGetIndexed, 321230586) \ |
| 167 V(_Int8Array, []=, Int8ArraySetIndexed, 1257450859) \ | 167 V(_Int8Array, []=, Int8ArraySetIndexed, 2050598685) \ |
| 168 V(_Uint8Array, [], Uint8ArrayGetIndexed, 738731818) \ | 168 V(_Uint8Array, [], Uint8ArrayGetIndexed, 16125140) \ |
| 169 V(_Uint8Array, []=, Uint8ArraySetIndexed, 1414236073) \ | 169 V(_Uint8Array, []=, Uint8ArraySetIndexed, 2018064553) \ |
| 170 V(_Uint8ClampedArray, [], Uint8ClampedArrayGetIndexed, 1529176866) \ | 170 V(_Uint8ClampedArray, [], Uint8ClampedArrayGetIndexed, 430672063) \ |
| 171 V(_Uint8ClampedArray, []=, Uint8ClampedArraySetIndexed, 1902969517) \ | 171 V(_Uint8ClampedArray, []=, Uint8ClampedArraySetIndexed, 821294340) \ |
| 172 V(_ExternalUint8Array, [], ExternalUint8ArrayGetIndexed, 2067666479) \ | 172 V(_ExternalUint8Array, [], ExternalUint8ArrayGetIndexed, 1678777951) \ |
| 173 V(_ExternalUint8Array, []=, ExternalUint8ArraySetIndexed, 745187964) \ | 173 V(_ExternalUint8Array, []=, ExternalUint8ArraySetIndexed, 918478513) \ |
| 174 V(_ExternalUint8ClampedArray, [], ExternalUint8ClampedArrayGetIndexed, \ | 174 V(_ExternalUint8ClampedArray, [], ExternalUint8ClampedArrayGetIndexed, \ |
| 175 2068189358) \ | 175 1346536303) \ |
| 176 V(_ExternalUint8ClampedArray, []=, ExternalUint8ClampedArraySetIndexed, \ | 176 V(_ExternalUint8ClampedArray, []=, ExternalUint8ClampedArraySetIndexed, \ |
| 177 1251233632) \ | 177 1794849214) \ |
| 178 V(_Int16Array, [], Int16ArrayGetIndexed, 1428082706) \ | 178 V(_Int16Array, [], Int16ArrayGetIndexed, 74127855) \ |
| 179 V(_Int16Array, []=, Int16ArraySetIndexed, 266849900) \ | 179 V(_Int16Array, []=, Int16ArraySetIndexed, 1610252345) \ |
| 180 V(_Uint16Array, [], Uint16ArrayGetIndexed, 1050460407) \ | 180 V(_Uint16Array, [], Uint16ArrayGetIndexed, 470411953) \ |
| 181 V(_Uint16Array, []=, Uint16ArraySetIndexed, 1895506641) \ | 181 V(_Uint16Array, []=, Uint16ArraySetIndexed, 1648929040) \ |
| 182 V(_Int32Array, [], Int32ArrayGetIndexed, 1023604903) \ | 182 V(_Int32Array, [], Int32ArrayGetIndexed, 203101370) \ |
| 183 V(_Int32Array, []=, Int32ArraySetIndexed, 599753059) \ | 183 V(_Int32Array, []=, Int32ArraySetIndexed, 338968571) \ |
| 184 V(_Uint32Array, [], Uint32ArrayGetIndexed, 1658205989) \ | 184 V(_Uint32Array, [], Uint32ArrayGetIndexed, 1640672852) \ |
| 185 V(_Uint32Array, []=, Uint32ArraySetIndexed, 1065461643) \ | 185 V(_Uint32Array, []=, Uint32ArraySetIndexed, 1472976717) \ |
| 186 V(_Float32x4Array, [], Float32x4ArrayGetIndexed, 2137410088) \ | 186 V(_Float32x4Array, [], Float32x4ArrayGetIndexed, 1466627059) \ |
| 187 V(_Float32x4Array, []=, Float32x4ArraySetIndexed, 1583018506) \ | 187 V(_Float32x4Array, []=, Float32x4ArraySetIndexed, 2141660076) \ |
| 188 V(_Int32x4Array, [], Int32x4ArrayGetIndexed, 1911863146) \ | 188 V(_Int32x4Array, [], Int32x4ArrayGetIndexed, 818792056) \ |
| 189 V(_Int32x4Array, []=, Int32x4ArraySetIndexed, 973572811) \ | 189 V(_Int32x4Array, []=, Int32x4ArraySetIndexed, 1021474038) \ |
| 190 V(_Float64x2Array, [], Float64x2ArrayGetIndexed, 325873961) \ | 190 V(_Float64x2Array, [], Float64x2ArrayGetIndexed, 288114492) \ |
| 191 V(_Float64x2Array, []=, Float64x2ArraySetIndexed, 2105580462) \ | 191 V(_Float64x2Array, []=, Float64x2ArraySetIndexed, 941746736) \ |
| 192 | 192 |
| 193 | 193 |
| 194 // A list of core function that should always be inlined. | 194 // A list of core function that should always be inlined. |
| 195 #define INLINE_WHITE_LIST(V) \ | 195 #define INLINE_WHITE_LIST(V) \ |
| 196 V(_List, get:length, ObjectArrayLength, 215183186) \ | 196 V(_List, get:length, ObjectArrayLength, 1181352729) \ |
| 197 V(_ImmutableList, get:length, ImmutableArrayLength, 578762861) \ | 197 V(_ImmutableList, get:length, ImmutableArrayLength, 274917727) \ |
| 198 V(_TypedList, get:length, TypedDataLength, 26646119) \ | 198 V(_TypedList, get:length, TypedDataLength, 522565357) \ |
| 199 V(_GrowableList, get:length, GrowableArrayLength, 1654255033) \ | 199 V(_GrowableList, get:length, GrowableArrayLength, 778505107) \ |
| 200 V(_StringBase, get:length, StringBaseLength, 1483549854) \ | 200 V(_StringBase, get:length, StringBaseLength, 784399628) \ |
| 201 V(ListIterator, moveNext, ListIteratorMoveNext, 2062984847) \ | 201 V(ListIterator, moveNext, ListIteratorMoveNext, 210829138) \ |
| 202 V(_GrowableList, get:iterator, GrowableArrayIterator, 1155241039) \ | 202 V(_GrowableList, get:iterator, GrowableArrayIterator, 1812933946) \ |
| 203 V(_GrowableList, forEach, GrowableArrayForEach, 195359970) \ | 203 V(_GrowableList, forEach, GrowableArrayForEach, 2085943947) \ |
| 204 V(_List, [], ObjectArrayGetIndexed, 675155875) \ | 204 V(_List, [], ObjectArrayGetIndexed, 795612476) \ |
| 205 V(_List, []=, ObjectArraySetIndexed, 1228569706) \ | 205 V(_List, []=, ObjectArraySetIndexed, 1288827575) \ |
| 206 V(_List, get:isEmpty, ObjectArrayIsEmpty, 1082804442) \ | 206 V(_List, get:isEmpty, ObjectArrayIsEmpty, 2130247737) \ |
| 207 V(_ImmutableList, [], ImmutableArrayGetIndexed, 1768793932) \ | 207 V(_ImmutableList, [], ImmutableArrayGetIndexed, 1990177341) \ |
| 208 V(_GrowableList, [], GrowableArrayGetIndexed, 1282104248) \ | 208 V(_GrowableList, [], GrowableArrayGetIndexed, 919108233) \ |
| 209 V(_GrowableList, []=, GrowableArraySetIndexed, 807019110) \ | 209 V(_GrowableList, []=, GrowableArraySetIndexed, 1218649853) \ |
| 210 V(_Float32Array, [], Float32ArrayGetIndexed, 1461569776) \ | 210 V(_Float32Array, [], Float32ArrayGetIndexed, 856653338) \ |
| 211 V(_Float32Array, []=, Float32ArraySetIndexed, 1318757370) \ | 211 V(_Float32Array, []=, Float32ArraySetIndexed, 2086166464) \ |
| 212 V(_Float64Array, [], Float64ArrayGetIndexed, 1107401598) \ | 212 V(_Float64Array, [], Float64ArrayGetIndexed, 1779054297) \ |
| 213 V(_Float64Array, []=, Float64ArraySetIndexed, 377873481) \ | 213 V(_Float64Array, []=, Float64ArraySetIndexed, 243929230) \ |
| 214 V(_Int8Array, [], Int8ArrayGetIndexed, 436208801) \ | 214 V(_Int8Array, [], Int8ArrayGetIndexed, 321230586) \ |
| 215 V(_Int8Array, []=, Int8ArraySetIndexed, 1257450859) \ | 215 V(_Int8Array, []=, Int8ArraySetIndexed, 2050598685) \ |
| 216 V(_Uint8Array, [], Uint8ArrayGetIndexed, 738731818) \ | 216 V(_Uint8Array, [], Uint8ArrayGetIndexed, 16125140) \ |
| 217 V(_Uint8Array, []=, Uint8ArraySetIndexed, 1414236073) \ | 217 V(_Uint8Array, []=, Uint8ArraySetIndexed, 2018064553) \ |
| 218 V(_Uint8ClampedArray, [], Uint8ClampedArrayGetIndexed, 1529176866) \ | 218 V(_Uint8ClampedArray, [], Uint8ClampedArrayGetIndexed, 430672063) \ |
| 219 V(_Uint8ClampedArray, []=, Uint8ClampedArraySetIndexed, 1902969517) \ | 219 V(_Uint8ClampedArray, []=, Uint8ClampedArraySetIndexed, 821294340) \ |
| 220 V(_Uint16Array, [], Uint16ArrayGetIndexed, 1050460407) \ | 220 V(_Uint16Array, [], Uint16ArrayGetIndexed, 470411953) \ |
| 221 V(_Uint16Array, []=, Uint16ArraySetIndexed, 1895506641) \ | 221 V(_Uint16Array, []=, Uint16ArraySetIndexed, 1648929040) \ |
| 222 V(_Int16Array, [], Int16ArrayGetIndexed, 1428082706) \ | 222 V(_Int16Array, [], Int16ArrayGetIndexed, 74127855) \ |
| 223 V(_Int16Array, []=, Int16ArraySetIndexed, 266849900) \ | 223 V(_Int16Array, []=, Int16ArraySetIndexed, 1610252345) \ |
| 224 V(_Int32Array, [], Int32ArrayGetIndexed, 1023604903) \ | 224 V(_Int32Array, [], Int32ArrayGetIndexed, 203101370) \ |
| 225 V(_Int32Array, []=, Int32ArraySetIndexed, 599753059) \ | 225 V(_Int32Array, []=, Int32ArraySetIndexed, 338968571) \ |
| 226 V(_Uint8ArrayView, [], Uint8ArrayViewGetIndexed, 250795553) \ | 226 V(_Uint8ArrayView, [], Uint8ArrayViewGetIndexed, 1543480955) \ |
| 227 V(_Uint8ArrayView, []=, Uint8ArrayViewSetIndexed, 533993880) \ | 227 V(_Uint8ArrayView, []=, Uint8ArrayViewSetIndexed, 936729641) \ |
| 228 V(_Int8ArrayView, [], Int8ArrayViewGetIndexed, 530738523) \ | 228 V(_Int8ArrayView, [], Int8ArrayViewGetIndexed, 1898018934) \ |
| 229 V(_Int8ArrayView, []=, Int8ArrayViewSetIndexed, 1513635170) \ | 229 V(_Int8ArrayView, []=, Int8ArrayViewSetIndexed, 111684506) \ |
| 230 V(::, asin, MathASin, 1528431637) \ | 230 V(::, asin, MathASin, 1651042633) \ |
| 231 V(::, acos, MathACos, 1558635398) \ | 231 V(::, acos, MathACos, 1139647090) \ |
| 232 V(::, atan, MathATan, 209476605) \ | 232 V(::, atan, MathATan, 1668754384) \ |
| 233 V(::, atan2, MathATan2, 2059468649) \ | 233 V(::, atan2, MathATan2, 1845649456) \ |
| 234 V(::, cos, MathCos, 1282146521) \ | 234 V(::, cos, MathCos, 1951197905) \ |
| 235 V(::, exp, MathExp, 1951779581) \ | 235 V(::, exp, MathExp, 1809210829) \ |
| 236 V(::, log, MathLog, 255699484) \ | 236 V(::, log, MathLog, 1620336448) \ |
| 237 V(::, max, MathMax, 612058870) \ | 237 V(::, max, MathMax, 612058870) \ |
| 238 V(::, min, MathMin, 1022567780) \ | 238 V(::, min, MathMin, 1022567780) \ |
| 239 V(::, pow, MathPow, 1880071137) \ | 239 V(::, pow, MathPow, 930962530) \ |
| 240 V(::, sin, MathSin, 730107143) \ | 240 V(::, sin, MathSin, 1741396147) \ |
| 241 V(::, sqrt, MathSqrt, 465520247) \ | 241 V(::, sqrt, MathSqrt, 101545548) \ |
| 242 V(::, tan, MathTan, 2077846426) \ | 242 V(::, tan, MathTan, 982072809) \ |
| 243 | 243 |
| 244 | 244 |
| 245 // A list of core functions that internally dispatch based on received id. | 245 // A list of core functions that internally dispatch based on received id. |
| 246 #define POLYMORPHIC_TARGET_LIST(V) \ | 246 #define POLYMORPHIC_TARGET_LIST(V) \ |
| 247 V(_StringBase, [], StringBaseCharAt, 585372763) \ | 247 V(_StringBase, [], StringBaseCharAt, 1512210677) \ |
| 248 V(_StringBase, codeUnitAt, StringBaseCodeUnitAt, 1958436584) \ | 248 V(_StringBase, codeUnitAt, StringBaseCodeUnitAt, 397735324) \ |
| 249 V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 272598802) \ | 249 V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 1541411498) \ |
| 250 V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 831354841) \ | 250 V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 1032404349) \ |
| 251 V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 1832126257) \ | 251 V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 381073990) \ |
| 252 V(_TypedList, _getUint16, ByteArrayBaseGetUint16, 1762714698) \ | 252 V(_TypedList, _getUint16, ByteArrayBaseGetUint16, 1142676276) \ |
| 253 V(_TypedList, _getInt32, ByteArrayBaseGetInt32, 48785449) \ | 253 V(_TypedList, _getInt32, ByteArrayBaseGetInt32, 330269934) \ |
| 254 V(_TypedList, _getUint32, ByteArrayBaseGetUint32, 1392579206) \ | 254 V(_TypedList, _getUint32, ByteArrayBaseGetUint32, 59490554) \ |
| 255 V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 185163470) \ | 255 V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 393003933) \ |
| 256 V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 1356392173) \ | 256 V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 1792407200) \ |
| 257 V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 1239681356) \ | 257 V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 1338379857) \ |
| 258 V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 163795162) \ | 258 V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 1469917805) \ |
| 259 V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 1793798234) \ | 259 V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 433348464) \ |
| 260 V(_TypedList, _setUint8, ByteArrayBaseSetInt8, 67253374) \ | 260 V(_TypedList, _setUint8, ByteArrayBaseSetInt8, 149406583) \ |
| 261 V(_TypedList, _setInt16, ByteArrayBaseSetInt16, 10467750) \ | 261 V(_TypedList, _setInt16, ByteArrayBaseSetInt16, 805477162) \ |
| 262 V(_TypedList, _setUint16, ByteArrayBaseSetInt16, 1596986894) \ | 262 V(_TypedList, _setUint16, ByteArrayBaseSetInt16, 888580944) \ |
| 263 V(_TypedList, _setInt32, ByteArrayBaseSetInt32, 868037529) \ | 263 V(_TypedList, _setInt32, ByteArrayBaseSetInt32, 1708248181) \ |
| 264 V(_TypedList, _setUint32, ByteArrayBaseSetUint32, 1776345006) \ | 264 V(_TypedList, _setUint32, ByteArrayBaseSetUint32, 1863152792) \ |
| 265 V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 1807927533) \ | 265 V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 1148703855) \ |
| 266 V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 399659907) \ | 266 V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 972883980) \ |
| 267 V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 1612092224) \ | 267 V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 950522310) \ |
| 268 V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 74799321) \ | 268 V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 1301138078) \ |
| 269 | 269 |
| 270 // Class that recognizes the name and owner of a function and returns the | 270 // Class that recognizes the name and owner of a function and returns the |
| 271 // corresponding enum. See RECOGNIZED_LIST above for list of recognizable | 271 // corresponding enum. See RECOGNIZED_LIST above for list of recognizable |
| 272 // functions. | 272 // functions. |
| 273 class MethodRecognizer : public AllStatic { | 273 class MethodRecognizer : public AllStatic { |
| 274 public: | 274 public: |
| 275 enum Kind { | 275 enum Kind { |
| 276 kUnknown, | 276 kUnknown, |
| 277 #define DEFINE_ENUM_LIST(class_name, function_name, enum_name, fp) k##enum_name, | 277 #define DEFINE_ENUM_LIST(class_name, function_name, enum_name, fp) k##enum_name, |
| 278 RECOGNIZED_LIST(DEFINE_ENUM_LIST) | 278 RECOGNIZED_LIST(DEFINE_ENUM_LIST) |
| (...skipping 7723 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8002 ForwardInstructionIterator* current_iterator_; | 8002 ForwardInstructionIterator* current_iterator_; |
| 8003 | 8003 |
| 8004 private: | 8004 private: |
| 8005 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); | 8005 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); |
| 8006 }; | 8006 }; |
| 8007 | 8007 |
| 8008 | 8008 |
| 8009 } // namespace dart | 8009 } // namespace dart |
| 8010 | 8010 |
| 8011 #endif // VM_INTERMEDIATE_LANGUAGE_H_ | 8011 #endif // VM_INTERMEDIATE_LANGUAGE_H_ |
| OLD | NEW |