Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: aa596dded063f62c79361988e85d561c4292842c
      
https://github.com/WebKit/WebKit/commit/aa596dded063f62c79361988e85d561c4292842c
  Author: Yusuke Suzuki <[email protected]>
  Date:   2026-01-28 (Wed, 28 Jan 2026)

  Changed paths:
    M Source/JavaScriptCore/assembler/AssemblerCommon.h
    M Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h
    M Source/JavaScriptCore/assembler/X86Assembler.h
    M Source/JavaScriptCore/assembler/testmasm.cpp
    M Source/JavaScriptCore/b3/air/AirArg.h
    M Source/JavaScriptCore/b3/air/AirOpcode.opcodes
    M Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp

  Log Message:
  -----------
  [JSC] Add constant materialization JIT code for x64
https://bugs.webkit.org/show_bug.cgi?id=305532
rdar://168193277

Reviewed by Sosuke Suzuki.

This patch adds more wide variety of constants for
move128ToVector / move64ToDouble / move32ToFloat in x64. This is a
preparation for SIMD optimization in x64 in YarrJIT where it needs these
constant materializations for masks.

Test: Source/JavaScriptCore/assembler/testmasm.cpp

* Source/JavaScriptCore/assembler/AssemblerCommon.h:
(JSC::X86ContiguousBitPattern32::create):
(JSC::X86ContiguousBitPattern32::isValid const):
(JSC::X86ContiguousBitPattern32::leftShift const):
(JSC::X86ContiguousBitPattern32::rightShift const):
(JSC::X86ContiguousBitPattern32::X86ContiguousBitPattern32):
(JSC::X86ContiguousBitPattern64::create):
(JSC::X86ContiguousBitPattern64::isValid const):
(JSC::X86ContiguousBitPattern64::leftShift const):
(JSC::X86ContiguousBitPattern64::rightShift const):
(JSC::X86ContiguousBitPattern64::X86ContiguousBitPattern64):
* Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::moveAllOnesToVector):
(JSC::MacroAssemblerX86_64::move32ToFloat):
(JSC::MacroAssemblerX86_64::move64ToDouble):
(JSC::MacroAssemblerX86_64::move128ToVector):
* Source/JavaScriptCore/assembler/X86Assembler.h:
(JSC::X86Assembler::punpcklbw_rr):
(JSC::X86Assembler::punpcklwd_rr):
(JSC::X86Assembler::pcmpeqd_rr):
(JSC::X86Assembler::pcmpeqq_rr):
(JSC::X86Assembler::movlhps_rr):
(JSC::X86Assembler::vbroadcastss_rr):
(JSC::X86Assembler::vpbroadcastb_rr):
(JSC::X86Assembler::vpbroadcastw_rr):
(JSC::X86Assembler::vpbroadcastd_rr):
(JSC::X86Assembler::vpbroadcastq_rr):
* Source/JavaScriptCore/assembler/testmasm.cpp:
(JSC::testMove128ToVectorMovi):
(JSC::testMove32ToFloatComprehensive):
(JSC::testMove64ToDoubleComprehensive):
(JSC::testMove128ToVectorComprehensive):
(JSC::testFMovHalfPrecisionEncoding):
(JSC::testMove32ToFloatX64):
(JSC::testMove64ToDoubleX64):
* Source/JavaScriptCore/b3/air/AirArg.h:
(JSC::B3::Air::Arg::isValidFPImm32Form):
(JSC::B3::Air::Arg::isValidFPImm64Form):
(JSC::B3::Air::Arg::isValidFPImm128Form):
* Source/JavaScriptCore/b3/air/AirOpcode.opcodes:
* Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp:
(JSC::Wasm::BBQJITImpl::BBQJIT::materializeVectorConstant):

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



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

Reply via email to