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

Reply via email to