| Index: src/compiler/mips64/code-generator-mips64.cc
|
| diff --git a/src/compiler/mips64/code-generator-mips64.cc b/src/compiler/mips64/code-generator-mips64.cc
|
| index 53d7a6439e8aa9503f1a06670427f1ee2e5b37c4..454453fa6491e9af26855cc7756cd3d8a5b7fa09 100644
|
| --- a/src/compiler/mips64/code-generator-mips64.cc
|
| +++ b/src/compiler/mips64/code-generator-mips64.cc
|
| @@ -2004,6 +2004,74 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
|
| __ ffint_u_w(i.OutputSimd128Register(), i.InputSimd128Register(0));
|
| break;
|
| }
|
| + case kMips64I32x4Mul: {
|
| + CpuFeatureScope msa_scope(masm(), MIPS_SIMD);
|
| + __ mulv_w(i.OutputSimd128Register(), i.InputSimd128Register(0),
|
| + i.InputSimd128Register(1));
|
| + break;
|
| + }
|
| + case kMips64I32x4MaxS: {
|
| + CpuFeatureScope msa_scope(masm(), MIPS_SIMD);
|
| + __ max_s_w(i.OutputSimd128Register(), i.InputSimd128Register(0),
|
| + i.InputSimd128Register(1));
|
| + break;
|
| + }
|
| + case kMips64I32x4MinS: {
|
| + CpuFeatureScope msa_scope(masm(), MIPS_SIMD);
|
| + __ min_s_w(i.OutputSimd128Register(), i.InputSimd128Register(0),
|
| + i.InputSimd128Register(1));
|
| + break;
|
| + }
|
| + case kMips64I32x4Eq: {
|
| + CpuFeatureScope msa_scope(masm(), MIPS_SIMD);
|
| + __ ceq_w(i.OutputSimd128Register(), i.InputSimd128Register(0),
|
| + i.InputSimd128Register(1));
|
| + break;
|
| + }
|
| + case kMips64I32x4Ne: {
|
| + CpuFeatureScope msa_scope(masm(), MIPS_SIMD);
|
| + Simd128Register dst = i.OutputSimd128Register();
|
| + __ ceq_w(dst, i.InputSimd128Register(0), i.InputSimd128Register(1));
|
| + __ nor_v(dst, dst, dst);
|
| + break;
|
| + }
|
| + case kMips64I32x4Shl: {
|
| + CpuFeatureScope msa_scope(masm(), MIPS_SIMD);
|
| + __ slli_w(i.OutputSimd128Register(), i.InputSimd128Register(0),
|
| + i.InputInt5(1));
|
| + break;
|
| + }
|
| + case kMips64I32x4ShrS: {
|
| + CpuFeatureScope msa_scope(masm(), MIPS_SIMD);
|
| + __ srai_w(i.OutputSimd128Register(), i.InputSimd128Register(0),
|
| + i.InputInt5(1));
|
| + break;
|
| + }
|
| + case kMips64I32x4ShrU: {
|
| + CpuFeatureScope msa_scope(masm(), MIPS_SIMD);
|
| + __ srli_w(i.OutputSimd128Register(), i.InputSimd128Register(0),
|
| + i.InputInt5(1));
|
| + break;
|
| + }
|
| + case kMips64I32x4MaxU: {
|
| + CpuFeatureScope msa_scope(masm(), MIPS_SIMD);
|
| + __ max_u_w(i.OutputSimd128Register(), i.InputSimd128Register(0),
|
| + i.InputSimd128Register(1));
|
| + break;
|
| + }
|
| + case kMips64I32x4MinU: {
|
| + CpuFeatureScope msa_scope(masm(), MIPS_SIMD);
|
| + __ min_u_w(i.OutputSimd128Register(), i.InputSimd128Register(0),
|
| + i.InputSimd128Register(1));
|
| + break;
|
| + }
|
| + case kMips64S32x4Select: {
|
| + CpuFeatureScope msa_scope(masm(), MIPS_SIMD);
|
| + DCHECK(i.OutputSimd128Register().is(i.InputSimd128Register(0)));
|
| + __ bsel_v(i.OutputSimd128Register(), i.InputSimd128Register(2),
|
| + i.InputSimd128Register(1));
|
| + break;
|
| + }
|
| }
|
| return kSuccess;
|
| } // NOLINT(readability/fn_size)
|
|
|