[webkit-changes] [WebKit/WebKit] 788a24: [JSC] Clean up and enhance X86 vector instructions

Yusuke Suzuki noreply at github.com
Mon Dec 5 14:05:20 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 788a24f32f108ced27e623bb590d2f1ddb4eac3a
      https://github.com/WebKit/WebKit/commit/788a24f32f108ced27e623bb590d2f1ddb4eac3a
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2022-12-05 (Mon, 05 Dec 2022)

  Changed paths:
    M Source/JavaScriptCore/assembler/MacroAssemblerX86Common.cpp
    M Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h
    M Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h
    M Source/JavaScriptCore/assembler/X86Assembler.h

  Log Message:
  -----------
  [JSC] Clean up and enhance X86 vector instructions
https://bugs.webkit.org/show_bug.cgi?id=248729
rdar://102942709

Reviewed by Justin Michaud.

This patch fixes X86Assembler's naming convention. Plus, this patch enhances splat / extract implementation to use
more efficient instructions. Also we check SSE3 status since some of used instructions are only available in SSE3,
which is not mandatory in x64.

* Source/JavaScriptCore/assembler/MacroAssemblerX86Common.cpp:
(JSC::MacroAssemblerX86Common::collectCPUFeatures):
* Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::supportsSSE3):
(JSC::MacroAssemblerX86Common::supportsSupplementalSSE3):
* Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::vectorExtractLane):
(JSC::MacroAssemblerX86_64::vectorSplat):
* Source/JavaScriptCore/assembler/X86Assembler.h:
(JSC::X86Assembler::vextractps):
(JSC::X86Assembler::pshufd_rr):
(JSC::X86Assembler::pshufb_rr):
(JSC::X86Assembler::pshuflw_rr):
(JSC::X86Assembler::pshufhw_rr):
(JSC::X86Assembler::punpcklqdq_rr):
(JSC::X86Assembler::shufps_rr):
(JSC::X86Assembler::shufpd_rr):
(JSC::X86Assembler::movddup_rr):
(JSC::X86Assembler::movhlps_rr):
(JSC::X86Assembler::movshdup_rr):
(JSC::X86Assembler::movsldup_rr):
(JSC::X86Assembler::pshufd): Deleted.
(JSC::X86Assembler::pshufb): Deleted.
(JSC::X86Assembler::pshuflw): Deleted.
(JSC::X86Assembler::pshufhw): Deleted.
(JSC::X86Assembler::punpcklqdq): Deleted.
(JSC::X86Assembler::shufps): Deleted.
(JSC::X86Assembler::shufpd): Deleted.
(JSC::X86Assembler::movddup): Deleted.

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




More information about the webkit-changes mailing list