| //------------------------------------------------------------------------------------------------------- |
| // Copyright (C) Microsoft Corporation and contributors. All rights reserved. |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. |
| //------------------------------------------------------------------------------------------------------- |
| |
| #ifdef ASMJS_PLAT |
| // See Lib\Runtime\Language\InterpreterProcessOpCodeAsmJs.h for Handler Process |
| // ( HandlerProcess , OpCodeAsmJs , HandlerFunction , LayoutAsmJs , Type ) |
| // ( | , | , | , | , | ) |
| // ( | , | , | , | , | ) |
| // ( V , V , V , V , V ) |
| |
| DEF2 ( NOPASMJS , Nop , Empty ) |
| EXDEF2 (NOPASMJS , InvalidOpCode, Empty ) |
| DEF2 ( NOPASMJS , Label , Empty ) |
| DEF2 ( BR_ASM , AsmBr , OP_Br ) |
| |
| DEF2_WMS( FALLTHROUGH_ASM , LdSlotArr , /* Common case with LdSlot */ ) |
| DEF3_WMS( GET_ELEM_SLOT_ASM, LdSlot , OP_LdAsmJsSlot , ElementSlot ) |
| DEF2_WMS( FUNCtoA1Mem , LdUndef , JavascriptOperators::OP_LdUndef ) |
| |
| // Function Calls |
| DEF2 ( FALLTHROUGH_ASM , I_StartCall, /* Common case with StartCall */ ) |
| DEF3 ( CUSTOM_ASMJS , StartCall , OP_AsmStartCall , StartCall ) |
| |
| DEF3_WMS( CUSTOM_ASMJS , I_Call , OP_I_AsmCall , AsmCall ) |
| DEF3_WMS( CUSTOM_ASMJS , Call , OP_AsmCall , AsmCall ) |
| DEF2_WMS( D1toR1Out , I_ArgOut_Db , OP_I_SetOutAsmDb ) // set double as internal outparam |
| DEF2_WMS( D1toR1Out , ArgOut_Db , OP_SetOutAsmDb ) // convert double to var and set it as outparam |
| DEF2_WMS( I1toR1Out , I_ArgOut_Int , OP_I_SetOutAsmInt ) // set int as internal outparam |
| DEF2_WMS( I1toR1Out , ArgOut_Int , OP_SetOutAsmInt ) // convert int to var and set it as outparam |
| DEF2_WMS( F1toR1Out , I_ArgOut_Flt , OP_I_SetOutAsmFlt ) // set float as internal outparam |
| DEF2_WMS( F1toR1Out , ArgOut_Flt , OP_SetOutAsmFlt ) // convert float to var and set as outparam |
| DEF2_WMS( L1toR1Out , I_ArgOut_Long, OP_I_SetOutAsmLong ) // set int64 as internal outparam |
| DEF2_WMS( D1toD1Mem , I_Conv_VTD , (double) ) |
| DEF2_WMS( R1toD1Mem , Conv_VTD , JavascriptConversion::ToNumber ) // convert var to double |
| DEF2_WMS( F1toF1Mem , I_Conv_VTF , (float) ) |
| DEF2_WMS( R1toF1Mem , Conv_VTF , JavascriptConversion::ToNumber ) // convert var to float |
| DEF2_WMS( I1toI1Mem , I_Conv_VTI , (int) ) |
| DEF2_WMS( R1toI1Mem , Conv_VTI , JavascriptMath::ToInt32 ) // convert var to int |
| DEF3_WMS( CUSTOM_ASMJS , ArgOut_Long , OP_InvalidWasmTypeConversion<true> , Reg1Long1 ) // convert int64 to Var |
| DEF3_WMS( CUSTOM_ASMJS , Conv_VTL , OP_InvalidWasmTypeConversion<false> , Long1Reg1 ) // convert var to int64 |
| |
| DEF3_WMS( CUSTOM_ASMJS , LdArr_Func , OP_LdArrFunc , ElementSlot ) |
| DEF3_WMS( CUSTOM_ASMJS , LdArr_WasmFunc,OP_LdArrWasmFunc , ElementSlot ) |
| DEF3_WMS( CUSTOM_ASMJS , CheckSignature,OP_CheckSignature , Reg1IntConst1 ) |
| DEF4_WMS( TEMPLATE_ASMJS , LdSlot_Db , OP_LdSlotPrimitive , ElementSlot, double ) |
| DEF4_WMS( TEMPLATE_ASMJS , LdSlot_Int , OP_LdSlotPrimitive , ElementSlot, int ) |
| DEF4_WMS( TEMPLATE_ASMJS , LdSlot_Long , OP_LdSlotPrimitive , ElementSlot, int64 ) |
| DEF4_WMS( TEMPLATE_ASMJS , LdSlot_Flt , OP_LdSlotPrimitive , ElementSlot, float ) |
| DEF4_WMS( TEMPLATE_ASMJS , StSlot_Db , OP_StSlotPrimitive , ElementSlot, double ) |
| DEF4_WMS( TEMPLATE_ASMJS , StSlot_Int , OP_StSlotPrimitive , ElementSlot, int ) |
| DEF4_WMS( TEMPLATE_ASMJS , StSlot_Long , OP_StSlotPrimitive , ElementSlot, int64 ) |
| DEF4_WMS( TEMPLATE_ASMJS , StSlot_Flt , OP_StSlotPrimitive , ElementSlot, float ) |
| DEF3_WMS( CUSTOM_ASMJS , LdArr , OP_LdArrGeneric , AsmTypedArr ) |
| DEF3_WMS( CUSTOM_ASMJS , LdArrWasm , OP_LdArrWasm , WasmMemAccess ) |
| DEF3_WMS( CUSTOM_ASMJS , StArrWasm , OP_StArrWasm , WasmMemAccess ) |
| DEF3_WMS( CUSTOM_ASMJS , LdArrConst , OP_LdArrConstIndex , AsmTypedArr ) |
| DEF3_WMS( CUSTOM_ASMJS , StArr , OP_StArrGeneric , AsmTypedArr ) |
| DEF3_WMS( CUSTOM_ASMJS , StArrConst , OP_StArrConstIndex , AsmTypedArr ) |
| |
| DEF2_WMS( C1toI1 , Ld_IntConst , None ) |
| DEF2_WMS( C1toL1 , Ld_LongConst , None ) |
| DEF2_WMS( C1toF1 , Ld_FltConst , None ) |
| DEF2_WMS( C1toD1 , Ld_DbConst , None ) |
| DEF2_WMS( BR_ASM_MemStack , BrTrue_Int , None ) // Jumps to location if int reg is true |
| DEF2_WMS( BR_ASM_MemStackF , BrFalse_Int , None ) // Jumps to location if int reg is false |
| DEF2_WMS( BR_ASM_Mem , BrEq_Int , AsmJsMath::CmpEq<int> ) // Jumps to location if both int reg are equal |
| DEF2_WMS( I1toF1Mem , Reinterpret_ITF, NumberUtilities::ReinterpretBits ) // reinterpret bits of int to float |
| DEF2_WMS( F1toI1Mem , Reinterpret_FTI, NumberUtilities::ToSpecial ) // reinterpret bits of float to int |
| DEF2_WMS( L1toD1Mem , Reinterpret_LTD, NumberUtilities::ReinterpretBits ) // reinterpret bits of long to double |
| DEF2_WMS( D1toL1Mem , Reinterpret_DTL, NumberUtilities::ToSpecial ) // reinterpret bits of double to long |
| DEF2_WMS( D1toI1Mem , Conv_DTI , JavascriptConversion::ToInt32 ) // convert double to int |
| DEF2_WMS( D1toI1Mem , Conv_DTU , JavascriptConversion::ToUInt32 ) // convert double to unsigned int |
| DEF2_WMS( F1toI1Mem , Conv_FTI , JavascriptConversion::ToInt32 ) // convert float to int |
| DEF2_WMS( F1toI1Mem , Conv_FTU , JavascriptConversion::ToUInt32 ) // convert float to unsigned int |
| DEF2_WMS( I1toD1Mem , Conv_ITD , (double) ) // convert int to double |
| DEF2_WMS( U1toD1Mem , Conv_UTD , (double) ) // convert unsigned int to double |
| DEF2_WMS( U1toF1Mem , Conv_UTF , (float) ) // convert unsigned int to float |
| DEF2_WMS( F1toD1Mem , Conv_FTD , (double) ) // convert unsigned float to double |
| DEF2_WMS( I1toL1Mem , Conv_ITL , (int64) ) // extend signed int to int64 |
| DEF2_WMS( U1toL1Mem , Conv_UTL , (int64) ) // extend unsigned int to int64 |
| DEF2_WMS( L1toD1Mem , Conv_ULTD , JavascriptConversion::ULongToDouble ) |
| DEF2_WMS( L1toD1Mem , Conv_LTD , JavascriptConversion::LongToDouble ) |
| DEF2_WMS( L1toF1Mem , Conv_ULTF , JavascriptConversion::ULongToFloat ) |
| DEF2_WMS( L1toF1Mem , Conv_LTF , JavascriptConversion::LongToFloat ) |
| DEF2_WMS( L1toI1Mem , Conv_LTI , (int) ) // wrap int64 to int |
| DEF2_WMS( I1toI1Mem , Ld_Int , (int) ) |
| DEF2_WMS( L1toL1Mem , Ld_Long , (int64) ) |
| DEF2_WMS( D1toD1Mem , Ld_Db , (double) ) |
| DEF2_WMS( F1toF1Mem , Ld_Flt , (float) ) |
| DEF2_WMS( D1toD1Mem , Return_Db , (double) ) |
| DEF2_WMS( F1toF1Mem , Return_Flt , (float) ) |
| DEF2_WMS( I1toI1Mem , Return_Int , (int) ) |
| DEF2_WMS( L1toL1Mem , Return_Long , (int64) ) |
| |
| DEF2_WMS( I1toI1Mem , BeginSwitch_Int, (int) ) |
| DEF2 ( BR_ASM , EndSwitch_Int, OP_Br ) |
| DEF2_WMS( BR_ASM_Mem , Case_Int , AsmJsMath::CmpEq<int> ) |
| DEF2_WMS( BR_ASM_Const , Case_IntConst, AsmJsMath::CmpEq<int> ) |
| |
| // Int32 Math |
| DEF2_WMS( I1toI1Mem , Neg_Int , AsmJsMath::Neg<int> ) // int unary '-' |
| DEF2_WMS( I1toI1Mem , Not_Int , AsmJsMath::Not ) // int unary '~' |
| DEF2_WMS( I1toI1Mem , LogNot_Int , AsmJsMath::LogNot ) // int unary '!' |
| DEF2_WMS( I1toI1Mem , Conv_ITB , AsmJsMath::ToBool ) // convert an int to a bool (0|1) |
| DEF2_WMS( I2toI1Mem , Add_Int , AsmJsMath::Add<int> ) |
| DEF2_WMS( I2toI1Mem , Sub_Int , AsmJsMath::Sub<int> ) |
| DEF2_WMS( I2toI1Mem , Mul_Int , AsmJsMath::Mul<int> ) |
| DEF2_WMS( I2toI1Mem , Div_Int , AsmJsMath::DivChecked<int> ) |
| DEF2_WMS( I2toI1Mem , Rem_Int , AsmJsMath::RemChecked<int> ) |
| DEF2_WMS( I2toI1Ctx , Div_Trap_Int, (OP_DivOverflow<int, &AsmJsMath::DivUnsafe<int>>) ) |
| DEF2_WMS( I2toI1Ctx , Rem_Trap_Int, (OP_RemOverflow<int, &AsmJsMath::RemUnsafe<int>>) ) |
| DEF2_WMS( I2toI1Mem , And_Int , AsmJsMath::And ) |
| DEF2_WMS( I2toI1Mem , Or_Int , AsmJsMath::Or ) |
| DEF2_WMS( I2toI1Mem , Xor_Int , AsmJsMath::Xor ) |
| DEF2_WMS( I2toI1Mem , Shl_Int , AsmJsMath::Shl ) |
| DEF2_WMS( I2toI1Mem , Shr_Int , AsmJsMath::Shr ) |
| DEF2_WMS( I2toI1Mem , Shr_UInt , AsmJsMath::ShrU<uint> ) |
| DEF2_WMS( I2toI1Mem , Rol_Int , Wasm::WasmMath::Rol ) |
| DEF2_WMS( I2toI1Mem , Ror_Int , Wasm::WasmMath::Ror ) |
| DEF2_WMS( I1toI1Mem , PopCnt_Int , ::Math::PopCnt32 ) |
| DEF2_WMS( I1toI1Mem , Abs_Int , ::abs ) |
| DEF2_WMS( I2toI1Mem , Min_Int , min ) |
| DEF2_WMS( I2toI1Mem , Max_Int , max ) |
| DEF2_WMS( I1toI1Mem , Clz32_Int , AsmJsMath::Clz32 ) |
| DEF2_WMS( I1toI1Mem , Ctz_Int , Wasm::WasmMath::Ctz ) |
| |
| // Unsigned Int32 Math |
| DEF2_WMS( I2toI1Mem , Div_UInt , AsmJsMath::DivChecked<uint32> ) |
| DEF2_WMS( I2toI1Mem , Rem_UInt , AsmJsMath::RemChecked<uint32> ) |
| DEF2_WMS( I2toI1Ctx , Div_Trap_UInt, (OP_UnsignedDivRemCheck<uint32, &AsmJsMath::DivUnsafe<uint32>>) ) |
| DEF2_WMS( I2toI1Ctx , Rem_Trap_UInt, (OP_UnsignedDivRemCheck<uint32, &AsmJsMath::RemUnsafe<uint32>>) ) |
| |
| // Int64 Math |
| DEF2_WMS( L2toL1Mem , Add_Long , AsmJsMath::Add<int64>) |
| DEF2_WMS( L2toL1Mem , Sub_Long , AsmJsMath::Sub<int64>) |
| DEF2_WMS( L2toL1Mem , Mul_Long , AsmJsMath::Mul<int64>) |
| DEF2_WMS( L2toL1Ctx , Div_Trap_Long, (OP_DivOverflow<int64, &AsmJsMath::DivUnsafe<int64>>) ) |
| DEF2_WMS( L2toL1Ctx , Rem_Trap_Long, (OP_RemOverflow<int64, &AsmJsMath::RemUnsafe<int64>>) ) |
| DEF2_WMS( L2toL1Mem , And_Long , AsmJsMath::And<int64>) |
| DEF2_WMS( L2toL1Mem , Or_Long , AsmJsMath::Or<int64>) |
| DEF2_WMS( L2toL1Mem , Xor_Long , AsmJsMath::Xor<int64>) |
| DEF2_WMS( L2toL1Mem , Shl_Long , Wasm::WasmMath::Shl<int64>) |
| DEF2_WMS( L2toL1Mem , Shr_Long , Wasm::WasmMath::Shr<int64>) |
| DEF2_WMS( L2toL1Mem , Shr_ULong , Wasm::WasmMath::ShrU<uint64>) |
| DEF2_WMS( L2toL1Mem , Rol_Long , Wasm::WasmMath::Rol<int64>) |
| DEF2_WMS( L2toL1Mem , Ror_Long , Wasm::WasmMath::Ror<int64>) |
| DEF2_WMS( L1toL1Mem , Clz_Long , Wasm::WasmMath::Clz<int64>) |
| DEF2_WMS( L1toL1Mem , Ctz_Long , Wasm::WasmMath::Ctz<int64>) |
| DEF2_WMS( L1toL1Mem , PopCnt_Long , Wasm::WasmMath::PopCnt<int64>) |
| |
| // Unsigned Int64 Math |
| DEF2_WMS( L2toL1Ctx , Div_Trap_ULong, (OP_UnsignedDivRemCheck<uint64, &AsmJsMath::DivUnsafe<uint64>>) ) |
| DEF2_WMS( L2toL1Ctx , Rem_Trap_ULong, (OP_UnsignedDivRemCheck<uint64, &AsmJsMath::RemUnsafe<uint64>>) ) |
| |
| // Double Math |
| DEF2_WMS( D1toD1Mem , Neg_Db , AsmJsMath::Neg<double> ) |
| DEF2_WMS( D2toD1Mem , Add_Db , AsmJsMath::Add<double> ) |
| DEF2_WMS( D2toD1Mem , Sub_Db , AsmJsMath::Sub<double> ) |
| DEF2_WMS( D2toD1Mem , Mul_Db , AsmJsMath::Mul<double> ) |
| DEF2_WMS( D2toD1Mem , Div_Db , AsmJsMath::DivChecked<double> ) |
| DEF2_WMS( D2toD1Mem , Rem_Db , AsmJsMath::RemChecked<double> ) |
| |
| // Float Math |
| DEF2_WMS( F1toF1Mem , Neg_Flt , AsmJsMath::Neg<float> ) |
| DEF2_WMS( F2toF1Mem , Add_Flt , AsmJsMath::Add<float> ) |
| DEF2_WMS( F2toF1Mem , Sub_Flt , AsmJsMath::Sub<float> ) |
| DEF2_WMS( F2toF1Mem , Mul_Flt , AsmJsMath::Mul<float> ) |
| DEF2_WMS( F2toF1Mem , Div_Flt , AsmJsMath::DivChecked<float> ) |
| |
| // Int32 comparisons |
| DEF2_WMS( I2toI1Mem , CmLt_Int , AsmJsMath::CmpLt<int> ) |
| DEF2_WMS( I2toI1Mem , CmLe_Int , AsmJsMath::CmpLe<int> ) |
| DEF2_WMS( I2toI1Mem , CmGt_Int , AsmJsMath::CmpGt<int> ) |
| DEF2_WMS( I2toI1Mem , CmGe_Int , AsmJsMath::CmpGe<int> ) |
| DEF2_WMS( I2toI1Mem , CmEq_Int , AsmJsMath::CmpEq<int> ) |
| DEF2_WMS( I2toI1Mem , CmNe_Int , AsmJsMath::CmpNe<int> ) |
| DEF2_WMS( I1toI1Mem , Eqz_Int , Wasm::WasmMath::Eqz<int> ) |
| |
| // Unsigned Int32 comparisons |
| DEF2_WMS( I2toI1Mem , CmLt_UInt , AsmJsMath::CmpLt<unsigned int> ) |
| DEF2_WMS( I2toI1Mem , CmLe_UInt , AsmJsMath::CmpLe<unsigned int> ) |
| DEF2_WMS( I2toI1Mem , CmGt_UInt , AsmJsMath::CmpGt<unsigned int> ) |
| DEF2_WMS( I2toI1Mem , CmGe_UInt , AsmJsMath::CmpGe<unsigned int> ) |
| |
| // Int64 comparisons |
| DEF2_WMS( L2toI1Mem , CmEq_Long , AsmJsMath::CmpEq<int64>) |
| DEF2_WMS( L2toI1Mem , CmNe_Long , AsmJsMath::CmpNe<int64>) |
| DEF2_WMS( L2toI1Mem , CmLt_Long , AsmJsMath::CmpLt<int64>) |
| DEF2_WMS( L2toI1Mem , CmLe_Long , AsmJsMath::CmpLe<int64>) |
| DEF2_WMS( L2toI1Mem , CmGt_Long , AsmJsMath::CmpGt<int64>) |
| DEF2_WMS( L2toI1Mem , CmGe_Long , AsmJsMath::CmpGe<int64>) |
| DEF2_WMS( L1toI1Mem , Eqz_Long , Wasm::WasmMath::Eqz<int64>) |
| |
| // Unsigned Int64 comparisons |
| DEF2_WMS( L2toI1Mem , CmLt_ULong , AsmJsMath::CmpLt<uint64>) |
| DEF2_WMS( L2toI1Mem , CmLe_ULong , AsmJsMath::CmpLe<uint64>) |
| DEF2_WMS( L2toI1Mem , CmGt_ULong , AsmJsMath::CmpGt<uint64>) |
| DEF2_WMS( L2toI1Mem , CmGe_ULong , AsmJsMath::CmpGe<uint64>) |
| |
| // Double comparisons |
| DEF2_WMS( D2toI1Mem , CmLt_Db , AsmJsMath::CmpLt<double> ) |
| DEF2_WMS( D2toI1Mem , CmLe_Db , AsmJsMath::CmpLe<double> ) |
| DEF2_WMS( D2toI1Mem , CmGt_Db , AsmJsMath::CmpGt<double> ) |
| DEF2_WMS( D2toI1Mem , CmGe_Db , AsmJsMath::CmpGe<double> ) |
| DEF2_WMS( D2toI1Mem , CmEq_Db , AsmJsMath::CmpEq<double> ) |
| DEF2_WMS( D2toI1Mem , CmNe_Db , AsmJsMath::CmpNe<double> ) |
| |
| // Float comparisons |
| DEF2_WMS( F2toI1Mem , CmLt_Flt , AsmJsMath::CmpLt<float> ) |
| DEF2_WMS( F2toI1Mem , CmLe_Flt , AsmJsMath::CmpLe<float> ) |
| DEF2_WMS( F2toI1Mem , CmGt_Flt , AsmJsMath::CmpGt<float> ) |
| DEF2_WMS( F2toI1Mem , CmGe_Flt , AsmJsMath::CmpGe<float> ) |
| DEF2_WMS( F2toI1Mem , CmEq_Flt , AsmJsMath::CmpEq<float> ) |
| DEF2_WMS( F2toI1Mem , CmNe_Flt , AsmJsMath::CmpNe<float> ) |
| |
| // Standard Math lib |
| DEF2_WMS( I2toI1Mem , Imul_Int , AsmJsMath::Mul<int> ) |
| DEF2_WMS( D1toD1Mem , Sin_Db , Math::Sin ) |
| DEF2_WMS( D1toD1Mem , Cos_Db , Math::Cos ) |
| DEF2_WMS( D1toD1Mem , Tan_Db , Math::Tan ) |
| DEF2_WMS( D1toD1Mem , Asin_Db , Math::Asin ) |
| DEF2_WMS( D1toD1Mem , Acos_Db , Math::Acos ) |
| DEF2_WMS( D1toD1Mem , Atan_Db , Math::Atan ) |
| DEF2_WMS( D1toD1Mem , Ceil_Db , ::ceil ) |
| DEF2_WMS( F1toF1Mem , Ceil_Flt , ::ceilf ) |
| DEF2_WMS( D1toD1Mem , Floor_Db , ::floor ) |
| DEF2_WMS( F1toF1Mem , Floor_Flt , ::floorf ) |
| DEF2_WMS( D1toD1Mem , Exp_Db , Math::Exp ) |
| DEF2_WMS( D1toD1Mem , Log_Db , Math::Log ) |
| DEF2_WMS( D2toD1Mem , Pow_Db , Math::Pow ) |
| DEF2_WMS( D1toD1Mem , Sqrt_Db , ::sqrt ) |
| DEF2_WMS( F1toF1Mem , Sqrt_Flt , ::sqrtf ) |
| DEF2_WMS( D1toD1Mem , Abs_Db , AsmJsMath::Abs<double> ) |
| DEF2_WMS( F1toF1Mem , Abs_Flt , AsmJsMath::Abs<float> ) |
| DEF2_WMS( D2toD1Mem , Atan2_Db , Math::Atan2 ) |
| DEF2_WMS( D2toD1Mem , Min_Db , AsmJsMath::Min<double> ) |
| DEF2_WMS( F2toF1Mem , Min_Flt , AsmJsMath::Min<float> ) |
| DEF2_WMS( D2toD1Mem , Max_Db , AsmJsMath::Max<double> ) |
| DEF2_WMS( F2toF1Mem , Max_Flt , AsmJsMath::Max<float> ) |
| |
| DEF2_WMS( F1toF1Mem , Fround_Flt , (float) ) |
| DEF2_WMS( D1toF1Mem , Fround_Db , (float) ) |
| DEF2_WMS( I1toF1Mem , Fround_Int , (float) ) |
| EXDEF2_WMS( F2toF1Mem , Copysign_Flt , Wasm::WasmMath::Copysign<float> ) |
| EXDEF2_WMS( D2toD1Mem , Copysign_Db , Wasm::WasmMath::Copysign<double> ) |
| |
| EXDEF2_WMS( F1toF1Mem , Trunc_Flt , Wasm::WasmMath::Trunc<float> ) |
| EXDEF2_WMS( F1toF1Mem , Nearest_Flt , Wasm::WasmMath::Nearest<float> ) |
| EXDEF2_WMS( D1toD1Mem , Trunc_Db , Wasm::WasmMath::Trunc<double> ) |
| EXDEF2_WMS( D1toD1Mem , Nearest_Db , Wasm::WasmMath::Nearest<double> ) |
| EXDEF2_WMS( VtoI1Mem , CurrentMemory_Int, OP_GetMemorySize ) |
| EXDEF2_WMS( I1toI1Mem , GrowMemory , OP_GrowMemory ) |
| EXDEF2 ( EMPTYASMJS , Unreachable_Void , OP_Unreachable ) |
| EXDEF2_WMS( D1toI1Ctx , Conv_Check_DTI , JavascriptConversion::F64TOI32 ) |
| EXDEF2_WMS( F1toI1Ctx , Conv_Check_FTI , JavascriptConversion::F32TOI32 ) |
| EXDEF2_WMS( D1toI1Ctx , Conv_Check_DTU , JavascriptConversion::F64TOU32 ) |
| EXDEF2_WMS( F1toI1Ctx , Conv_Check_FTU , JavascriptConversion::F32TOU32 ) |
| EXDEF2_WMS( F1toL1Ctx , Conv_Check_FTL , JavascriptConversion::F32TOI64 ) |
| EXDEF2_WMS( F1toL1Ctx , Conv_Check_FTUL , JavascriptConversion::F32TOU64 ) |
| EXDEF2_WMS( D1toL1Ctx , Conv_Check_DTL , JavascriptConversion::F64TOI64 ) |
| EXDEF2_WMS( D1toL1Ctx , Conv_Check_DTUL , JavascriptConversion::F64TOU64 ) |
| |
| DEF2_WMS( IP_TARG_ASM , AsmJsLoopBodyStart, OP_ProfiledLoopBodyStart ) |
| |
| #if ENABLE_DEBUG_CONFIG_OPTIONS |
| EXDEF3_WMS( CUSTOM_ASMJS, PrintFuncName , OP_WasmPrintFunc , Int2) |
| EXDEF2 ( EMPTYASMJS, PrintArgSeparator, WAsmJs::Tracing::PrintArgSeparator) |
| EXDEF2 ( EMPTYASMJS, PrintBeginCall, WAsmJs::Tracing::PrintBeginCall) |
| EXDEF2 ( EMPTYASMJS, PrintNewLine, WAsmJs::Tracing::PrintNewLine) |
| EXDEF3_WMS( CUSTOM_ASMJS, PrintEndCall, WAsmJs::Tracing::PrintEndCall, Int2) |
| EXDEF2_WMS( I1toI1Mem, PrintI32, WAsmJs::Tracing::PrintI32 ) |
| EXDEF2_WMS( L1toL1Mem, PrintI64, WAsmJs::Tracing::PrintI64 ) |
| EXDEF2_WMS( F1toF1Mem, PrintF32, WAsmJs::Tracing::PrintF32 ) |
| EXDEF2_WMS( D1toD1Mem, PrintF64, WAsmJs::Tracing::PrintF64 ) |
| #endif |
| //unary ops |
| |
| EXDEF2_WMS( SIMD_F4_1toF4_1 , Simd128_Ld_F4 , (AsmJsSIMDValue) ) |
| DEF2_WMS( SIMD_I4_1toI4_1 , Simd128_Ld_I4 , (AsmJsSIMDValue) ) |
| EXDEF2_WMS( SIMD_B4_1toB4_1 , Simd128_Ld_B4 , (AsmJsSIMDValue) ) |
| EXDEF2_WMS( SIMD_B8_1toB8_1 , Simd128_Ld_B8 , (AsmJsSIMDValue) ) |
| EXDEF2_WMS( SIMD_B16_1toB16_1, Simd128_Ld_B16 , (AsmJsSIMDValue) ) |
| |
| EXDEF2_WMS( SIMD_F4toF4_1 , Simd128_FloatsToF4 , SIMDFloat32x4Operation::OpFloat32x4 ) |
| DEF2_WMS( SIMD_I4toI4_1 , Simd128_IntsToI4 , SIMDInt32x4Operation::OpInt32x4 ) |
| |
| EXDEF4_WMS( TEMPLATE_ASMJS , Simd128_LdSlot_F4 , OP_LdSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| DEF4_WMS( TEMPLATE_ASMJS , Simd128_LdSlot_I4 , OP_LdSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| |
| EXDEF4_WMS(TEMPLATE_ASMJS , Simd128_StSlot_F4 , OP_StSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| DEF4_WMS(TEMPLATE_ASMJS , Simd128_StSlot_I4 , OP_StSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| |
| EXDEF2_WMS( SIMD_F4_1toF4_1 , Simd128_Return_F4 , (AsmJsSIMDValue) ) |
| DEF2_WMS( SIMD_I4_1toI4_1 , Simd128_Return_I4 , (AsmJsSIMDValue) ) |
| |
| EXDEF2_WMS( SIMD_F1toF4_1 , Simd128_Splat_F4 ,Js::SIMDFloat32x4Operation::OpSplat ) |
| DEF2_WMS( SIMD_I1toI4_1 , Simd128_Splat_I4 ,Js::SIMDInt32x4Operation::OpSplat ) |
| |
| //EXDEF2_WMS( SIMD_D2_1toF4_1 , Simd128_FromFloat64x2_F4 ,SIMDFloat32x4Operation::OpFromFloat64x2 ) |
| //EXDEF2_WMS( SIMD_D2_1toF4_1 , Simd128_FromFloat64x2Bits_F4,Js::FromSimdBits ) |
| EXDEF2_WMS( SIMD_I4_1toF4_1 , Simd128_FromInt32x4_F4 ,SIMDFloat32x4Operation::OpFromInt32x4 ) |
| EXDEF2_WMS( SIMD_I4_1toF4_1 , Simd128_FromInt32x4Bits_F4 ,Js::SIMDUtils::FromSimdBits ) |
| DEF3_WMS( CUSTOM_ASMJS , Simd128_FromFloat32x4_I4 , OP_SimdInt32x4FromFloat32x4 , Int32x4_1Float32x4_1 ) |
| |
| //DEF2_WMS( SIMD_D2_1toI4_1 , Simd128_FromFloat64x2_I4 ,SIMDInt32x4Operation::OpFromFloat64x2 ) |
| //DEF2_WMS( SIMD_D2_1toI4_1 , Simd128_FromFloat64x2Bits_I4,Js::FromSimdBits ) |
| DEF2_WMS( SIMD_F4_1toI4_1 , Simd128_FromFloat32x4Bits_I4,Js::SIMDUtils::FromSimdBits ) |
| |
| EXDEF2_WMS( SIMD_F4_1toF4_1 , Simd128_Abs_F4 ,SIMDFloat32x4Operation::OpAbs ) |
| |
| EXDEF2_WMS( SIMD_F4_1toF4_1 , Simd128_Neg_F4 ,SIMDFloat32x4Operation::OpNeg ) |
| DEF2_WMS( SIMD_I4_1toI4_1 , Simd128_Neg_I4 ,SIMDInt32x4Operation::OpNeg ) |
| |
| EXDEF2_WMS( SIMD_F4_1toF4_1 , Simd128_Rcp_F4 ,SIMDFloat32x4Operation::OpReciprocal ) |
| EXDEF2_WMS( SIMD_F4_1toF4_1 , Simd128_RcpSqrt_F4 ,SIMDFloat32x4Operation::OpReciprocalSqrt ) |
| EXDEF2_WMS( SIMD_F4_1toF4_1 , Simd128_Sqrt_F4 ,SIMDFloat32x4Operation::OpSqrt ) |
| |
| DEF2_WMS( SIMD_I4_1toI4_1 , Simd128_Not_I4 , Js::SIMDInt32x4Operation::OpNot ) |
| EXDEF2_WMS( SIMD_B4_1toB4_1 , Simd128_Not_B4 , Js::SIMDInt32x4Operation::OpNot ) |
| EXDEF2_WMS( SIMD_B8_1toB8_1 , Simd128_Not_B8 , Js::SIMDInt32x4Operation::OpNot ) |
| EXDEF2_WMS( SIMD_B16_1toB16_1, Simd128_Not_B16 , Js::SIMDInt32x4Operation::OpNot ) |
| |
| EXDEF2_WMS( SIMD_B4_1toI1, Simd128_AllTrue_B4 , Js::SIMDBool32x4Operation::OpAllTrue ) |
| EXDEF2_WMS( SIMD_B8_1toI1, Simd128_AllTrue_B8 , Js::SIMDBool32x4Operation::OpAllTrue ) |
| EXDEF2_WMS( SIMD_B16_1toI1, Simd128_AllTrue_B16 , Js::SIMDBool32x4Operation::OpAllTrue ) |
| |
| EXDEF2_WMS( SIMD_B4_1toI1, Simd128_AnyTrue_B4 , Js::SIMDBool32x4Operation::OpAnyTrue ) |
| EXDEF2_WMS( SIMD_B8_1toI1, Simd128_AnyTrue_B8 , Js::SIMDBool32x4Operation::OpAnyTrue ) |
| EXDEF2_WMS( SIMD_B16_1toI1, Simd128_AnyTrue_B16 , Js::SIMDBool32x4Operation::OpAnyTrue ) |
| |
| DEF2_WMS(SIMD_I4_1I1toI4_1 , Simd128_ShLtByScalar_I4 , Js::SIMDInt32x4Operation::OpShiftLeftByScalar) |
| DEF2_WMS(SIMD_I4_1I1toI4_1 , Simd128_ShRtByScalar_I4 , Js::SIMDInt32x4Operation::OpShiftRightByScalar) |
| |
| // binary ops |
| EXDEF2_WMS( SIMD_F4_2toF4_1 , Simd128_Add_F4 , Js::SIMDFloat32x4Operation::OpAdd ) |
| DEF2_WMS( SIMD_I4_2toI4_1 , Simd128_Add_I4 , Js::SIMDInt32x4Operation::OpAdd ) |
| |
| EXDEF2_WMS( SIMD_F4_2toF4_1 , Simd128_Sub_F4 , Js::SIMDFloat32x4Operation::OpSub ) |
| DEF2_WMS( SIMD_I4_2toI4_1 , Simd128_Sub_I4 , Js::SIMDInt32x4Operation::OpSub ) |
| |
| EXDEF2_WMS( SIMD_F4_2toF4_1 , Simd128_Mul_F4 , Js::SIMDFloat32x4Operation::OpMul ) |
| DEF2_WMS( SIMD_I4_2toI4_1 , Simd128_Mul_I4 , Js::SIMDInt32x4Operation::OpMul ) |
| |
| EXDEF2_WMS( SIMD_F4_2toF4_1 , Simd128_Div_F4 , Js::SIMDFloat32x4Operation::OpDiv ) |
| |
| EXDEF2_WMS( SIMD_F4_2toF4_1 , Simd128_Min_F4 , Js::SIMDFloat32x4Operation::OpMin ) |
| |
| EXDEF2_WMS( SIMD_F4_2toF4_1 , Simd128_Max_F4 , Js::SIMDFloat32x4Operation::OpMax ) |
| |
| EXDEF2_WMS( SIMD_F4_2toB4_1 , Simd128_Lt_F4 , Js::SIMDFloat32x4Operation::OpLessThan ) |
| DEF2_WMS( SIMD_I4_2toB4_1 , Simd128_Lt_I4 , Js::SIMDInt32x4Operation::OpLessThan ) |
| |
| EXDEF2_WMS( SIMD_F4_2toB4_1 , Simd128_LtEq_F4 , Js::SIMDFloat32x4Operation::OpLessThanOrEqual) |
| |
| EXDEF2_WMS( SIMD_F4_2toB4_1 , Simd128_Eq_F4 , Js::SIMDFloat32x4Operation::OpEqual ) |
| DEF2_WMS( SIMD_I4_2toB4_1 , Simd128_Eq_I4 , Js::SIMDInt32x4Operation::OpEqual ) |
| |
| EXDEF2_WMS( SIMD_F4_2toB4_1 , Simd128_Neq_F4 , Js::SIMDFloat32x4Operation::OpNotEqual ) |
| |
| EXDEF2_WMS( SIMD_F4_2toB4_1 , Simd128_GtEq_F4 , Js::SIMDFloat32x4Operation::OpGreaterThanOrEqual) |
| |
| EXDEF2_WMS( SIMD_F4_2toB4_1 , Simd128_Gt_F4 , Js::SIMDFloat32x4Operation::OpGreaterThan ) |
| DEF2_WMS( SIMD_I4_2toB4_1 , Simd128_Gt_I4 , Js::SIMDInt32x4Operation::OpGreaterThan ) |
| |
| DEF2_WMS( SIMD_I4_2toI4_1 , Simd128_And_I4 , Js::SIMDInt32x4Operation::OpAnd ) |
| EXDEF2_WMS( SIMD_B4_2toB4_1, Simd128_And_B4 , Js::SIMDInt32x4Operation::OpAnd ) |
| EXDEF2_WMS( SIMD_B8_2toB8_1, Simd128_And_B8 , Js::SIMDInt32x4Operation::OpAnd ) |
| EXDEF2_WMS( SIMD_B16_2toB16_1, Simd128_And_B16 , Js::SIMDInt32x4Operation::OpAnd ) |
| |
| DEF2_WMS( SIMD_I4_2toI4_1 , Simd128_Or_I4 , Js::SIMDInt32x4Operation::OpOr ) |
| EXDEF2_WMS( SIMD_B4_2toB4_1 , Simd128_Or_B4 , Js::SIMDInt32x4Operation::OpOr ) |
| EXDEF2_WMS( SIMD_B8_2toB8_1 , Simd128_Or_B8 , Js::SIMDInt32x4Operation::OpOr ) |
| EXDEF2_WMS( SIMD_B16_2toB16_1 , Simd128_Or_B16 , Js::SIMDInt32x4Operation::OpOr ) |
| |
| DEF2_WMS( SIMD_I4_2toI4_1 , Simd128_Xor_I4 , Js::SIMDInt32x4Operation::OpXor ) |
| EXDEF2_WMS( SIMD_B4_2toB4_1, Simd128_Xor_B4 , Js::SIMDInt32x4Operation::OpXor ) |
| EXDEF2_WMS( SIMD_B8_2toB8_1, Simd128_Xor_B8 , Js::SIMDInt32x4Operation::OpXor ) |
| EXDEF2_WMS( SIMD_B16_2toB16_1, Simd128_Xor_B16 , Js::SIMDInt32x4Operation::OpXor ) |
| // ternary ops |
| EXDEF2_WMS( SIMD_F4_3toF4_1 , Simd128_Clamp_F4 , Js::SIMDFloat32x4Operation::OpClamp ) |
| EXDEF2_WMS( SIMD_B4_1F4_2toF4_1 , Simd128_Select_F4 , Js::SIMDFloat32x4Operation::OpSelect ) |
| DEF2_WMS( SIMD_B4_1I4_2toI4_1 , Simd128_Select_I4 , Js::SIMDInt32x4Operation::OpSelect ) |
| EXDEF2_WMS( SIMD_B8_1I8_2toI8_1 , Simd128_Select_I8 , Js::SIMDInt32x4Operation::OpSelect ) |
| EXDEF2_WMS( SIMD_B16_1I16_2toI16_1 , Simd128_Select_I16 , Js::SIMDInt32x4Operation::OpSelect ) |
| EXDEF2_WMS( SIMD_B4_1U4_2toU4_1 , Simd128_Select_U4 , Js::SIMDInt32x4Operation::OpSelect ) |
| EXDEF2_WMS( SIMD_B8_1U8_2toU8_1 , Simd128_Select_U8 , Js::SIMDInt32x4Operation::OpSelect ) |
| EXDEF2_WMS( SIMD_B16_1U16_2toU16_1 , Simd128_Select_U16 , Js::SIMDInt32x4Operation::OpSelect ) |
| |
| // args out, copy value to outParams |
| EXDEF2_WMS ( SIMD_F4_1toR1Mem , Simd128_I_ArgOut_F4 , OP_I_SetOutAsmSimd ) |
| DEF2_WMS ( SIMD_I4_1toR1Mem , Simd128_I_ArgOut_I4 , OP_I_SetOutAsmSimd ) |
| |
| EXDEF2_WMS ( SIMD_F4_1toF4_1 , Simd128_I_Conv_VTF4 , (AsmJsSIMDValue) ) |
| DEF2_WMS ( SIMD_I4_1toI4_1 , Simd128_I_Conv_VTI4 , (AsmJsSIMDValue) ) |
| |
| EXDEF2_WMS ( SIMD_F4_1I4toF4_1 , Simd128_Swizzle_F4 , SIMDUtils::SIMD128InnerShuffle ) |
| EXDEF2_WMS ( SIMD_F4_2I4toF4_1 , Simd128_Shuffle_F4 , SIMDUtils::SIMD128InnerShuffle ) |
| |
| DEF2_WMS ( SIMD_I4_1I4toI4_1 , Simd128_Swizzle_I4 , SIMDUtils::SIMD128InnerShuffle ) |
| DEF2_WMS ( SIMD_I4_2I4toI4_1 , Simd128_Shuffle_I4 , SIMDUtils::SIMD128InnerShuffle ) |
| |
| DEF2_WMS ( SIMD_I8_1toI8_1 , Simd128_Ld_I8 , (AsmJsSIMDValue) ) |
| DEF2_WMS ( SIMD_U4_1toU4_1 , Simd128_Ld_U4 , (AsmJsSIMDValue) ) |
| DEF2_WMS ( SIMD_U8_1toU8_1 , Simd128_Ld_U8 , (AsmJsSIMDValue) ) |
| DEF2_WMS ( SIMD_U16_1toU16_1 , Simd128_Ld_U16 , (AsmJsSIMDValue) ) |
| |
| DEF4_WMS ( TEMPLATE_ASMJS , Simd128_LdSlot_I8 , OP_LdSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| DEF4_WMS ( TEMPLATE_ASMJS , Simd128_LdSlot_I16 , OP_LdSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| |
| // Extended opcodes |
| EXDEF4_WMS ( TEMPLATE_ASMJS , Simd128_LdSlot_U4 , OP_LdSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| EXDEF4_WMS ( TEMPLATE_ASMJS , Simd128_LdSlot_U8 , OP_LdSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| EXDEF4_WMS ( TEMPLATE_ASMJS , Simd128_LdSlot_U16 , OP_LdSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| EXDEF4_WMS ( TEMPLATE_ASMJS , Simd128_LdSlot_B4 , OP_LdSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| EXDEF4_WMS ( TEMPLATE_ASMJS , Simd128_LdSlot_B8 , OP_LdSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| EXDEF4_WMS ( TEMPLATE_ASMJS , Simd128_LdSlot_B16 , OP_LdSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| |
| EXDEF4_WMS ( TEMPLATE_ASMJS , Simd128_StSlot_I8 , OP_StSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| EXDEF4_WMS(TEMPLATE_ASMJS , Simd128_StSlot_I16 , OP_StSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| EXDEF4_WMS ( TEMPLATE_ASMJS , Simd128_StSlot_U4 , OP_StSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| EXDEF4_WMS ( TEMPLATE_ASMJS , Simd128_StSlot_U8 , OP_StSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| EXDEF4_WMS ( TEMPLATE_ASMJS , Simd128_StSlot_U16 , OP_StSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| EXDEF4_WMS ( TEMPLATE_ASMJS , Simd128_StSlot_B4 , OP_StSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| EXDEF4_WMS ( TEMPLATE_ASMJS , Simd128_StSlot_B8 , OP_StSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| EXDEF4_WMS ( TEMPLATE_ASMJS , Simd128_StSlot_B16 , OP_StSlotPrimitive , ElementSlot, AsmJsSIMDValue) |
| |
| EXDEF3_WMS ( CUSTOM_ASMJS , Simd128_IntsToB4 , OP_SimdBool32x4 , Bool32x4_1Int4) |
| EXDEF3_WMS ( CUSTOM_ASMJS , Simd128_IntsToB8 , OP_SimdBool16x8 , Bool16x8_1Int8) |
| EXDEF3_WMS ( CUSTOM_ASMJS , Simd128_IntsToB16 , OP_SimdBool8x16 , Bool8x16_1Int16) |
| |
| EXDEF2_WMS ( SIMD_I1toB4_1 , Simd128_Splat_B4 , Js::SIMDInt32x4Operation::OpSplat ) |
| EXDEF2_WMS ( SIMD_I1toB8_1 , Simd128_Splat_B8 , Js::SIMDInt32x4Operation::OpSplat ) |
| EXDEF2_WMS ( SIMD_I1toB16_1 , Simd128_Splat_B16 , Js::SIMDInt32x4Operation::OpSplat ) |
| |
| EXDEF2_WMS ( SIMD_I16_1toI16_1 , Simd128_Ld_I16 , (AsmJsSIMDValue) ) |
| EXDEF2_WMS ( SIMD_I1toI16_1 , Simd128_Splat_I16 , Js::SIMDInt8x16Operation::OpSplat ) |
| |
| EXDEF2_WMS ( SIMD_I16_2toI16_1 , Simd128_Add_I16 , Js::SIMDInt8x16Operation::OpAdd ) |
| EXDEF2_WMS ( SIMD_I16_2toI16_1 , Simd128_Sub_I16 , Js::SIMDInt8x16Operation::OpSub ) |
| EXDEF2_WMS ( SIMD_I16_2toI16_1 , Simd128_Mul_I16 , Js::SIMDInt8x16Operation::OpMul ) |
| EXDEF2_WMS ( SIMD_I16_1toI16_1 , Simd128_Neg_I16 , SIMDInt8x16Operation::OpNeg ) |
| EXDEF2_WMS ( SIMD_I16_1toI16_1 , Simd128_Not_I16 , Js::SIMDInt32x4Operation::OpNot ) |
| EXDEF2_WMS ( SIMD_I16_2toB16_1 , Simd128_Lt_I16 , Js::SIMDInt8x16Operation::OpLessThan ) |
| EXDEF2_WMS ( SIMD_I16_2toB16_1 , Simd128_Eq_I16 , Js::SIMDInt8x16Operation::OpEqual ) |
| EXDEF2_WMS ( SIMD_I16_2toB16_1 , Simd128_Gt_I16 , Js::SIMDInt8x16Operation::OpGreaterThan ) |
| EXDEF2_WMS ( SIMD_I16_2toI16_1 , Simd128_And_I16 , Js::SIMDInt32x4Operation::OpAnd ) |
| EXDEF2_WMS ( SIMD_I16_2toI16_1 , Simd128_Or_I16 , Js::SIMDInt32x4Operation::OpOr ) |
| EXDEF2_WMS ( SIMD_I16_2toI16_1 , Simd128_Xor_I16 , Js::SIMDInt32x4Operation::OpXor ) |
| |
| EXDEF2_WMS ( SIMD_I16_1toI16_1 , Simd128_Return_I16 , (AsmJsSIMDValue) ) |
| EXDEF2_WMS ( SIMD_I16_1toR1Mem , Simd128_I_ArgOut_I16 , OP_I_SetOutAsmSimd ) |
| EXDEF2_WMS ( SIMD_I16_1toI16_1 , Simd128_I_Conv_VTI16 , (AsmJsSIMDValue) ) |
| |
| //Lane Access |
| EXDEF2_WMS ( SIMD_I16_1I1toI1 , Simd128_ExtractLane_I16 , SIMDUtils::SIMD128InnerExtractLaneI16 ) |
| EXDEF2_WMS ( SIMD_I16_1I2toI16_1 , Simd128_ReplaceLane_I16 , SIMDUtils::SIMD128InnerReplaceLaneI16 ) |
| EXDEF2_WMS ( SIMD_I4_1I1toI1 , Simd128_ExtractLane_I4 , SIMDUtils::SIMD128InnerExtractLaneI4 ) |
| EXDEF2_WMS ( SIMD_F4_1I1toF1 , Simd128_ExtractLane_F4 , SIMDUtils::SIMD128InnerExtractLaneF4 ) |
| EXDEF2_WMS ( SIMD_I8_1I1toI1 , Simd128_ExtractLane_I8 , SIMDUtils::SIMD128InnerExtractLaneI8 ) |
| EXDEF2_WMS ( SIMD_U4_1I1toI1 , Simd128_ExtractLane_U4 , SIMDUtils::SIMD128InnerExtractLaneI4 ) |
| EXDEF2_WMS ( SIMD_U8_1I1toI1 , Simd128_ExtractLane_U8 , SIMDUtils::SIMD128InnerExtractLaneI8 ) |
| EXDEF2_WMS ( SIMD_U16_1I1toI1 , Simd128_ExtractLane_U16 , SIMDUtils::SIMD128InnerExtractLaneI16 ) |
| EXDEF2_WMS ( SIMD_B4_1I1toI1 , Simd128_ExtractLane_B4 , SIMDUtils::SIMD128InnerExtractLaneI4 ) |
| EXDEF2_WMS ( SIMD_B8_1I1toI1 , Simd128_ExtractLane_B8 , SIMDUtils::SIMD128InnerExtractLaneI8 ) |
| EXDEF2_WMS ( SIMD_B16_1I1toI1 , Simd128_ExtractLane_B16 , SIMDUtils::SIMD128InnerExtractLaneI16 ) |
| |
| EXDEF2_WMS ( SIMD_I4_1I2toI4_1 , Simd128_ReplaceLane_I4 , SIMDUtils::SIMD128InnerReplaceLaneI4 ) |
| EXDEF2_WMS ( SIMD_F4_1I1F1toF4_1 , Simd128_ReplaceLane_F4 , SIMDUtils::SIMD128InnerReplaceLaneF4 ) |
| EXDEF2_WMS ( SIMD_I8_1I2toI8_1 , Simd128_ReplaceLane_I8 , SIMDUtils::SIMD128InnerReplaceLaneI8 ) |
| EXDEF2_WMS ( SIMD_U4_1I2toU4_1 , Simd128_ReplaceLane_U4 , SIMDUtils::SIMD128InnerReplaceLaneI4 ) |
| EXDEF2_WMS ( SIMD_U8_1I2toU8_1 , Simd128_ReplaceLane_U8 , SIMDUtils::SIMD128InnerReplaceLaneI8 ) |
| EXDEF2_WMS ( SIMD_U16_1I2toU16_1 , Simd128_ReplaceLane_U16, SIMDUtils::SIMD128InnerReplaceLaneI16 ) |
| EXDEF2_WMS ( SIMD_B4_1I2toB4_1 , Simd128_ReplaceLane_B4 , SIMDUtils::SIMD128InnerReplaceLaneI4 ) |
| EXDEF2_WMS ( SIMD_B8_1I2toB8_1 , Simd128_ReplaceLane_B8 , SIMDUtils::SIMD128InnerReplaceLaneI8 ) |
| EXDEF2_WMS ( SIMD_B16_1I2toB16_1 , Simd128_ReplaceLane_B16, SIMDUtils::SIMD128InnerReplaceLaneI16 ) |
| |
| EXDEF3_WMS ( CUSTOM_ASMJS , Simd128_LdArr_F4 , OP_SimdLdArrGeneric , AsmSimdTypedArr ) |
| EXDEF3_WMS ( CUSTOM_ASMJS , Simd128_LdArr_I4 , OP_SimdLdArrGeneric , AsmSimdTypedArr ) |
| EXDEF3_WMS ( CUSTOM_ASMJS , Simd128_StArr_F4 , OP_SimdStArrGeneric , AsmSimdTypedArr ) |
| EXDEF3_WMS ( CUSTOM_ASMJS , Simd128_StArr_I4 , OP_SimdStArrGeneric , AsmSimdTypedArr ) |
| |
| EXDEF3_WMS ( CUSTOM_ASMJS , Simd128_LdArrConst_F4 , OP_SimdLdArrConstIndex , AsmSimdTypedArr ) |
| EXDEF3_WMS ( CUSTOM_ASMJS , Simd128_LdArrConst_I4 , OP_SimdLdArrConstIndex , AsmSimdTypedArr ) |
| EXDEF3_WMS ( CUSTOM_ASMJS , Simd128_StArrConst_F4 , OP_SimdStArrConstIndex , AsmSimdTypedArr ) |
| EXDEF3_WMS ( CUSTOM_ASMJS , Simd128_StArrConst_I4 , OP_SimdStArrConstIndex , AsmSimdTypedArr ) |
| |
| EXDEF2_WMS ( SIMD_U4_1toF4_1 , Simd128_FromUint32x4_F4 , Js::SIMDFloat32x4Operation::OpFromUint32x4 ) |
| EXDEF2_WMS ( SIMD_I8_1toF4_1 , Simd128_FromInt16x8Bits_F4 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS ( SIMD_I16_1toF4_1 , Simd128_FromInt8x16Bits_F4 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS ( SIMD_U4_1toF4_1 , Simd128_FromUint32x4Bits_F4 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS ( SIMD_U8_1toF4_1 , Simd128_FromUint16x8Bits_F4 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS ( SIMD_U16_1toF4_1 , Simd128_FromUint8x16Bits_F4 , Js::SIMDUtils::FromSimdBits ) |
| |
| EXDEF2_WMS ( SIMD_I8_1toI4_1 , Simd128_FromInt16x8Bits_I4 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS ( SIMD_I16_1toI4_1 , Simd128_FromInt8x16Bits_I4 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS ( SIMD_U4_1toI4_1 , Simd128_FromUint32x4Bits_I4 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS ( SIMD_U8_1toI4_1 , Simd128_FromUint16x8Bits_I4 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS ( SIMD_U16_1toI4_1 , Simd128_FromUint8x16Bits_I4 , Js::SIMDUtils::FromSimdBits ) |
| |
| EXDEF3_WMS ( CUSTOM_ASMJS , Simd128_IntsToI8 , OP_SimdInt16x8 , Int16x8_1Int8 ) |
| EXDEF3_WMS ( CUSTOM_ASMJS , Simd128_IntsToI16 , OP_SimdInt8x16 , Int8x16_1Int16) |
| EXDEF2_WMS ( SIMD_I4toU4_1 , Simd128_IntsToU4 , SIMDUint32x4Operation::OpUint32x4 ) |
| EXDEF3_WMS ( CUSTOM_ASMJS , Simd128_IntsToU8 , OP_SimdUint16x8 , Uint16x8_1Int8) |
| EXDEF3_WMS ( CUSTOM_ASMJS , Simd128_IntsToU16 , OP_SimdUint8x16 , Uint8x16_1Int16) |
| |
| EXDEF2_WMS ( SIMD_I8_1toR1Mem , Simd128_I_ArgOut_I8 , OP_I_SetOutAsmSimd ) |
| EXDEF2_WMS ( SIMD_U4_1toR1Mem , Simd128_I_ArgOut_U4 , OP_I_SetOutAsmSimd ) |
| EXDEF2_WMS ( SIMD_U8_1toR1Mem , Simd128_I_ArgOut_U8 , OP_I_SetOutAsmSimd ) |
| EXDEF2_WMS ( SIMD_U16_1toR1Mem , Simd128_I_ArgOut_U16 , OP_I_SetOutAsmSimd ) |
| EXDEF2_WMS ( SIMD_B4_1toR1Mem , Simd128_I_ArgOut_B4 , OP_I_SetOutAsmSimd ) |
| EXDEF2_WMS ( SIMD_B8_1toR1Mem , Simd128_I_ArgOut_B8 , OP_I_SetOutAsmSimd ) |
| EXDEF2_WMS ( SIMD_B16_1toR1Mem , Simd128_I_ArgOut_B16 , OP_I_SetOutAsmSimd ) |
| |
| EXDEF2_WMS ( SIMD_I8_1toI8_1 , Simd128_I_Conv_VTI8 , (AsmJsSIMDValue) ) |
| EXDEF2_WMS ( SIMD_U4_1toU4_1 , Simd128_I_Conv_VTU4 , (AsmJsSIMDValue) ) |
| EXDEF2_WMS ( SIMD_U8_1toU8_1 , Simd128_I_Conv_VTU8 , (AsmJsSIMDValue) ) |
| EXDEF2_WMS ( SIMD_U16_1toU16_1 , Simd128_I_Conv_VTU16 , (AsmJsSIMDValue) ) |
| EXDEF2_WMS ( SIMD_B4_1toB4_1 , Simd128_I_Conv_VTB4 , (AsmJsSIMDValue) ) |
| EXDEF2_WMS ( SIMD_B8_1toB8_1 , Simd128_I_Conv_VTB8 , (AsmJsSIMDValue) ) |
| EXDEF2_WMS ( SIMD_B16_1toB16_1 , Simd128_I_Conv_VTB16 , (AsmJsSIMDValue) ) |
| |
| EXDEF2_WMS ( SIMD_I8_1toI8_1 , Simd128_Return_I8 , (AsmJsSIMDValue) ) |
| EXDEF2_WMS ( SIMD_U4_1toU4_1 , Simd128_Return_U4 , (AsmJsSIMDValue) ) |
| EXDEF2_WMS ( SIMD_U8_1toU8_1 , Simd128_Return_U8 , (AsmJsSIMDValue) ) |
| EXDEF2_WMS ( SIMD_U16_1toU16_1 , Simd128_Return_U16 , (AsmJsSIMDValue) ) |
| EXDEF2_WMS ( SIMD_B4_1toB4_1 , Simd128_Return_B4 , (AsmJsSIMDValue) ) |
| EXDEF2_WMS ( SIMD_B8_1toB8_1 , Simd128_Return_B8 , (AsmJsSIMDValue) ) |
| EXDEF2_WMS ( SIMD_B16_1toB16_1 , Simd128_Return_B16 , (AsmJsSIMDValue) ) |
| |
| EXDEF2_WMS ( SIMD_I8_1I8toI8_1 , Simd128_Swizzle_I8 , SIMDUtils::SIMD128InnerShuffle ) |
| EXDEF2_WMS ( SIMD_I8_2I8toI8_1 , Simd128_Shuffle_I8 , SIMDUtils::SIMD128InnerShuffle ) |
| EXDEF2_WMS ( SIMD_I16_1I16toI16_1 , Simd128_Swizzle_I16 , SIMDUtils::SIMD128InnerShuffle ) |
| EXDEF2_WMS ( SIMD_I16_2I16toI16_1 , Simd128_Shuffle_I16 , SIMDUtils::SIMD128InnerShuffle ) |
| EXDEF2_WMS ( SIMD_U4_1I4toU4_1 , Simd128_Swizzle_U4 , SIMDUtils::SIMD128InnerShuffle ) |
| EXDEF2_WMS ( SIMD_U4_2I4toU4_1 , Simd128_Shuffle_U4 , SIMDUtils::SIMD128InnerShuffle ) |
| EXDEF2_WMS ( SIMD_U8_1I8toU8_1 , Simd128_Swizzle_U8 , SIMDUtils::SIMD128InnerShuffle ) |
| EXDEF2_WMS ( SIMD_U8_2I8toU8_1 , Simd128_Shuffle_U8 , SIMDUtils::SIMD128InnerShuffle ) |
| EXDEF2_WMS ( SIMD_U16_1I16toU16_1 , Simd128_Swizzle_U16 , SIMDUtils::SIMD128InnerShuffle ) |
| EXDEF2_WMS ( SIMD_U16_2I16toU16_1 , Simd128_Shuffle_U16 , SIMDUtils::SIMD128InnerShuffle ) |
| |
| EXDEF2_WMS( SIMD_I1toI8_1 , Simd128_Splat_I8 ,Js::SIMDInt16x8Operation::OpSplat ) |
| EXDEF2_WMS( SIMD_I1toU4_1 , Simd128_Splat_U4 ,Js::SIMDUint32x4Operation::OpSplat ) |
| EXDEF2_WMS( SIMD_I1toU8_1 , Simd128_Splat_U8 ,Js::SIMDInt16x8Operation::OpSplat ) |
| EXDEF2_WMS( SIMD_I1toU16_1 , Simd128_Splat_U16 ,Js::SIMDInt8x16Operation::OpSplat ) |
| |
| EXDEF2_WMS( SIMD_I8_2toI8_1 , Simd128_And_I8 , Js::SIMDInt16x8Operation::OpAnd ) |
| EXDEF2_WMS( SIMD_U4_2toU4_1 , Simd128_And_U4 , Js::SIMDInt32x4Operation::OpAnd ) |
| EXDEF2_WMS( SIMD_U8_2toU8_1 , Simd128_And_U8 , Js::SIMDInt32x4Operation::OpAnd ) |
| EXDEF2_WMS( SIMD_U16_2toU16_1 , Simd128_And_U16 , Js::SIMDInt32x4Operation::OpAnd ) |
| |
| EXDEF2_WMS( SIMD_I8_2toI8_1 , Simd128_Or_I8 , Js::SIMDInt16x8Operation::OpOr ) |
| EXDEF2_WMS( SIMD_U4_2toU4_1 , Simd128_Or_U4 , Js::SIMDInt32x4Operation::OpOr ) |
| EXDEF2_WMS( SIMD_U8_2toU8_1 , Simd128_Or_U8 , Js::SIMDInt32x4Operation::OpOr ) |
| EXDEF2_WMS( SIMD_U16_2toU16_1 , Simd128_Or_U16 , Js::SIMDInt32x4Operation::OpOr ) |
| |
| EXDEF2_WMS( SIMD_I8_2toI8_1 , Simd128_Xor_I8 , Js::SIMDInt16x8Operation::OpXor ) |
| EXDEF2_WMS( SIMD_U4_2toU4_1 , Simd128_Xor_U4 , Js::SIMDInt32x4Operation::OpXor ) |
| EXDEF2_WMS( SIMD_U8_2toU8_1 , Simd128_Xor_U8 , Js::SIMDInt32x4Operation::OpXor ) |
| EXDEF2_WMS( SIMD_U16_2toU16_1 , Simd128_Xor_U16 , Js::SIMDInt32x4Operation::OpXor ) |
| |
| EXDEF2_WMS( SIMD_I8_1toI8_1 , Simd128_Not_I8 , Js::SIMDInt16x8Operation::OpNot ) |
| EXDEF2_WMS( SIMD_U4_1toU4_1 , Simd128_Not_U4 , Js::SIMDInt32x4Operation::OpNot ) |
| EXDEF2_WMS( SIMD_U8_1toU8_1 , Simd128_Not_U8 , Js::SIMDInt32x4Operation::OpNot ) |
| EXDEF2_WMS( SIMD_U16_1toU16_1 , Simd128_Not_U16 , Js::SIMDInt32x4Operation::OpNot ) |
| |
| EXDEF2_WMS( SIMD_I8_2toI8_1 , Simd128_Add_I8 , Js::SIMDInt16x8Operation::OpAdd ) |
| EXDEF2_WMS( SIMD_U4_2toU4_1 , Simd128_Add_U4 , Js::SIMDInt32x4Operation::OpAdd ) |
| EXDEF2_WMS( SIMD_U8_2toU8_1 , Simd128_Add_U8 , Js::SIMDInt16x8Operation::OpAdd ) |
| EXDEF2_WMS( SIMD_U16_2toU16_1 , Simd128_Add_U16 , Js::SIMDInt8x16Operation::OpAdd ) |
| |
| EXDEF2_WMS( SIMD_I8_2toI8_1 , Simd128_Sub_I8 , Js::SIMDInt16x8Operation::OpSub ) |
| EXDEF2_WMS( SIMD_U4_2toU4_1 , Simd128_Sub_U4 , Js::SIMDInt32x4Operation::OpSub ) |
| EXDEF2_WMS( SIMD_U8_2toU8_1 , Simd128_Sub_U8 , Js::SIMDInt16x8Operation::OpSub ) |
| EXDEF2_WMS( SIMD_U16_2toU16_1 , Simd128_Sub_U16 , Js::SIMDInt8x16Operation::OpSub ) |
| |
| EXDEF2_WMS( SIMD_I8_1toI8_1 , Simd128_Neg_I8 , SIMDInt16x8Operation::OpNeg ) |
| EXDEF2_WMS( SIMD_I8_2toI8_1 , Simd128_Mul_I8 , Js::SIMDInt16x8Operation::OpMul ) |
| EXDEF2_WMS( SIMD_U4_2toU4_1 , Simd128_Mul_U4 , Js::SIMDInt32x4Operation::OpMul ) |
| EXDEF2_WMS( SIMD_U8_2toU8_1 , Simd128_Mul_U8 , Js::SIMDInt16x8Operation::OpMul ) |
| EXDEF2_WMS( SIMD_U16_2toU16_1 , Simd128_Mul_U16 , Js::SIMDInt8x16Operation::OpMul ) |
| |
| EXDEF2_WMS(SIMD_I8_1I1toI8_1 , Simd128_ShLtByScalar_I8 , Js::SIMDInt16x8Operation::OpShiftLeftByScalar ) |
| EXDEF2_WMS(SIMD_I8_1I1toI8_1 , Simd128_ShRtByScalar_I8 , Js::SIMDInt16x8Operation::OpShiftRightByScalar ) |
| |
| EXDEF2_WMS(SIMD_I16_1I1toI16_1 , Simd128_ShLtByScalar_I16 , Js::SIMDInt8x16Operation::OpShiftLeftByScalar ) |
| EXDEF2_WMS(SIMD_I16_1I1toI16_1 , Simd128_ShRtByScalar_I16 , Js::SIMDInt8x16Operation::OpShiftRightByScalar ) |
| |
| EXDEF2_WMS(SIMD_U4_1I1toU4_1 , Simd128_ShLtByScalar_U4 , Js::SIMDInt32x4Operation::OpShiftLeftByScalar ) |
| EXDEF2_WMS(SIMD_U4_1I1toU4_1 , Simd128_ShRtByScalar_U4 , Js::SIMDUint32x4Operation::OpShiftRightByScalar ) |
| |
| EXDEF2_WMS(SIMD_U8_1I1toU8_1 , Simd128_ShLtByScalar_U8 , Js::SIMDInt16x8Operation::OpShiftLeftByScalar ) |
| EXDEF2_WMS(SIMD_U8_1I1toU8_1 , Simd128_ShRtByScalar_U8 , Js::SIMDUint16x8Operation::OpShiftRightByScalar ) |
| |
| EXDEF2_WMS(SIMD_U16_1I1toU16_1 , Simd128_ShLtByScalar_U16 , Js::SIMDInt8x16Operation::OpShiftLeftByScalar ) |
| EXDEF2_WMS(SIMD_U16_1I1toU16_1 , Simd128_ShRtByScalar_U16 , Js::SIMDUint8x16Operation::OpShiftRightByScalar ) |
| |
| EXDEF2_WMS( SIMD_I8_2toI8_1 , Simd128_AddSaturate_I8 , Js::SIMDInt16x8Operation::OpAddSaturate ) |
| EXDEF2_WMS( SIMD_I8_2toI8_1 , Simd128_SubSaturate_I8 , Js::SIMDInt16x8Operation::OpSubSaturate ) |
| |
| EXDEF2_WMS( SIMD_I16_2toI16_1 , Simd128_AddSaturate_I16 , Js::SIMDInt8x16Operation::OpAddSaturate ) |
| EXDEF2_WMS( SIMD_I16_2toI16_1 , Simd128_SubSaturate_I16 , Js::SIMDInt8x16Operation::OpSubSaturate ) |
| |
| EXDEF2_WMS( SIMD_U8_2toU8_1 , Simd128_AddSaturate_U8 , Js::SIMDUint16x8Operation::OpAddSaturate ) |
| EXDEF2_WMS( SIMD_U8_2toU8_1 , Simd128_SubSaturate_U8 , Js::SIMDUint16x8Operation::OpSubSaturate ) |
| |
| EXDEF2_WMS( SIMD_U16_2toU16_1 , Simd128_AddSaturate_U16 , Js::SIMDUint8x16Operation::OpAddSaturate ) |
| EXDEF2_WMS( SIMD_U16_2toU16_1 , Simd128_SubSaturate_U16 , Js::SIMDUint8x16Operation::OpSubSaturate ) |
| |
| EXDEF3_WMS( CUSTOM_ASMJS , Simd128_LdArr_I8 , OP_SimdLdArrGeneric , AsmSimdTypedArr ) |
| EXDEF3_WMS( CUSTOM_ASMJS , Simd128_LdArr_I16 , OP_SimdLdArrGeneric , AsmSimdTypedArr ) |
| EXDEF3_WMS( CUSTOM_ASMJS , Simd128_LdArr_U4 , OP_SimdLdArrGeneric , AsmSimdTypedArr ) |
| EXDEF3_WMS( CUSTOM_ASMJS , Simd128_LdArr_U8 , OP_SimdLdArrGeneric , AsmSimdTypedArr ) |
| EXDEF3_WMS( CUSTOM_ASMJS , Simd128_LdArr_U16 , OP_SimdLdArrGeneric , AsmSimdTypedArr ) |
| |
| EXDEF3_WMS( CUSTOM_ASMJS , Simd128_StArr_I8 , OP_SimdStArrGeneric , AsmSimdTypedArr ) |
| EXDEF3_WMS( CUSTOM_ASMJS , Simd128_StArr_I16 , OP_SimdStArrGeneric , AsmSimdTypedArr ) |
| EXDEF3_WMS( CUSTOM_ASMJS , Simd128_StArr_U4 , OP_SimdStArrGeneric , AsmSimdTypedArr ) |
| EXDEF3_WMS( CUSTOM_ASMJS , Simd128_StArr_U8 , OP_SimdStArrGeneric , AsmSimdTypedArr ) |
| EXDEF3_WMS( CUSTOM_ASMJS , Simd128_StArr_U16 , OP_SimdStArrGeneric , AsmSimdTypedArr ) |
| |
| EXDEF2_WMS( SIMD_F4_1toI8_1 , Simd128_FromFloat32x4Bits_I8 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_I4_1toI8_1 , Simd128_FromInt32x4Bits_I8 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_I16_1toI8_1 , Simd128_FromInt8x16Bits_I8 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_U4_1toI8_1 , Simd128_FromUint32x4Bits_I8 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_U8_1toI8_1 , Simd128_FromUint16x8Bits_I8 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_U16_1toI8_1 , Simd128_FromUint8x16Bits_I8 , Js::SIMDUtils::FromSimdBits ) |
| |
| EXDEF2_WMS( SIMD_F4_1toI16_1 , Simd128_FromFloat32x4Bits_I16 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_I4_1toI16_1 , Simd128_FromInt32x4Bits_I16 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_I8_1toI16_1 , Simd128_FromInt16x8Bits_I16 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_U4_1toI16_1 , Simd128_FromUint32x4Bits_I16 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_U8_1toI16_1 , Simd128_FromUint16x8Bits_I16 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_U16_1toI16_1, Simd128_FromUint8x16Bits_I16 , Js::SIMDUtils::FromSimdBits ) |
| |
| EXDEF3_WMS( CUSTOM_ASMJS , Simd128_FromFloat32x4_U4 , OP_SimdUint32x4FromFloat32x4 , Uint32x4_1Float32x4_1) |
| EXDEF2_WMS( SIMD_F4_1toU4_1 , Simd128_FromFloat32x4Bits_U4 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_I4_1toU4_1 , Simd128_FromInt32x4Bits_U4 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_I8_1toU4_1 , Simd128_FromInt16x8Bits_U4 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_I16_1toU4_1 , Simd128_FromInt8x16Bits_U4 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_U8_1toU4_1 , Simd128_FromUint16x8Bits_U4 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_U16_1toU4_1 , Simd128_FromUint8x16Bits_U4 , Js::SIMDUtils::FromSimdBits ) |
| |
| EXDEF2_WMS( SIMD_F4_1toU8_1 , Simd128_FromFloat32x4Bits_U8 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_I4_1toU8_1 , Simd128_FromInt32x4Bits_U8 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_I8_1toU8_1 , Simd128_FromInt16x8Bits_U8 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_I16_1toU8_1 , Simd128_FromInt8x16Bits_U8 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_U4_1toU8_1 , Simd128_FromUint32x4Bits_U8 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_U16_1toU8_1 , Simd128_FromUint8x16Bits_U8 , Js::SIMDUtils::FromSimdBits ) |
| |
| EXDEF2_WMS( SIMD_F4_1toU16_1 , Simd128_FromFloat32x4Bits_U16 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_I4_1toU16_1 , Simd128_FromInt32x4Bits_U16 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_I8_1toU16_1 , Simd128_FromInt16x8Bits_U16 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_I16_1toU16_1 , Simd128_FromInt8x16Bits_U16 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_U4_1toU16_1 , Simd128_FromUint32x4Bits_U16 , Js::SIMDUtils::FromSimdBits ) |
| EXDEF2_WMS( SIMD_U8_1toU16_1 , Simd128_FromUint16x8Bits_U16 , Js::SIMDUtils::FromSimdBits ) |
| |
| EXDEF2_WMS( SIMD_I8_2toB8_1 , Simd128_Lt_I8 , Js::SIMDInt16x8Operation::OpLessThan ) |
| EXDEF2_WMS( SIMD_U4_2toB4_1 , Simd128_Lt_U4 , Js::SIMDUint32x4Operation::OpLessThan ) |
| EXDEF2_WMS( SIMD_U8_2toB8_1 , Simd128_Lt_U8 , Js::SIMDUint16x8Operation::OpLessThan ) |
| EXDEF2_WMS( SIMD_U16_2toB16_1 , Simd128_Lt_U16 , Js::SIMDUint8x16Operation::OpLessThan ) |
| |
| EXDEF2_WMS( SIMD_I4_2toB4_1 , Simd128_LtEq_I4 , Js::SIMDInt32x4Operation::OpLessThanOrEqual ) |
| EXDEF2_WMS( SIMD_I8_2toB8_1 , Simd128_LtEq_I8 , Js::SIMDInt16x8Operation::OpLessThanOrEqual ) |
| EXDEF2_WMS( SIMD_I16_2toB16_1 , Simd128_LtEq_I16 , Js::SIMDInt8x16Operation::OpLessThanOrEqual ) |
| EXDEF2_WMS( SIMD_U4_2toB4_1 , Simd128_LtEq_U4 , Js::SIMDUint32x4Operation::OpLessThanOrEqual ) |
| EXDEF2_WMS( SIMD_U8_2toB8_1 , Simd128_LtEq_U8 , Js::SIMDUint16x8Operation::OpLessThanOrEqual ) |
| EXDEF2_WMS( SIMD_U16_2toB16_1 , Simd128_LtEq_U16 , Js::SIMDUint8x16Operation::OpLessThanOrEqual ) |
| |
| EXDEF2_WMS( SIMD_I8_2toB8_1 , Simd128_Eq_I8 , Js::SIMDInt16x8Operation::OpEqual ) |
| EXDEF2_WMS( SIMD_U4_2toB4_1 , Simd128_Eq_U4 , Js::SIMDInt32x4Operation::OpEqual ) |
| EXDEF2_WMS( SIMD_U8_2toB8_1 , Simd128_Eq_U8 , Js::SIMDInt16x8Operation::OpEqual ) |
| EXDEF2_WMS( SIMD_U16_2toB16_1 , Simd128_Eq_U16 , Js::SIMDInt8x16Operation::OpEqual ) |
| |
| EXDEF2_WMS( SIMD_I4_2toB4_1 , Simd128_Neq_I4 , Js::SIMDInt32x4Operation::OpNotEqual ) |
| EXDEF2_WMS( SIMD_I8_2toB8_1 , Simd128_Neq_I8 , Js::SIMDInt16x8Operation::OpNotEqual ) |
| EXDEF2_WMS( SIMD_I16_2toB16_1 , Simd128_Neq_I16 , Js::SIMDInt8x16Operation::OpNotEqual ) |
| EXDEF2_WMS( SIMD_U4_2toB4_1 , Simd128_Neq_U4 , Js::SIMDInt32x4Operation::OpNotEqual ) |
| EXDEF2_WMS( SIMD_U8_2toB8_1 , Simd128_Neq_U8 , Js::SIMDInt16x8Operation::OpNotEqual ) |
| EXDEF2_WMS( SIMD_U16_2toB16_1 , Simd128_Neq_U16 , Js::SIMDInt8x16Operation::OpNotEqual ) |
| |
| EXDEF2_WMS( SIMD_I4_2toB4_1 , Simd128_GtEq_I4 , Js::SIMDInt32x4Operation::OpGreaterThanOrEqual ) |
| EXDEF2_WMS( SIMD_I8_2toB8_1 , Simd128_GtEq_I8 , Js::SIMDInt16x8Operation::OpGreaterThanOrEqual ) |
| EXDEF2_WMS( SIMD_I16_2toB16_1 , Simd128_GtEq_I16 , Js::SIMDInt8x16Operation::OpGreaterThanOrEqual ) |
| EXDEF2_WMS( SIMD_U4_2toB4_1 , Simd128_GtEq_U4 , Js::SIMDUint32x4Operation::OpGreaterThanOrEqual ) |
| EXDEF2_WMS( SIMD_U8_2toB8_1 , Simd128_GtEq_U8 , Js::SIMDUint16x8Operation::OpGreaterThanOrEqual ) |
| EXDEF2_WMS( SIMD_U16_2toB16_1 , Simd128_GtEq_U16 , Js::SIMDUint8x16Operation::OpGreaterThanOrEqual ) |
| |
| EXDEF2_WMS( SIMD_I8_2toB8_1 , Simd128_Gt_I8 , Js::SIMDInt16x8Operation::OpGreaterThan ) |
| EXDEF2_WMS( SIMD_U4_2toB4_1 , Simd128_Gt_U4 , Js::SIMDUint32x4Operation::OpGreaterThan ) |
| EXDEF2_WMS( SIMD_U8_2toB8_1 , Simd128_Gt_U8 , Js::SIMDUint16x8Operation::OpGreaterThan ) |
| EXDEF2_WMS( SIMD_U16_2toB16_1 , Simd128_Gt_U16 , Js::SIMDUint8x16Operation::OpGreaterThan ) |
| |
| EXDEF2_WMS( SIMD_U4_1toU4_1 , Simd128_Neg_U4 , SIMDInt32x4Operation::OpNeg ) |
| EXDEF2_WMS( SIMD_U8_1toU8_1 , Simd128_Neg_U8 , SIMDInt16x8Operation::OpNeg ) |
| EXDEF2_WMS( SIMD_U16_1toU16_1 , Simd128_Neg_U16 , SIMDInt8x16Operation::OpNeg ) |
| |
| #if 0 |
| EXDEF2_WMS(SIMD_D2toD2_1, Simd128_DoublesToD2, SIMDFloat64x2Operation::OpFloat64x2) |
| EXDEF4_WMS(TEMPLATE_ASMJS, Simd128_LdSlot_D2, OP_LdSlotPrimitive, ElementSlot, AsmJsSIMDValue) |
| EXDEF4_WMS(TEMPLATE_ASMJS, Simd128_StSlot_D2, OP_StSlotPrimitive, ElementSlot, AsmJsSIMDValue) |
| EXDEF2_WMS(SIMD_D2_1toD2_1, Simd128_Return_D2, (AsmJsSIMDValue)) |
| EXDEF2_WMS(SIMD_D1toD2_1, Simd128_Splat_D2, Js::SIMDFloat64x2Operation::OpSplat) |
| EXDEF2_WMS(SIMD_F4_1toD2_1, Simd128_FromFloat32x4_D2, SIMDFloat64x2Operation::OpFromFloat32x4) |
| EXDEF2_WMS(SIMD_F4_1toD2_1, Simd128_FromFloat32x4Bits_D2, Js::FromSimdBits) |
| EXDEF2_WMS(SIMD_I4_1toD2_1, Simd128_FromInt32x4_D2, SIMDFloat64x2Operation::OpFromInt32x4) |
| EXDEF2_WMS(SIMD_I4_1toD2_1, Simd128_FromInt32x4Bits_D2, Js::FromSimdBits) |
| EXDEF2_WMS(SIMD_D2_1toD2_1, Simd128_Abs_D2, SIMDFloat64x2Operation::OpAbs) |
| EXDEF2_WMS(SIMD_D2_1toD2_1, Simd128_Neg_D2, SIMDFloat64x2Operation::OpNeg) |
| EXDEF2_WMS(SIMD_D2_1toD2_1, Simd128_Rcp_D2, SIMDFloat64x2Operation::OpReciprocal) |
| EXDEF2_WMS(SIMD_D2_1toD2_1, Simd128_RcpSqrt_D2, SIMDFloat64x2Operation::OpReciprocalSqrt) |
| EXDEF2_WMS(SIMD_D2_1toD2_1, Simd128_Sqrt_D2, SIMDFloat64x2Operation::OpSqrt) |
| EXDEF2_WMS(SIMD_D2_2toD2_1, Simd128_Add_D2, Js::SIMDFloat64x2Operation::OpAdd) |
| EXDEF2_WMS(SIMD_D2_2toD2_1, Simd128_Sub_D2, Js::SIMDFloat64x2Operation::OpSub) |
| EXDEF2_WMS(SIMD_D2_2toD2_1, Simd128_Mul_D2, Js::SIMDFloat64x2Operation::OpMul) |
| EXDEF2_WMS(SIMD_D2_2toD2_1, Simd128_Div_D2, Js::SIMDFloat64x2Operation::OpDiv) |
| EXDEF2_WMS(SIMD_D2_2toD2_1, Simd128_Min_D2, Js::SIMDFloat64x2Operation::OpMin) |
| EXDEF2_WMS(SIMD_D2_2toD2_1, Simd128_Max_D2, Js::SIMDFloat64x2Operation::OpMax) |
| EXDEF2_WMS(SIMD_D2_2toD2_1, Simd128_Lt_D2, Js::SIMDFloat64x2Operation::OpLessThan) |
| EXDEF2_WMS(SIMD_D2_2toD2_1, Simd128_LtEq_D2, Js::SIMDFloat64x2Operation::OpLessThanOrEqual) |
| EXDEF2_WMS(SIMD_D2_2toD2_1, Simd128_Eq_D2, Js::SIMDFloat64x2Operation::OpEqual) |
| EXDEF2_WMS(SIMD_D2_2toD2_1, Simd128_Neq_D2, Js::SIMDFloat64x2Operation::OpNotEqual) |
| EXDEF2_WMS(SIMD_D2_2toD2_1, Simd128_GtEq_D2, Js::SIMDFloat64x2Operation::OpGreaterThanOrEqual) |
| EXDEF2_WMS(SIMD_D2_2toD2_1, Simd128_Gt_D2, Js::SIMDFloat64x2Operation::OpGreaterThan) |
| EXDEF2_WMS(SIMD_I4_1D2_2toD2_1, Simd128_Select_D2, Js::SIMDFloat64x2Operation::OpSelect) |
| EXDEF2_WMS(SIMD_D2_3toD2_1, Simd128_Clamp_D2, Js::SIMDFloat64x2Operation::OpClamp) |
| EXDEF2_WMS(SIMD_D2_1toI1, Simd128_LdSignMask_D2, Js::SIMDFloat64x2Operation::OpGetSignMask) |
| EXDEF2_WMS(SIMD_D2_1toR1Mem, Simd128_I_ArgOut_D2, OP_I_SetOutAsmSimd) |
| EXDEF2_WMS(SIMD_D2_1toD2_1, Simd128_I_Conv_VTD2, (AsmJsSIMDValue)) |
| EXDEF2_WMS(SIMD_D2_1toD2_1, Simd128_Ld_D2, (AsmJsSIMDValue) |
| EXDEF2_WMS(SIMD_D2_1I2toD2_1, Simd128_Swizzle_D2, SIMD128InnerShuffle) |
| EXDE2_WMS(SIMD_D2_2I2toD2_1, Simd128_Shuffle_D2, SIMD128InnerShuffle) |
| EXDEF3_WMS(CUSTOM_ASMJS, Simd128_StArr_D2, OP_SimdStArrGeneric, AsmSimdTypedArr) |
| EXDEF3_WMS(CUSTOM_ASMJS, Simd128_LdArr_D2, OP_SimdLdArrGeneric, AsmSimdTypedArr) |
| EXDEF3_WMS(CUSTOM_ASMJS, Simd128_LdArrConst_D2, OP_SimdLdArrConstIndex, AsmSimdTypedArr) |
| EXDEF3_WMS(CUSTOM_ASMJS, Simd128_StArrConst_D2, OP_SimdStArrConstIndex, AsmSimdTypedArr) |
| #endif // 0 |
| |
| #endif |