Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c5cb0e0f45e4a389cc7074b23e036d4da6af7b39
      
https://github.com/WebKit/WebKit/commit/c5cb0e0f45e4a389cc7074b23e036d4da6af7b39
  Author: Yusuke Suzuki <[email protected]>
  Date:   2026-10-06 (Tue, 06 Oct 2026)

  Changed paths:
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
    M Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h
    M Source/JavaScriptCore/assembler/testmasm.cpp

  Log Message:
  -----------
  [JSC] Do some micro-optimization about bit-ops in MacroAssembler
https://bugs.webkit.org/show_bug.cgi?id=326435
rdar://189240776

Reviewed by Sosuke Suzuki.

Do some micro-optimization about bit-ops in MacroAssembler, like
`and64(0xffffffff, x, y)` => `zeroExtend32ToPtr(x, y)`.

Test: Source/JavaScriptCore/assembler/testmasm.cpp

* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::and32):
(JSC::MacroAssemblerARM64::and64):
(JSC::MacroAssemblerARM64::lshift32):
(JSC::MacroAssemblerARM64::lshift64):
(JSC::MacroAssemblerARM64::or32):
(JSC::MacroAssemblerARM64::or64):
(JSC::MacroAssemblerARM64::rotateRight32):
(JSC::MacroAssemblerARM64::rotateRight64):
(JSC::MacroAssemblerARM64::rshift32):
(JSC::MacroAssemblerARM64::rshift64):
(JSC::MacroAssemblerARM64::urshift32):
(JSC::MacroAssemblerARM64::urshift64):
(JSC::MacroAssemblerARM64::xor32):
(JSC::MacroAssemblerARM64::xor64):
* Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::and32):
(JSC::MacroAssemblerX86_64::lshift32):
(JSC::MacroAssemblerX86_64::or32):
(JSC::MacroAssemblerX86_64::rshift32):
(JSC::MacroAssemblerX86_64::urshift32):
(JSC::MacroAssemblerX86_64::rotateRight32):
(JSC::MacroAssemblerX86_64::rotateLeft32):
(JSC::MacroAssemblerX86_64::xor32):
(JSC::MacroAssemblerX86_64::move):
(JSC::MacroAssemblerX86_64::branchAdd32):
(JSC::MacroAssemblerX86_64::branchSub32):
(JSC::MacroAssemblerX86_64::add64):
(JSC::MacroAssemblerX86_64::and64):
(JSC::MacroAssemblerX86_64::lshift64):
(JSC::MacroAssemblerX86_64::rshift64):
(JSC::MacroAssemblerX86_64::urshift64):
(JSC::MacroAssemblerX86_64::rotateRight64):
(JSC::MacroAssemblerX86_64::rotateLeft64):
(JSC::MacroAssemblerX86_64::or64):
(JSC::MacroAssemblerX86_64::sub64):
(JSC::MacroAssemblerX86_64::xor64):
(JSC::MacroAssemblerX86_64::branchAdd64):
(JSC::MacroAssemblerX86_64::branchSub64):
* Source/JavaScriptCore/assembler/testmasm.cpp:
(JSC::int64ImmediateOperands):
(JSC::int64InputOperands):
(JSC::checkRegisterImmediateOp):
(JSC::checkSrcDestImmediateOp):
(JSC::expectedBranchArithTaken):
(JSC::checkBranchArithImmediate):
(JSC::testBranchAddSubImmediateSetsFlags):
(JSC::testLogicalAndShiftImmediates):

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



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

Reply via email to