From b7ecaa8f7e903f7cf5190aa1e3150e739fffa1cc Mon Sep 17 00:00:00 2001 From: Vivian Wang Date: Tue, 3 Feb 2026 16:46:02 +0800 Subject: [PATCH] deps: V8: backport 6a0a25abaed3 Original commit message: [riscv] Fix sp handling in MacroAssembler::LeaveFrame Keep sp <= fp to ensure that data right above fp doesn't get clobbered by an inopportune signal and its handler. Such clobbering can happen in e.g. Node.js when JIT-compiled code is interrupted by a SIGCHLD handler. Bug: None Change-Id: Ief0836032ada7942e89f081f7605f61632c4d414 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7540554 Reviewed-by: Ji Qiu Commit-Queue: Yahan Lu (LuYahan) Reviewed-by: Rezvan Mahdavi Hezaveh Cr-Commit-Position: refs/heads/main@{#105069} Refs: https://github.com/v8/v8/commit/6a0a25abaed397f83eb0d92e4b33a5e18204f8bc Co-authored-by: kxxt --- common.gypi | 2 +- deps/v8/AUTHORS | 1 + deps/v8/src/codegen/riscv/macro-assembler-riscv.cc | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/common.gypi b/common.gypi index 6f9b387f1d0bfd..668ce6d3247b6a 100644 --- a/common.gypi +++ b/common.gypi @@ -38,7 +38,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.34', + 'v8_embedder_string': '-node.35', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index 54fb45992db176..93b3d9d5b2320c 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -282,6 +282,7 @@ Vadim Gorbachev Varun Varada Victor Costan Victor Polevoy +Vivian Wang Vlad Burlik Vladimir Krivosheev Vladimir Shutoff diff --git a/deps/v8/src/codegen/riscv/macro-assembler-riscv.cc b/deps/v8/src/codegen/riscv/macro-assembler-riscv.cc index fd5e97339b4435..dc4e3aafcdbeb8 100644 --- a/deps/v8/src/codegen/riscv/macro-assembler-riscv.cc +++ b/deps/v8/src/codegen/riscv/macro-assembler-riscv.cc @@ -6036,9 +6036,10 @@ void MacroAssembler::EnterFrame(StackFrame::Type type) { void MacroAssembler::LeaveFrame(StackFrame::Type type) { ASM_CODE_COMMENT(this); - addi(sp, fp, 2 * kSystemPointerSize); + Move(sp, fp); LoadWord(ra, MemOperand(fp, 1 * kSystemPointerSize)); LoadWord(fp, MemOperand(fp, 0 * kSystemPointerSize)); + AddWord(sp, sp, 2 * kSystemPointerSize); } void MacroAssembler::EnterExitFrame(int stack_space,