Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ec3927dec16c983d02600627fa81d51be322984b
      
https://github.com/WebKit/WebKit/commit/ec3927dec16c983d02600627fa81d51be322984b
  Author: Yusuke Suzuki <[email protected]>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
    M Source/JavaScriptCore/b3/B3LowerMacros.cpp
    M Source/JavaScriptCore/b3/B3LowerToAir.cpp
    M Source/JavaScriptCore/b3/air/AirOpcode.opcodes
    M Source/JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cpp

  Log Message:
  -----------
  [JSC] Optimize DFG ArithMul
https://bugs.webkit.org/show_bug.cgi?id=257973
rdar://110657502

Reviewed by Justin Michaud.

This patch optimizes DFG ArithMul more.

1. ARM64 branchMul32 and branchMul64 were suboptimal. This patch rewrites the 
assembler generated code.
   And we drop B3's ARM64 CheckMul macro-lowering since BranchMul32 generated 
code is now better.
2. Extend isNotNegZero not to cause negative zero check unnecessarily. Bit ops 
never generates -0 (If it is numbers,
   then it is always non -0. If it is BigInt, anyway, it is not -0).

* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::branchMul32):
(JSC::MacroAssemblerARM64::branchMul64):
* Source/JavaScriptCore/b3/B3LowerMacros.cpp:
* Source/JavaScriptCore/b3/B3LowerToAir.cpp:
* Source/JavaScriptCore/b3/air/AirOpcode.opcodes:
* Source/JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cpp:
(JSC::DFG::BackwardsPropagationPhase::isNotNegZero):

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to