[webkit-changes] [WebKit/WebKit] 1fac77: [JSC] Add signExtend8To64 / signExtend16To64
Yusuke Suzuki
noreply at github.com
Tue Mar 14 16:54:23 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1fac7761b9cd74db4ab8e3592ebe3ef068b0d351
https://github.com/WebKit/WebKit/commit/1fac7761b9cd74db4ab8e3592ebe3ef068b0d351
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2023-03-14 (Tue, 14 Mar 2023)
Changed paths:
M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
M Source/JavaScriptCore/assembler/MacroAssemblerRISCV64.h
M Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h
M Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h
M Source/JavaScriptCore/assembler/X86Assembler.h
M Source/JavaScriptCore/assembler/testmasm.cpp
M Source/JavaScriptCore/b3/B3LowerToAir.cpp
M Source/JavaScriptCore/b3/B3Opcode.cpp
M Source/JavaScriptCore/b3/B3Opcode.h
M Source/JavaScriptCore/b3/B3ReduceStrength.cpp
M Source/JavaScriptCore/b3/B3Validate.cpp
M Source/JavaScriptCore/b3/B3Value.cpp
M Source/JavaScriptCore/b3/B3Value.h
M Source/JavaScriptCore/b3/B3ValueInlines.h
M Source/JavaScriptCore/b3/B3ValueKey.cpp
M Source/JavaScriptCore/b3/air/AirOpcode.opcodes
M Source/JavaScriptCore/wasm/WasmAirIRGenerator64.cpp
M Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h
M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
Log Message:
-----------
[JSC] Add signExtend8To64 / signExtend16To64
https://bugs.webkit.org/show_bug.cgi?id=152232
rdar://106574794
Reviewed by Mark Lam.
This patch adds signExtend8To64 and signExtend16To64. We add corresponding handling in
B3 / Air so that we can use it for wasm operations. Previously we are using two instructions
signExtend8To32 and signExtend32To64. But now we can do it in one instruction.
We also use signExtend32To64 instead of signExtend32ToPtr when necessary to make it explicit
that this is 64bit extension.
* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::zeroExtend16To64):
(JSC::MacroAssemblerARM64::signExtend16To64):
(JSC::MacroAssemblerARM64::zeroExtend8To64):
(JSC::MacroAssemblerARM64::signExtend8To64):
(JSC::MacroAssemblerARM64::signExtend32To64):
(JSC::MacroAssemblerARM64::signExtend32ToPtr):
* Source/JavaScriptCore/assembler/MacroAssemblerRISCV64.h:
(JSC::MacroAssemblerRISCV64::zeroExtend8To64):
(JSC::MacroAssemblerRISCV64::zeroExtend16To64):
(JSC::MacroAssemblerRISCV64::signExtend8To64):
(JSC::MacroAssemblerRISCV64::signExtend16To64):
(JSC::MacroAssemblerRISCV64::signExtend32ToPtr):
(JSC::MacroAssemblerRISCV64::signExtend32To64):
* Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::signExtend32To64):
(JSC::MacroAssemblerX86Common::signExtend32ToPtr):
* Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::zeroExtend8To64):
(JSC::MacroAssemblerX86_64::signExtend8To64):
(JSC::MacroAssemblerX86_64::zeroExtend16To64):
(JSC::MacroAssemblerX86_64::signExtend16To64):
* Source/JavaScriptCore/assembler/X86Assembler.h:
(JSC::X86Assembler::movsbq_rr):
(JSC::X86Assembler::movswq_rr):
* Source/JavaScriptCore/b3/B3LowerToAir.cpp:
* Source/JavaScriptCore/b3/B3Opcode.cpp:
(WTF::printInternal):
* Source/JavaScriptCore/b3/B3Opcode.h:
* Source/JavaScriptCore/b3/B3ReduceStrength.cpp:
* Source/JavaScriptCore/b3/B3Validate.cpp:
* Source/JavaScriptCore/b3/B3Value.cpp:
(JSC::B3::Value::effects const):
(JSC::B3::Value::key const):
(JSC::B3::Value::typeFor):
* Source/JavaScriptCore/b3/B3Value.h:
* Source/JavaScriptCore/b3/B3ValueInlines.h:
* Source/JavaScriptCore/b3/B3ValueKey.cpp:
(JSC::B3::ValueKey::materialize const):
* Source/JavaScriptCore/b3/air/AirOpcode.opcodes:
* Source/JavaScriptCore/wasm/WasmAirIRGenerator64.cpp:
(JSC::Wasm::AirIRGenerator64::emitLoadOp):
* Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h:
(JSC::Wasm::ExpressionType>::addI64ExtendSI32):
(JSC::Wasm::ExpressionType>::addI64Extend8S):
(JSC::Wasm::ExpressionType>::addI64Extend16S):
(JSC::Wasm::ExpressionType>::addI64Extend32S):
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJIT::emitLoadOp):
(JSC::Wasm::BBQJIT::addI64Extend8S):
(JSC::Wasm::BBQJIT::addI64Extend16S):
(JSC::Wasm::BBQJIT::addI64Extend32S):
(JSC::Wasm::BBQJIT::addI64ExtendSI32):
Canonical link: https://commits.webkit.org/261660@main
More information about the webkit-changes
mailing list