[webkit-changes] [WebKit/WebKit] 3f3a54: [Wasm-GC] Implement `array.new_canon_fixed`

Tim Chevalier noreply at github.com
Thu Mar 30 12:40:19 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3f3a54d2690d395e9171c77d045ef5e183f46438
      https://github.com/WebKit/WebKit/commit/3f3a54d2690d395e9171c77d045ef5e183f46438
  Author: Tim Chevalier <tjc at igalia.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    A JSTests/wasm/gc/array_new_fixed.js
    A JSTests/wasm/gc/array_new_fixed_long.js
    M JSTests/wasm/wasm.json
    M Source/JavaScriptCore/bytecode/BytecodeList.rb
    M Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h
    M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
    M Source/JavaScriptCore/wasm/WasmFunctionParser.h
    M Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmLLIntGenerator.h
    M Source/JavaScriptCore/wasm/WasmOperations.cpp
    M Source/JavaScriptCore/wasm/WasmOperations.h
    M Source/JavaScriptCore/wasm/WasmOperationsInlines.h
    M Source/JavaScriptCore/wasm/WasmSlowPaths.cpp
    M Source/JavaScriptCore/wasm/wasm.json

  Log Message:
  -----------
  [Wasm-GC] Implement `array.new_canon_fixed`
https://bugs.webkit.org/show_bug.cgi?id=252350

Reviewed by Justin Michaud.

Implement the `array.new_canon_fixed` instruction, which creates a
new array initialized from an arbitrary number of operands (as specified
in the GC proposal MVP).

* JSTests/wasm/gc/array_new_fixed.js: Added.
(module):
(testArrayFuncrefs):
(testArrayExternrefs):
(testArrayRefNull):
(testTypeMismatch):
(testInvalidArrayType):
(testNestedArrays):
(testStructs):
* JSTests/wasm/gc/array_new_fixed_long.js: Added.
(module):
(testLongArray.get let):
(testLongArray):
* JSTests/wasm/wasm.json:
* Source/JavaScriptCore/bytecode/BytecodeList.rb:
* Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h:
(JSC::Wasm::AirIRGeneratorBase::getTypeDefinition):
(JSC::Wasm::ExpressionType>::getArrayElementType):
(JSC::Wasm::ExpressionType>::getArrayRefType):
(JSC::Wasm::ExpressionType>::addArrayNew):
(JSC::Wasm::ExpressionType>::addArrayNewDefault):
(JSC::Wasm::ExpressionType>::addArrayNewFixed):
(JSC::Wasm::ExpressionType>::addArrayGet):
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::getTypeDefinition):
(JSC::Wasm::B3IRGenerator::getArrayTypeDefinition):
(JSC::Wasm::B3IRGenerator::getArrayElementType):
(JSC::Wasm::B3IRGenerator::getArrayRefType):
(JSC::Wasm::B3IRGenerator::addArrayNew):
(JSC::Wasm::B3IRGenerator::addArrayNewDefault):
(JSC::Wasm::B3IRGenerator::addArrayNewFixed):
(JSC::Wasm::B3IRGenerator::addArrayGet):
(JSC::Wasm::B3IRGenerator::emitArrayNullCheck):
(JSC::Wasm::B3IRGenerator::emitArraySetUnchecked):
(JSC::Wasm::B3IRGenerator::addArraySet):
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
* Source/JavaScriptCore/wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::parseArrayTypeDefinition):
(JSC::Wasm::FunctionParser<Context>::parseExpression):
* Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp:
(JSC::Wasm::LLIntGenerator::addArrayNew):
(JSC::Wasm::LLIntGenerator::addArrayNewDefault):
(JSC::Wasm::LLIntGenerator::addArrayNewFixed):
* Source/JavaScriptCore/wasm/WasmLLIntGenerator.h:
* Source/JavaScriptCore/wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
* Source/JavaScriptCore/wasm/WasmOperations.h:
* Source/JavaScriptCore/wasm/WasmOperationsInlines.h:
(JSC::Wasm::fillArray):
(JSC::Wasm::arrayNew):
(JSC::Wasm::copyElementsInReverse):
(JSC::Wasm::arrayNewFixed):
* Source/JavaScriptCore/wasm/WasmSlowPaths.cpp:
(JSC::LLInt::WASM_SLOW_PATH_DECL):
* Source/JavaScriptCore/wasm/wasm.json:

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




More information about the webkit-changes mailing list