diff --git a/common.gypi b/common.gypi index f3e47909677639..5372c8d42de531 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.21', + 'v8_embedder_string': '-node.22', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/src/wasm/baseline/ppc/liftoff-assembler-ppc.h b/deps/v8/src/wasm/baseline/ppc/liftoff-assembler-ppc.h index 796ddaa4d17385..31ce3e5a8f407d 100644 --- a/deps/v8/src/wasm/baseline/ppc/liftoff-assembler-ppc.h +++ b/deps/v8/src/wasm/baseline/ppc/liftoff-assembler-ppc.h @@ -1455,6 +1455,7 @@ bool LiftoffAssembler::emit_type_conversion(WasmOpcode opcode, fcmpu(src.fp(), kScratchDoubleReg); bunordered(trap); + mtfsb0(VXCVI); // clear FPSCR:VXCVI bit fctiwz(kScratchDoubleReg, src.fp()); MovDoubleLowToInt(dst.gp(), kScratchDoubleReg); mcrfs(cr7, VXCVI); @@ -1463,6 +1464,7 @@ bool LiftoffAssembler::emit_type_conversion(WasmOpcode opcode, } case kExprI32UConvertF64: case kExprI32UConvertF32: { + mtfsb0(VXCVI); // clear FPSCR:VXCVI bit ConvertDoubleToUnsignedInt64(src.fp(), r0, kScratchDoubleReg, kRoundToZero); mcrfs(cr7, VXCVI); // extract FPSCR field containing VXCVI into cr7 @@ -1478,6 +1480,7 @@ bool LiftoffAssembler::emit_type_conversion(WasmOpcode opcode, fcmpu(src.fp(), kScratchDoubleReg); bunordered(trap); + mtfsb0(VXCVI); // clear FPSCR:VXCVI bit fctidz(kScratchDoubleReg, src.fp()); MovDoubleToInt64(dst.gp(), kScratchDoubleReg); mcrfs(cr7, VXCVI); @@ -1490,6 +1493,7 @@ bool LiftoffAssembler::emit_type_conversion(WasmOpcode opcode, fcmpu(src.fp(), kScratchDoubleReg); bunordered(trap); + mtfsb0(VXCVI); // clear FPSCR:VXCVI bit fctiduz(kScratchDoubleReg, src.fp()); MovDoubleToInt64(dst.gp(), kScratchDoubleReg); mcrfs(cr7, VXCVI);