diff --git a/common.gypi b/common.gypi index d2988d8c358081..7948f763e1f50b 100644 --- a/common.gypi +++ b/common.gypi @@ -36,7 +36,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.11', + 'v8_embedder_string': '-node.12', ##### V8 defaults for Node.js ##### 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 56c5003d2e8ede..ae8584ed304391 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()));