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)); |