Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1fac7761b9cd74db4ab8e3592ebe3ef068b0d351
https://github.com/WebKit/WebKit/commit/1fac7761b9cd74db4ab8e3592ebe3ef068b0d351
Author: Yusuke Suzuki <[email protected]>
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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes