X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/93a3786624b2768d89bfa27e46598dc64e2fb70a..40a37d088818fc2fbeba2ef850dbcaaf294befbf:/bytecode/ByValInfo.h diff --git a/bytecode/ByValInfo.h b/bytecode/ByValInfo.h index 3f79967..ebe587d 100644 --- a/bytecode/ByValInfo.h +++ b/bytecode/ByValInfo.h @@ -26,8 +26,6 @@ #ifndef ByValInfo_h #define ByValInfo_h -#include - #if ENABLE(JIT) #include "ClassInfo.h" @@ -69,7 +67,7 @@ inline bool isOptimizableIndexingType(IndexingType indexingType) inline bool hasOptimizableIndexingForClassInfo(const ClassInfo* classInfo) { - return classInfo->typedArrayStorageType != TypedArrayNone; + return isTypedView(classInfo->typedArrayStorageType); } inline bool hasOptimizableIndexing(Structure* structure) @@ -98,23 +96,23 @@ inline JITArrayMode jitArrayModeForIndexingType(IndexingType indexingType) inline JITArrayMode jitArrayModeForClassInfo(const ClassInfo* classInfo) { switch (classInfo->typedArrayStorageType) { - case TypedArrayInt8: + case TypeInt8: return JITInt8Array; - case TypedArrayInt16: + case TypeInt16: return JITInt16Array; - case TypedArrayInt32: + case TypeInt32: return JITInt32Array; - case TypedArrayUint8: + case TypeUint8: return JITUint8Array; - case TypedArrayUint8Clamped: + case TypeUint8Clamped: return JITUint8ClampedArray; - case TypedArrayUint16: + case TypeUint16: return JITUint16Array; - case TypedArrayUint32: + case TypeUint32: return JITUint32Array; - case TypedArrayFloat32: + case TypeFloat32: return JITFloat32Array; - case TypedArrayFloat64: + case TypeFloat64: return JITFloat64Array; default: CRASH(); @@ -122,6 +120,33 @@ inline JITArrayMode jitArrayModeForClassInfo(const ClassInfo* classInfo) } } +inline TypedArrayType typedArrayTypeForJITArrayMode(JITArrayMode mode) +{ + switch (mode) { + case JITInt8Array: + return TypeInt8; + case JITInt16Array: + return TypeInt16; + case JITInt32Array: + return TypeInt32; + case JITUint8Array: + return TypeUint8; + case JITUint8ClampedArray: + return TypeUint8Clamped; + case JITUint16Array: + return TypeUint16; + case JITUint32Array: + return TypeUint32; + case JITFloat32Array: + return TypeFloat32; + case JITFloat64Array: + return TypeFloat64; + default: + CRASH(); + return NotTypedArray; + } +} + inline JITArrayMode jitArrayModeForStructure(Structure* structure) { if (isOptimizableIndexingType(structure->indexingType()))