Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 73b3a4e9ff46a2be947f0377ccd0919d7efca6c8
      
https://github.com/WebKit/WebKit/commit/73b3a4e9ff46a2be947f0377ccd0919d7efca6c8
  Author: Mikhail R. Gadelha <[email protected]>
  Date:   2025-11-12 (Wed, 12 Nov 2025)

  Changed paths:
    M Source/JavaScriptCore/assembler/ARMv7Assembler.h
    M Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h
    M Source/JavaScriptCore/wasm/WasmBBQJIT.h
    M Source/JavaScriptCore/wasm/WasmBBQJIT32_64.cpp

  Log Message:
  -----------
  [JSC][32-bit] Optimize 64-bit operations in ARMv7 backend
https://bugs.webkit.org/show_bug.cgi?id=302334

Reviewed by Yusuke Suzuki.

Add dedicated backend functions for 64-bit operations with register
aliasing handling and reduced scratch register usage.

Changes:

* Added MUL and MLA instructions to ARMv7Assembler
* Added backend functions: and64, xor64, mul64, compare64, countLeadingZeros64, 
countTrailingZeros64
* Optimized add64/sub64 to avoid scratch register when possible
* All functions check for register overlap and only use scratch when necessary
* compare64 optimizes Equal/NotEqual to use single conditional move

* Source/JavaScriptCore/assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::mul):
(JSC::ARMv7Assembler::mla):
* Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::add64):
(JSC::MacroAssemblerARMv7::and64):
(JSC::MacroAssemblerARMv7::mul64):
(JSC::MacroAssemblerARMv7::countLeadingZeros64):
(JSC::MacroAssemblerARMv7::countTrailingZeros64):
(JSC::MacroAssemblerARMv7::compare64):
(JSC::MacroAssemblerARMv7::sub64):
(JSC::MacroAssemblerARMv7::xor64):
* Source/JavaScriptCore/wasm/WasmBBQJIT.h:
* Source/JavaScriptCore/wasm/WasmBBQJIT32_64.cpp:
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Mul):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64And):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Xor):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Clz):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Ctz):
(JSC::Wasm::BBQJITImpl::BBQJIT::emitCompareI64):
(JSC::Wasm::BBQJITImpl::BBQJIT::compareI64Helper): Deleted.

Canonical link: https://commits.webkit.org/302910@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to