| Index: src/runtime/runtime.h
|
| diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h
|
| index 9c5c0b5f99fc497493a3818c65290624d6e6d194..6979dbb905b702a77f5309e717cd221563767daa 100644
|
| --- a/src/runtime/runtime.h
|
| +++ b/src/runtime/runtime.h
|
| @@ -569,42 +569,178 @@ namespace internal {
|
| F(Arguments, 1, 1)
|
|
|
|
|
| -#define FOR_EACH_INTRINSIC_SIMD(F) \
|
| - F(IsSimdObject, 1, 1) \
|
| - F(SimdToObject, 1, 1) \
|
| - F(SimdEquals, 2, 1) \
|
| - F(SimdSameValue, 2, 1) \
|
| - F(SimdSameValueZero, 2, 1) \
|
| - F(CreateFloat32x4, 4, 1) \
|
| - F(CreateInt32x4, 4, 1) \
|
| - F(CreateBool32x4, 4, 1) \
|
| - F(CreateInt16x8, 8, 1) \
|
| - F(CreateBool16x8, 8, 1) \
|
| - F(CreateInt8x16, 16, 1) \
|
| - F(CreateBool8x16, 16, 1) \
|
| - F(Float32x4Check, 1, 1) \
|
| - F(Int32x4Check, 1, 1) \
|
| - F(Bool32x4Check, 1, 1) \
|
| - F(Int16x8Check, 1, 1) \
|
| - F(Bool16x8Check, 1, 1) \
|
| - F(Int8x16Check, 1, 1) \
|
| - F(Bool8x16Check, 1, 1) \
|
| - F(Float32x4ExtractLane, 2, 1) \
|
| - F(Int32x4ExtractLane, 2, 1) \
|
| - F(Bool32x4ExtractLane, 2, 1) \
|
| - F(Int16x8ExtractLane, 2, 1) \
|
| - F(Int16x8UnsignedExtractLane, 2, 1) \
|
| - F(Bool16x8ExtractLane, 2, 1) \
|
| - F(Int8x16ExtractLane, 2, 1) \
|
| - F(Int8x16UnsignedExtractLane, 2, 1) \
|
| - F(Bool8x16ExtractLane, 2, 1) \
|
| - F(Float32x4ReplaceLane, 3, 1) \
|
| - F(Int32x4ReplaceLane, 3, 1) \
|
| - F(Bool32x4ReplaceLane, 3, 1) \
|
| - F(Int16x8ReplaceLane, 3, 1) \
|
| - F(Bool16x8ReplaceLane, 3, 1) \
|
| - F(Int8x16ReplaceLane, 3, 1) \
|
| - F(Bool8x16ReplaceLane, 3, 1)
|
| +#define FOR_EACH_INTRINSIC_SIMD(F) \
|
| + F(IsSimdObject, 1, 1) \
|
| + F(SimdToObject, 1, 1) \
|
| + F(SimdEquals, 2, 1) \
|
| + F(SimdSameValue, 2, 1) \
|
| + F(SimdSameValueZero, 2, 1) \
|
| + F(CreateFloat32x4, 4, 1) \
|
| + F(CreateInt32x4, 4, 1) \
|
| + F(CreateBool32x4, 4, 1) \
|
| + F(CreateInt16x8, 8, 1) \
|
| + F(CreateBool16x8, 8, 1) \
|
| + F(CreateInt8x16, 16, 1) \
|
| + F(CreateBool8x16, 16, 1) \
|
| + F(Float32x4Check, 1, 1) \
|
| + F(Float32x4ExtractLane, 2, 1) \
|
| + F(Float32x4ReplaceLane, 3, 1) \
|
| + F(Float32x4Abs, 1, 1) \
|
| + F(Float32x4Neg, 1, 1) \
|
| + F(Float32x4Sqrt, 1, 1) \
|
| + F(Float32x4RecipApprox, 1, 1) \
|
| + F(Float32x4RecipSqrtApprox, 1, 1) \
|
| + F(Float32x4Add, 2, 1) \
|
| + F(Float32x4Sub, 2, 1) \
|
| + F(Float32x4Mul, 2, 1) \
|
| + F(Float32x4Div, 2, 1) \
|
| + F(Float32x4Min, 2, 1) \
|
| + F(Float32x4Max, 2, 1) \
|
| + F(Float32x4MinNum, 2, 1) \
|
| + F(Float32x4MaxNum, 2, 1) \
|
| + F(Float32x4LessThan, 2, 1) \
|
| + F(Float32x4LessThanOrEqual, 2, 1) \
|
| + F(Float32x4GreaterThan, 2, 1) \
|
| + F(Float32x4GreaterThanOrEqual, 2, 1) \
|
| + F(Float32x4Equal, 2, 1) \
|
| + F(Float32x4NotEqual, 2, 1) \
|
| + F(Float32x4Select, 3, 1) \
|
| + F(Float32x4Swizzle, 5, 1) \
|
| + F(Float32x4Shuffle, 6, 1) \
|
| + F(Float32x4FromInt32x4, 1, 1) \
|
| + F(Float32x4FromInt32x4Bits, 1, 1) \
|
| + F(Float32x4FromInt16x8Bits, 1, 1) \
|
| + F(Float32x4FromInt8x16Bits, 1, 1) \
|
| + F(Int32x4Check, 1, 1) \
|
| + F(Int32x4ExtractLane, 2, 1) \
|
| + F(Int32x4ReplaceLane, 3, 1) \
|
| + F(Int32x4Add, 2, 1) \
|
| + F(Int32x4Sub, 2, 1) \
|
| + F(Int32x4Mul, 2, 1) \
|
| + F(Int32x4Min, 2, 1) \
|
| + F(Int32x4Max, 2, 1) \
|
| + F(Int32x4And, 2, 1) \
|
| + F(Int32x4Or, 2, 1) \
|
| + F(Int32x4Xor, 2, 1) \
|
| + F(Int32x4Not, 1, 1) \
|
| + F(Int32x4ShiftLeftByScalar, 2, 1) \
|
| + F(Int32x4ShiftRightLogicalByScalar, 2, 1) \
|
| + F(Int32x4ShiftRightArithmeticByScalar, 2, 1) \
|
| + F(Int32x4LessThan, 2, 1) \
|
| + F(Int32x4LessThanOrEqual, 2, 1) \
|
| + F(Int32x4GreaterThan, 2, 1) \
|
| + F(Int32x4GreaterThanOrEqual, 2, 1) \
|
| + F(Int32x4Equal, 2, 1) \
|
| + F(Int32x4NotEqual, 2, 1) \
|
| + F(Int32x4Select, 3, 1) \
|
| + F(Int32x4Swizzle, 5, 1) \
|
| + F(Int32x4Shuffle, 6, 1) \
|
| + F(Int32x4FromFloat32x4, 1, 1) \
|
| + F(Int32x4FromFloat32x4Bits, 1, 1) \
|
| + F(Int32x4FromInt16x8Bits, 1, 1) \
|
| + F(Int32x4FromInt8x16Bits, 1, 1) \
|
| + F(Bool32x4Check, 1, 1) \
|
| + F(Bool32x4ExtractLane, 2, 1) \
|
| + F(Bool32x4ReplaceLane, 3, 1) \
|
| + F(Bool32x4And, 2, 1) \
|
| + F(Bool32x4Or, 2, 1) \
|
| + F(Bool32x4Xor, 2, 1) \
|
| + F(Bool32x4Not, 1, 1) \
|
| + F(Bool32x4AnyTrue, 1, 1) \
|
| + F(Bool32x4AllTrue, 1, 1) \
|
| + F(Bool32x4Equal, 2, 1) \
|
| + F(Bool32x4NotEqual, 2, 1) \
|
| + F(Bool32x4Select, 3, 1) \
|
| + F(Bool32x4Swizzle, 5, 1) \
|
| + F(Bool32x4Shuffle, 6, 1) \
|
| + F(Int16x8Check, 1, 1) \
|
| + F(Int16x8ExtractLane, 2, 1) \
|
| + F(Int16x8UnsignedExtractLane, 2, 1) \
|
| + F(Int16x8ReplaceLane, 3, 1) \
|
| + F(Int16x8Add, 2, 1) \
|
| + F(Int16x8AddSaturate, 2, 1) \
|
| + F(Int16x8Sub, 2, 1) \
|
| + F(Int16x8SubSaturate, 2, 1) \
|
| + F(Int16x8Mul, 2, 1) \
|
| + F(Int16x8Min, 2, 1) \
|
| + F(Int16x8Max, 2, 1) \
|
| + F(Int16x8And, 2, 1) \
|
| + F(Int16x8Or, 2, 1) \
|
| + F(Int16x8Xor, 2, 1) \
|
| + F(Int16x8Not, 1, 1) \
|
| + F(Int16x8ShiftLeftByScalar, 2, 1) \
|
| + F(Int16x8ShiftRightLogicalByScalar, 2, 1) \
|
| + F(Int16x8ShiftRightArithmeticByScalar, 2, 1) \
|
| + F(Int16x8LessThan, 2, 1) \
|
| + F(Int16x8LessThanOrEqual, 2, 1) \
|
| + F(Int16x8GreaterThan, 2, 1) \
|
| + F(Int16x8GreaterThanOrEqual, 2, 1) \
|
| + F(Int16x8Equal, 2, 1) \
|
| + F(Int16x8NotEqual, 2, 1) \
|
| + F(Int16x8Select, 3, 1) \
|
| + F(Int16x8Swizzle, 9, 1) \
|
| + F(Int16x8Shuffle, 10, 1) \
|
| + F(Int16x8FromFloat32x4Bits, 1, 1) \
|
| + F(Int16x8FromInt32x4Bits, 1, 1) \
|
| + F(Int16x8FromInt8x16Bits, 1, 1) \
|
| + F(Bool16x8Check, 1, 1) \
|
| + F(Bool16x8ExtractLane, 2, 1) \
|
| + F(Bool16x8ReplaceLane, 3, 1) \
|
| + F(Bool16x8And, 2, 1) \
|
| + F(Bool16x8Or, 2, 1) \
|
| + F(Bool16x8Xor, 2, 1) \
|
| + F(Bool16x8Not, 1, 1) \
|
| + F(Bool16x8AnyTrue, 1, 1) \
|
| + F(Bool16x8AllTrue, 1, 1) \
|
| + F(Bool16x8Equal, 2, 1) \
|
| + F(Bool16x8NotEqual, 2, 1) \
|
| + F(Bool16x8Select, 3, 1) \
|
| + F(Bool16x8Swizzle, 9, 1) \
|
| + F(Bool16x8Shuffle, 10, 1) \
|
| + F(Int8x16Check, 1, 1) \
|
| + F(Int8x16ExtractLane, 2, 1) \
|
| + F(Int8x16UnsignedExtractLane, 2, 1) \
|
| + F(Int8x16ReplaceLane, 3, 1) \
|
| + F(Int8x16Add, 2, 1) \
|
| + F(Int8x16AddSaturate, 2, 1) \
|
| + F(Int8x16Sub, 2, 1) \
|
| + F(Int8x16SubSaturate, 2, 1) \
|
| + F(Int8x16Mul, 2, 1) \
|
| + F(Int8x16Min, 2, 1) \
|
| + F(Int8x16Max, 2, 1) \
|
| + F(Int8x16And, 2, 1) \
|
| + F(Int8x16Or, 2, 1) \
|
| + F(Int8x16Xor, 2, 1) \
|
| + F(Int8x16Not, 1, 1) \
|
| + F(Int8x16ShiftLeftByScalar, 2, 1) \
|
| + F(Int8x16ShiftRightLogicalByScalar, 2, 1) \
|
| + F(Int8x16ShiftRightArithmeticByScalar, 2, 1) \
|
| + F(Int8x16LessThan, 2, 1) \
|
| + F(Int8x16LessThanOrEqual, 2, 1) \
|
| + F(Int8x16GreaterThan, 2, 1) \
|
| + F(Int8x16GreaterThanOrEqual, 2, 1) \
|
| + F(Int8x16Equal, 2, 1) \
|
| + F(Int8x16NotEqual, 2, 1) \
|
| + F(Int8x16Select, 3, 1) \
|
| + F(Int8x16Swizzle, 17, 1) \
|
| + F(Int8x16Shuffle, 18, 1) \
|
| + F(Int8x16FromFloat32x4Bits, 1, 1) \
|
| + F(Int8x16FromInt32x4Bits, 1, 1) \
|
| + F(Int8x16FromInt16x8Bits, 1, 1) \
|
| + F(Bool8x16Check, 1, 1) \
|
| + F(Bool8x16ExtractLane, 2, 1) \
|
| + F(Bool8x16ReplaceLane, 3, 1) \
|
| + F(Bool8x16And, 2, 1) \
|
| + F(Bool8x16Or, 2, 1) \
|
| + F(Bool8x16Xor, 2, 1) \
|
| + F(Bool8x16Not, 1, 1) \
|
| + F(Bool8x16AnyTrue, 1, 1) \
|
| + F(Bool8x16AllTrue, 1, 1) \
|
| + F(Bool8x16Equal, 2, 1) \
|
| + F(Bool8x16NotEqual, 2, 1) \
|
| + F(Bool8x16Select, 3, 1) \
|
| + F(Bool8x16Swizzle, 17, 1) \
|
| + F(Bool8x16Shuffle, 18, 1)
|
|
|
|
|
| #define FOR_EACH_INTRINSIC_STRINGS(F) \
|
|
|