Changeset 130839 in webkit for trunk/Source/JavaScriptCore/bytecode/ByValInfo.h
- Timestamp:
- Oct 9, 2012, 7:14:42 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/bytecode/ByValInfo.h
r130828 r130839 31 31 #if ENABLE(JIT) 32 32 33 #include "ClassInfo.h" 33 34 #include "CodeLocation.h" 34 35 #include "IndexingType.h" 35 36 #include "JITStubRoutine.h" 37 #include "Structure.h" 36 38 37 39 namespace JSC { 38 40 39 enum JITArrayMode { JITContiguous, JITArrayStorage }; 41 enum JITArrayMode { 42 JITContiguous, 43 JITArrayStorage, 44 JITInt8Array, 45 JITInt16Array, 46 JITInt32Array, 47 JITUint8Array, 48 JITUint8ClampedArray, 49 JITUint16Array, 50 JITUint32Array, 51 JITFloat32Array, 52 JITFloat64Array 53 }; 40 54 41 55 inline bool isOptimizableIndexingType(IndexingType indexingType) … … 48 62 return false; 49 63 } 64 } 65 66 inline bool hasOptimizableIndexingForClassInfo(const ClassInfo* classInfo) 67 { 68 return classInfo->typedArrayStorageType != TypedArrayNone; 69 } 70 71 inline bool hasOptimizableIndexing(Structure* structure) 72 { 73 return isOptimizableIndexingType(structure->indexingType()) 74 || hasOptimizableIndexingForClassInfo(structure->classInfo()); 50 75 } 51 76 … … 63 88 } 64 89 90 inline JITArrayMode jitArrayModeForClassInfo(const ClassInfo* classInfo) 91 { 92 switch (classInfo->typedArrayStorageType) { 93 case TypedArrayInt8: 94 return JITInt8Array; 95 case TypedArrayInt16: 96 return JITInt16Array; 97 case TypedArrayInt32: 98 return JITInt32Array; 99 case TypedArrayUint8: 100 return JITUint8Array; 101 case TypedArrayUint8Clamped: 102 return JITUint8ClampedArray; 103 case TypedArrayUint16: 104 return JITUint16Array; 105 case TypedArrayUint32: 106 return JITUint32Array; 107 case TypedArrayFloat32: 108 return JITFloat32Array; 109 case TypedArrayFloat64: 110 return JITFloat64Array; 111 default: 112 CRASH(); 113 return JITContiguous; 114 } 115 } 116 117 inline JITArrayMode jitArrayModeForStructure(Structure* structure) 118 { 119 if (isOptimizableIndexingType(structure->indexingType())) 120 return jitArrayModeForIndexingType(structure->indexingType()); 121 122 ASSERT(hasOptimizableIndexingForClassInfo(structure->classInfo())); 123 return jitArrayModeForClassInfo(structure->classInfo()); 124 } 125 65 126 struct ByValInfo { 66 127 ByValInfo() { } … … 72 133 , badTypeJumpToDone(badTypeJumpToDone) 73 134 , returnAddressToSlowPath(returnAddressToSlowPath) 135 , slowPathCount(0) 74 136 { 75 137 } … … 80 142 int16_t badTypeJumpToDone; 81 143 int16_t returnAddressToSlowPath; 144 unsigned slowPathCount; 82 145 RefPtr<JITStubRoutine> stubRoutine; 83 146 };
Note:
See TracChangeset
for help on using the changeset viewer.