Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ea71f9290dfa4441fc1f5908e5bc41f189acfc35
      
https://github.com/WebKit/WebKit/commit/ea71f9290dfa4441fc1f5908e5bc41f189acfc35
  Author: Asumu Takikawa <as...@igalia.com>
  Date:   2024-01-04 (Thu, 04 Jan 2024)

  Changed paths:
    A JSTests/wasm/gc-spec-tests/array_copy.wast.js
    A JSTests/wasm/gc-spec-tests/array_fill.wast.js
    A JSTests/wasm/gc-spec-tests/array_init_data.wast.js
    A JSTests/wasm/gc-spec-tests/array_init_elem.wast.js
    M JSTests/wasm/gc/array_new_elem.js
    M JSTests/wasm/gc/arrays.js
    A JSTests/wasm/gc/bulk-array.js
    M JSTests/wasm/wasm.json
    M Source/JavaScriptCore/bytecode/BytecodeList.rb
    M Source/JavaScriptCore/llint/WebAssembly.asm
    M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
    M Source/JavaScriptCore/wasm/WasmConstExprGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmConstExprGenerator.h
    M Source/JavaScriptCore/wasm/WasmExceptionType.h
    M Source/JavaScriptCore/wasm/WasmFunctionParser.h
    M Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmInstance.cpp
    M Source/JavaScriptCore/wasm/WasmInstance.h
    M Source/JavaScriptCore/wasm/WasmLLIntBuiltin.h
    M Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp
    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/WasmSlowPaths.h
    M Source/JavaScriptCore/wasm/WasmTypeDefinition.cpp
    M Source/JavaScriptCore/wasm/WasmTypeDefinition.h
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyArray.cpp
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyArray.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp
    M Source/JavaScriptCore/wasm/wasm.json

  Log Message:
  -----------
  [Wasm-GC] Support bulk array instructions
https://bugs.webkit.org/show_bug.cgi?id=264057

Reviewed by Justin Michaud.

Add support for bulk array operations from the Wasm GC proposal. These
allow bulk operations into GC arrays.

Adds spec tests from commit ff856bef3b717609e9b6854a1c78da80068322e9
of the GC proposal repo.

Also fixes a number of other related issues:
  * Fix incorrect element segment copying ranges for array.new_elem.
  * Fix handling of dropped segments in array.new_elem.
  * Minor fix to exception cases in B3 backend.
  * Fix registration of declared functions in the constant expression
    parser.
  * Adjust error messages
  * Fixed global import for i31refs.

* JSTests/wasm/gc-spec-tests/array_copy.wast.js: Added.
* JSTests/wasm/gc-spec-tests/array_fill.wast.js: Added.
* JSTests/wasm/gc-spec-tests/array_init_data.wast.js: Added.
* JSTests/wasm/gc-spec-tests/array_init_elem.wast.js: Added.
* JSTests/wasm/gc/array_new_elem.js:
(testAllElementSegmentKinds):
* JSTests/wasm/gc/arrays.js:
* JSTests/wasm/gc/bulk-array.js: Added.
(testArrayFill.doTest):
(testArrayFill):
(testArrayCopy.doTest):
(testArrayCopy):
(testArrayInitElem):
(testArrayInitData):
* JSTests/wasm/wasm.json:
* Source/JavaScriptCore/bytecode/BytecodeList.rb:
* Source/JavaScriptCore/llint/WebAssembly.asm:
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::addArrayNewFixed):
(JSC::Wasm::B3IRGenerator::emitArrayNullCheck):
(JSC::Wasm::B3IRGenerator::addArraySet):
(JSC::Wasm::B3IRGenerator::addArrayFill):
(JSC::Wasm::B3IRGenerator::addArrayCopy):
(JSC::Wasm::B3IRGenerator::addArrayInitElem):
(JSC::Wasm::B3IRGenerator::addArrayInitData):
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJIT::addArrayFill):
(JSC::Wasm::BBQJIT::addArrayCopy):
(JSC::Wasm::BBQJIT::addArrayInitElem):
(JSC::Wasm::BBQJIT::addArrayInitData):
* Source/JavaScriptCore/wasm/WasmConstExprGenerator.cpp:
(JSC::Wasm::ConstExprGenerator::declaredFunctions const):
(JSC::Wasm::ConstExprGenerator::addRefFunc):
(JSC::Wasm::parseExtendedConstExpr):
* Source/JavaScriptCore/wasm/WasmConstExprGenerator.h:
* Source/JavaScriptCore/wasm/WasmExceptionType.h:
(JSC::Wasm::isTypeErrorExceptionType):
* Source/JavaScriptCore/wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):
* Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp:
(JSC::Wasm::IPIntGenerator::addArrayFill):
(JSC::Wasm::IPIntGenerator::addArrayCopy):
(JSC::Wasm::IPIntGenerator::addArrayInitElem):
(JSC::Wasm::IPIntGenerator::addArrayInitData):
* Source/JavaScriptCore/wasm/WasmInstance.cpp:
(JSC::Wasm::Instance::copyDataSegment):
(JSC::Wasm::Instance::copyElementSegment):
* Source/JavaScriptCore/wasm/WasmInstance.h:
* Source/JavaScriptCore/wasm/WasmLLIntBuiltin.h:
* Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp:
(JSC::Wasm::LLIntGenerator::addArrayFill):
(JSC::Wasm::LLIntGenerator::addArrayCopy):
(JSC::Wasm::LLIntGenerator::addArrayInitElem):
(JSC::Wasm::LLIntGenerator::addArrayInitData):
* 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::createArrayFromDataSegment):
(JSC::Wasm::createArrayFromElementSegment):
(JSC::Wasm::arrayNewElem):
(JSC::Wasm::arrayFill):
(JSC::Wasm::arrayCopy):
(JSC::Wasm::arrayInitElem):
(JSC::Wasm::arrayInitData):
* Source/JavaScriptCore/wasm/WasmSlowPaths.cpp:
(JSC::LLInt::WASM_SLOW_PATH_DECL):
* Source/JavaScriptCore/wasm/WasmSlowPaths.h:
* Source/JavaScriptCore/wasm/WasmTypeDefinition.cpp:
(JSC::Wasm::TypeInformation::signatureForLLIntBuiltin):
(JSC::Wasm::TypeInformation::TypeInformation):
* Source/JavaScriptCore/wasm/WasmTypeDefinition.h:
* Source/JavaScriptCore/wasm/js/JSWebAssemblyArray.cpp:
(JSC::JSWebAssemblyArray::fill):
(JSC::JSWebAssemblyArray::copy):
* Source/JavaScriptCore/wasm/js/JSWebAssemblyArray.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::initializeImports):
* Source/JavaScriptCore/wasm/wasm.json:

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to