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

  Changed paths:
    M Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h

  Log Message:
  -----------
  [JSC][32-bit] Optimize test32 and compare32 with branchless code generation
https://bugs.webkit.org/show_bug.cgi?id=302016

Reviewed by Justin Michaud.

This PR replace IT blocks with branchless instruction sequences for common
test32 and compare32 operations.

This PR also removes NOPs in conditional moves via condition inversions, and
adds assertions for invalid Carry/Overflow conditions (tst doesn't set these
flags).

* Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::invert):
(JSC::MacroAssemblerARMv7::commuteCompareToZeroIntoTest):
(JSC::MacroAssemblerARMv7::branch32):
(JSC::MacroAssemblerARMv7::compare32):
(JSC::MacroAssemblerARMv7::test32):
(JSC::MacroAssemblerARMv7::moveConditionally32):
(JSC::MacroAssemblerARMv7::moveConditionallyTest32):
(JSC::MacroAssemblerARMv7::moveDoubleConditionally32):
(JSC::MacroAssemblerARMv7::moveDoubleConditionallyTest32):
(JSC::MacroAssemblerARMv7::moveDoubleOrNop): Deleted.
(JSC::MacroAssemblerARMv7::moveOrNop): Deleted.

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



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

Reply via email to