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