| Index: src/compiler/ppc/code-generator-ppc.cc
|
| diff --git a/src/compiler/ppc/code-generator-ppc.cc b/src/compiler/ppc/code-generator-ppc.cc
|
| index d827dead815eca3e4691160460dcca76fbc8a2a6..88e47b4ea6967d9f46ce2a9f6cb6a2e4e4d188fc 100644
|
| --- a/src/compiler/ppc/code-generator-ppc.cc
|
| +++ b/src/compiler/ppc/code-generator-ppc.cc
|
| @@ -991,6 +991,18 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
|
| __ sube(i.OutputRegister(1), i.InputRegister(1), i.InputRegister(3));
|
| DCHECK_EQ(LeaveRC, i.OutputRCBit());
|
| break;
|
| + case kPPC_MulPair:
|
| + // i.InputRegister(0) ... left low word.
|
| + // i.InputRegister(1) ... left high word.
|
| + // i.InputRegister(2) ... right low word.
|
| + // i.InputRegister(3) ... right high word.
|
| + __ mullw(i.TempRegister(0), i.InputRegister(0), i.InputRegister(3));
|
| + __ mullw(i.TempRegister(1), i.InputRegister(2), i.InputRegister(1));
|
| + __ add(i.TempRegister(0), i.TempRegister(0), i.TempRegister(1));
|
| + __ mullw(i.OutputRegister(0), i.InputRegister(0), i.InputRegister(2));
|
| + __ mulhwu(i.OutputRegister(1), i.InputRegister(0), i.InputRegister(2));
|
| + __ add(i.OutputRegister(1), i.OutputRegister(1), i.TempRegister(0));
|
| + break;
|
| case kPPC_ShiftLeftPair:
|
| if (instr->InputAt(2)->IsImmediate()) {
|
| __ ShiftLeftPair(i.OutputRegister(0), i.OutputRegister(1),
|
|
|