Index: src/runtime.h |
diff --git a/src/runtime.h b/src/runtime.h |
index 62c52a7de061d5d0384ac44ac368054bcac86d91..42a3c05f234c5f2caf05dd8d922afbc1164fa121 100644 |
--- a/src/runtime.h |
+++ b/src/runtime.h |
@@ -190,6 +190,59 @@ namespace internal { |
F(Math_sqrt, 1, 1) \ |
F(Math_tan, 1, 1) \ |
\ |
+ /* Float32x4 and Int32x4 */ \ |
+ F(AllocateFloat32x4, 0, 1) \ |
+ F(AllocateInt32x4, 0, 1) \ |
+ \ |
+ /* SIMD */ \ |
+ F(SIMDAbs, 1, 1) \ |
+ F(SIMDNeg, 1, 1) \ |
+ F(SIMDAdd, 2, 1) \ |
+ F(SIMDSub, 2, 1) \ |
+ F(SIMDMul, 2, 1) \ |
+ F(SIMDDiv, 2, 1) \ |
+ F(SIMDClamp, 3, 1) \ |
+ F(SIMDMin, 2, 1) \ |
+ F(SIMDMax, 2, 1) \ |
+ F(SIMDReciprocal, 1, 1) \ |
+ F(SIMDReciprocalSqrt, 1, 1) \ |
+ F(SIMDScale, 2, 1) \ |
+ F(SIMDSqrt, 1, 1) \ |
+ F(SIMDShuffle, 2, 1) \ |
+ F(SIMDShuffleMix, 3, 1) \ |
+ F(SIMDWithX, 2, 1) \ |
+ F(SIMDWithY, 2, 1) \ |
+ F(SIMDWithZ, 2, 1) \ |
+ F(SIMDWithW, 2, 1) \ |
+ F(SIMDToFloat32x4, 1, 1) \ |
+ F(SIMDBitsToFloat32x4, 1, 1) \ |
+ F(SIMDToInt32x4, 1, 1) \ |
+ F(SIMDBitsToInt32x4, 1, 1) \ |
+ F(SIMDLessThan, 2, 1) \ |
+ F(SIMDLessThanOrEqual, 2, 1) \ |
+ F(SIMDEqual, 2, 1) \ |
+ F(SIMDNotEqual, 2, 1) \ |
+ F(SIMDGreaterThanOrEqual, 2, 1) \ |
+ F(SIMDGreaterThan, 2, 1) \ |
+ F(SIMDAnd, 2, 1) \ |
+ F(SIMDOr, 2, 1) \ |
+ F(SIMDXor, 2, 1) \ |
+ F(SIMDNot, 1, 1) \ |
+ F(SIMDNegu32, 1, 1) \ |
+ F(SIMDAddu32, 2, 1) \ |
+ F(SIMDSubu32, 2, 1) \ |
+ F(SIMDMulu32, 2, 1) \ |
+ F(SIMDSelect, 3, 1) \ |
+ F(SIMDShuffleu32, 2, 1) \ |
+ F(SIMDWithXu32, 2, 1) \ |
+ F(SIMDWithYu32, 2, 1) \ |
+ F(SIMDWithZu32, 2, 1) \ |
+ F(SIMDWithWu32, 2, 1) \ |
+ F(SIMDWithFlagX, 2, 1) \ |
+ F(SIMDWithFlagY, 2, 1) \ |
+ F(SIMDWithFlagZ, 2, 1) \ |
+ F(SIMDWithFlagW, 2, 1) \ |
+ \ |
/* Regular expressions */ \ |
F(RegExpCompile, 3, 1) \ |
F(RegExpExec, 4, 1) \ |
@@ -271,6 +324,24 @@ namespace internal { |
\ |
/* Numbers */ \ |
\ |
+ /* Float32x4 and Int32x4 */ \ |
+ F(CreateFloat32x4, 4, 1) \ |
+ F(Float32x4GetX, 1, 1) \ |
+ F(Float32x4GetY, 1, 1) \ |
+ F(Float32x4GetZ, 1, 1) \ |
+ F(Float32x4GetW, 1, 1) \ |
+ F(Float32x4GetSignMask, 1, 1) \ |
+ F(CreateInt32x4, 4, 1) \ |
+ F(Int32x4GetX, 1, 1) \ |
+ F(Int32x4GetY, 1, 1) \ |
+ F(Int32x4GetZ, 1, 1) \ |
+ F(Int32x4GetW, 1, 1) \ |
+ F(Int32x4GetFlagX, 1, 1) \ |
+ F(Int32x4GetFlagY, 1, 1) \ |
+ F(Int32x4GetFlagZ, 1, 1) \ |
+ F(Int32x4GetFlagW, 1, 1) \ |
+ F(Int32x4GetSignMask, 1, 1) \ |
+ \ |
/* Globals */ \ |
F(CompileString, 2, 1) \ |
F(GlobalPrint, 1, 1) \ |
@@ -470,6 +541,8 @@ namespace internal { |
F(HasExternalIntElements, 1, 1) \ |
F(HasExternalUnsignedIntElements, 1, 1) \ |
F(HasExternalFloatElements, 1, 1) \ |
+ F(HasExternalFloat32x4Elements, 1, 1) \ |
+ F(HasExternalInt32x4Elements, 1, 1) \ |
F(HasExternalDoubleElements, 1, 1) \ |
F(HasFastProperties, 1, 1) \ |
F(TransitionElementsKind, 2, 1) \ |
@@ -839,7 +912,9 @@ class Runtime : public AllStatic { |
ARRAY_ID_INT32 = 6, |
ARRAY_ID_FLOAT32 = 7, |
ARRAY_ID_FLOAT64 = 8, |
- ARRAY_ID_UINT8C = 9 |
+ ARRAY_ID_UINT8C = 9, |
+ ARRAY_ID_FLOAT32x4 = 10, |
+ ARRAY_ID_INT32x4 = 11 |
}; |
static void ArrayIdToTypeAndSize(int array_id, |