Chromium Code Reviews| 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 6da65c348559667fd14461b08a4667e5b1178570..e1503aeb1891b7f4acdfaabc6ea605ecd1977cc8 100644 |
| --- a/src/compiler/ppc/code-generator-ppc.cc |
| +++ b/src/compiler/ppc/code-generator-ppc.cc |
| @@ -975,6 +975,11 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( |
| case kArchPrepareTailCall: |
| AssemblePrepareTailCall(); |
| break; |
| + case kArchComment: { |
| + Address comment_string = i.InputExternalReference(0).address(); |
| + __ RecordComment(reinterpret_cast<const char*>(comment_string)); |
| + break; |
| + } |
| case kArchCallCFunction: { |
| int const num_parameters = MiscField::decode(instr->opcode()); |
| if (instr->InputAt(0)->IsImmediate()) { |
| @@ -1300,6 +1305,12 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( |
| LeaveOE, i.OutputRCBit()); |
| break; |
| #endif |
| + case kPPC_Mul32WithHigh32: |
|
john.yan
2016/07/16 03:57:48
The reason why this fails is that output reg can b
|
| + __ mullw(i.OutputRegister(0), |
| + i.InputRegister(0), i.InputRegister(1)); // low |
| + __ mulhw(i.OutputRegister(1), |
| + i.InputRegister(0), i.InputRegister(1)); // high |
| + break; |
|
john.yan
2016/07/16 03:54:45
Try this sequence here:
+ case kPPC_Mul32WithH
|
| case kPPC_MulHigh32: |
| __ mulhw(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1), |
| i.OutputRCBit()); |