Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 466d85255afa476e298a112cf706284a50313326
      
https://github.com/WebKit/WebKit/commit/466d85255afa476e298a112cf706284a50313326
  Author: Mark Lam <[email protected]>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
    M Source/JavaScriptCore/assembler/MacroAssemblerRISCV64.h
    M Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h
    M Source/JavaScriptCore/assembler/X86Assembler.h
    M Source/JavaScriptCore/assembler/testmasm.cpp
    M Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp

  Log Message:
  -----------
  Add MacroAssembler emitters for load of 8, 16, and 32 bit values that sign 
extend into 32 or 64 bit registers.
https://bugs.webkit.org/show_bug.cgi?id=302915
rdar://165186300

Reviewed by Yusuke Suzuki.

Some of these will currently be used to make WasmBBQJIT64 codegen more 
efficient,
and enable us to implement other things in the near future.

These emitters were originally written by Yusuke Suzuki in another PR.  I added
tests in testmasm to validate them in this commit in order to land them for use.

Test: Source/JavaScriptCore/assembler/testmasm.cpp
* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::load16SignedExtendTo64):
(JSC::MacroAssemblerARM64::load32SignedExtendTo64):
(JSC::MacroAssemblerARM64::load8SignedExtendTo64):
(JSC::MacroAssemblerARM64::loadAcq8SignedExtendTo64):
(JSC::MacroAssemblerARM64::loadAcq16SignedExtendTo64):
(JSC::MacroAssemblerARM64::loadAcq32SignedExtendTo64):
* Source/JavaScriptCore/assembler/MacroAssemblerRISCV64.h:
(JSC::MacroAssemblerRISCV64::load8SignedExtendTo64):
(JSC::MacroAssemblerRISCV64::load16SignedExtendTo64):
(JSC::MacroAssemblerRISCV64::load32SignedExtendTo64):
* Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::load8SignedExtendTo64):
(JSC::MacroAssemblerX86_64::load16SignedExtendTo64):
(JSC::MacroAssemblerX86_64::load32SignedExtendTo64):
(JSC::MacroAssemblerX86_64::signExtend32To64):
* Source/JavaScriptCore/assembler/X86Assembler.h:
(JSC::X86Assembler::movsxdq_rr):
(JSC::X86Assembler::movsxdq_mr):
(JSC::X86Assembler::movswq_mr):
(JSC::X86Assembler::movsbq_mr):
(JSC::X86Assembler::movsxd_rr): Deleted.
* Source/JavaScriptCore/assembler/testmasm.cpp:
(JSC::testLoadExtend):
(JSC::testLoadExtend_voidp_RegisterID):
(JSC::testLoadAcq8SignedExtendTo32_Address_RegisterID):
(JSC::testLoad8SignedExtendTo32_Address_RegisterID):
(JSC::testLoad8SignedExtendTo32_BaseIndex_RegisterID):
(JSC::testLoad8SignedExtendTo32_voidp_RegisterID):
(JSC::testLoadAcq16SignedExtendTo32_Address_RegisterID):
(JSC::testLoad16SignedExtendTo32_Address_RegisterID):
(JSC::testLoad16SignedExtendTo32_BaseIndex_RegisterID):
(JSC::testLoad16SignedExtendTo32_voidp_RegisterID):
(JSC::testLoadAcq8SignedExtendTo64_Address_RegisterID):
(JSC::testLoad8SignedExtendTo64_Address_RegisterID):
(JSC::testLoad8SignedExtendTo64_BaseIndex_RegisterID):
(JSC::testLoad8SignedExtendTo64_voidp_RegisterID):
(JSC::testLoadAcq16SignedExtendTo64_Address_RegisterID):
(JSC::testLoad16SignedExtendTo64_Address_RegisterID):
(JSC::testLoad16SignedExtendTo64_BaseIndex_RegisterID):
(JSC::testLoad16SignedExtendTo64_voidp_RegisterID):
(JSC::testLoadAcq32SignedExtendTo64_Address_RegisterID):
(JSC::testLoad32SignedExtendTo64_Address_RegisterID):
(JSC::testLoad32SignedExtendTo64_BaseIndex_RegisterID):
(JSC::testLoad32SignedExtendTo64_voidp_RegisterID):
* Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp:
(JSC::Wasm::BBQJITImpl::BBQJIT::load):

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



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

Reply via email to