| 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 6c0ee1a020ac6e7644c0c0d360278e4bd0156791..c74aa777e0a1edb562c184ce192b906805b1bf7c 100644
|
| --- a/src/compiler/mips64/code-generator-mips64.cc
|
| +++ b/src/compiler/mips64/code-generator-mips64.cc
|
| @@ -720,10 +720,26 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
|
| __ Ext(i.OutputRegister(), i.InputRegister(0), i.InputInt8(1),
|
| i.InputInt8(2));
|
| break;
|
| + case kMips64Ins:
|
| + if (instr->InputAt(1)->IsImmediate() && i.InputInt8(1) == 0) {
|
| + __ Ins(i.OutputRegister(), zero_reg, i.InputInt8(1), i.InputInt8(2));
|
| + } else {
|
| + __ Ins(i.OutputRegister(), i.InputRegister(0), i.InputInt8(1),
|
| + i.InputInt8(2));
|
| + }
|
| + break;
|
| case kMips64Dext:
|
| __ Dext(i.OutputRegister(), i.InputRegister(0), i.InputInt8(1),
|
| i.InputInt8(2));
|
| break;
|
| + case kMips64Dins:
|
| + if (instr->InputAt(1)->IsImmediate() && i.InputInt8(1) == 0) {
|
| + __ Dins(i.OutputRegister(), zero_reg, i.InputInt8(1), i.InputInt8(2));
|
| + } else {
|
| + __ Dins(i.OutputRegister(), i.InputRegister(0), i.InputInt8(1),
|
| + i.InputInt8(2));
|
| + }
|
| + break;
|
| case kMips64Dshl:
|
| if (instr->InputAt(1)->IsRegister()) {
|
| __ dsllv(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1));
|
|
|