From 11516cb27ed0c05acc737ddde0861f727c107f8f Mon Sep 17 00:00:00 2001 From: Eduardo Aguilar Date: Fri, 4 Sep 2020 16:39:07 +0200 Subject: [PATCH 1/2] ppc32: use different register for truncation output Signed-off-by: Eduardo Aguilar --- deps/v8/src/codegen/ppc/macro-assembler-ppc.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/deps/v8/src/codegen/ppc/macro-assembler-ppc.cc b/deps/v8/src/codegen/ppc/macro-assembler-ppc.cc index 6482a108..ba68e3d3 100644 --- a/deps/v8/src/codegen/ppc/macro-assembler-ppc.cc +++ b/deps/v8/src/codegen/ppc/macro-assembler-ppc.cc @@ -701,16 +701,18 @@ void TurboAssembler::ConvertDoubleToInt32NoPPC64( DoubleRegister src, Register dest, Register dest_hi, FPRoundingMode rounding_mode) { - + + DoubleRegister double_scratch = kScratchDoubleReg; + if (rounding_mode == kRoundToZero) { - fctiwz(src, src); + fctiwz(double_scratch, src); } else { SetRoundingMode(rounding_mode); - fctiw(src, src); + fctiw(double_scratch, src); ResetRoundingMode(); } subi(sp, sp, Operand(kDoubleSize)); - stfd(src, MemOperand(sp, 0)); + stfd(double_scratch, MemOperand(sp, 0)); lwz(dest, MemOperand(sp, LO_WORD_OFFSET)); lwz(dest_hi, MemOperand(sp, HI_WORD_OFFSET)); addi(sp, sp, Operand(kDoubleSize)); -- 2.28.0