[webkit-changes] [WebKit/WebKit] 45c054: [JSC] Optimize Move32 in ARM64

Yusuke Suzuki noreply at github.com
Mon May 22 10:55:34 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 45c0547c1d8e948bee6c53314d285d7ed7b7a63d
      https://github.com/WebKit/WebKit/commit/45c0547c1d8e948bee6c53314d285d7ed7b7a63d
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2023-05-22 (Mon, 22 May 2023)

  Changed paths:
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
    M Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp

  Log Message:
  -----------
  [JSC] Optimize Move32 in ARM64
https://bugs.webkit.org/show_bug.cgi?id=257097
rdar://109615916

Reviewed by Michael Saboff.

Move32 is actually more costly than Move in ARM64. We should prefer Move over Move32 in register allocator in ARM64.
We also use "and" instead of "uxth" for zero-extend ops since "and" is cheaper than "uxth" (and clang chooses it).

* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::zeroExtend16To32):
(JSC::MacroAssemblerARM64::zeroExtend16To64):
(JSC::MacroAssemblerARM64::zeroExtend8To32):
(JSC::MacroAssemblerARM64::zeroExtend8To64):
(JSC::MacroAssemblerARM64::zeroExtend32ToWord):
* Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:

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




More information about the webkit-changes mailing list