Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc')
-rw-r--r--deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc b/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
index b7fece3f72d..74e16a20732 100644
--- a/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
+++ b/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
@@ -1515,12 +1515,14 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
}
break;
case kPPC_MulHigh32:
- __ mulhw(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1),
- i.OutputRCBit());
+ __ mulhw(r0, i.InputRegister(0), i.InputRegister(1), i.OutputRCBit());
+ // High 32 bits are undefined and need to be cleared.
+ __ clrldi(i.OutputRegister(), r0, Operand(32));
break;
case kPPC_MulHighU32:
- __ mulhwu(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1),
- i.OutputRCBit());
+ __ mulhwu(r0, i.InputRegister(0), i.InputRegister(1), i.OutputRCBit());
+ // High 32 bits are undefined and need to be cleared.
+ __ clrldi(i.OutputRegister(), r0, Operand(32));
break;
case kPPC_MulDouble:
ASSEMBLE_FLOAT_BINOP_RC(fmul, MiscField::decode(instr->opcode()));