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