tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit b8f574e58bd7f677851c8d2dba9b15ef5371c331
parent 0d38313cbfba7a0521b91fcca779eca3e228cf75
Author: Rong "Mantle" Bao <webmaster@csmantle.top>
Date:   Wed, 15 Oct 2025 16:39:53 +0000

Bug 1984472 - Part 1: Skip saving live registers when OOL-calling from a call instruction. r=spidermonkey-reviewers,jandem

This prepares oolCallVM for later parts in the stack.

Differential Revision: https://phabricator.services.mozilla.com/D268308

Diffstat:
Mjs/src/jit/CodeGenerator.cpp | 8++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/js/src/jit/CodeGenerator.cpp b/js/src/jit/CodeGenerator.cpp @@ -554,11 +554,15 @@ void CodeGenerator::visitOutOfLineCallVM( JitSpewFin(JitSpew_Codegen); #endif perfSpewer().recordInstruction(masm, lir); - saveLive(lir); + if (!lir->isCall()) { + saveLive(lir); + } ool->args().generate(this); callVM<Fn, fn>(lir); ool->out().generate(this); - restoreLiveIgnore(lir, ool->out().clobbered()); + if (!lir->isCall()) { + restoreLiveIgnore(lir, ool->out().clobbered()); + } masm.jump(ool->rejoin()); }