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

  Changed paths:
    M Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h
    M Source/JavaScriptCore/assembler/X86Assembler.h
    M Source/JavaScriptCore/assembler/testmasm.cpp
    M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp

  Log Message:
  -----------
  [JSC] Allow same registers for src and dst in 
MacroAssemblerX86_64::negateDouble / negateFloat
https://bugs.webkit.org/show_bug.cgi?id=304897
rdar://167491947

Reviewed by Sosuke Suzuki.

Relax X86_64's negateDouble / negateFloat invariants. loadDouble /
loadFloat are already using scratchRegister() so it is still requiring
scratchRegister(), but by using _mr variant, we can avoid
`ASSEERT(src != dst)` restriction. This simplifies BBQ implementations.

Test: Source/JavaScriptCore/assembler/testmasm.cpp

* Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::negateDouble):
(JSC::MacroAssemblerX86_64::negateFloat):
* Source/JavaScriptCore/assembler/X86Assembler.h:
(JSC::X86Assembler::xorps_mr):
(JSC::X86Assembler::xorpd_mr):
(JSC::X86Assembler::vxorps_mrr):
(JSC::X86Assembler::vxorpd_mrr):
* Source/JavaScriptCore/assembler/testmasm.cpp:
(floatOperands):
(JSC::testNegateDouble):
(JSC::testNegateFloat):
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Neg):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Neg):

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



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

Reply via email to