[webkit-changes] [WebKit/WebKit] 937fd6: Enable WASM on Windows

Ian noreply at github.com
Thu Nov 9 00:30:43 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 937fd6bd04891f1849a27eb5ff4ac5ee7a3eaeaf
      https://github.com/WebKit/WebKit/commit/937fd6bd04891f1849a27eb5ff4ac5ee7a3eaeaf
  Author: Ian Grunert <ian.grunert at gmail.com>
  Date:   2023-11-09 (Thu, 09 Nov 2023)

  Changed paths:
    M .gitignore
    M Source/JavaScriptCore/CMakeLists.txt
    M Source/JavaScriptCore/jit/GPRInfo.h
    M Source/JavaScriptCore/jit/RegisterSet.cpp
    M Source/JavaScriptCore/llint/LLIntThunks.cpp
    M Source/JavaScriptCore/llint/LowLevelInterpreter.asm
    M Source/JavaScriptCore/llint/WebAssembly.asm
    M Source/JavaScriptCore/llint/WebAssembly64.asm
    M Source/JavaScriptCore/offlineasm/asm.rb
    M Source/JavaScriptCore/offlineasm/x86.rb
    M Source/JavaScriptCore/runtime/InitializeThreading.cpp
    M Source/JavaScriptCore/runtime/JSCConfig.cpp
    M Source/JavaScriptCore/runtime/JSCConfig.h
    M Source/JavaScriptCore/wasm/WasmCallee.cpp
    M Source/JavaScriptCore/wasm/WasmCallee.h
    M Source/JavaScriptCore/wasm/WasmCallingConvention.h
    M Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp
    M Source/JavaScriptCore/wasm/WasmSlowPaths.cpp
    M Source/JavaScriptCore/wasm/WasmSlowPaths.h
    M Source/JavaScriptCore/wasm/WasmStreamingParser.cpp
    M Source/cmake/OptionsJSCOnly.cmake
    M Source/cmake/OptionsWin.cmake
    M Tools/Scripts/run-jsc-stress-tests

  Log Message:
  -----------
  Enable WASM on Windows
https://bugs.webkit.org/show_bug.cgi?id=222315

Reviewed by Justin Michaud.

Enable the WASM LLInt on Windows. We use csr2 in place of ws1 as a
scratch register inside WebAssembly.asm on Windows, which needs to be
saved / restored on the stack.

A number of changes were required in offlineasm x86.rb for intel syntax
output.

Integer division / remainder operations had issues, which could be
caught by static asserts https://bugs.webkit.org/show_bug.cgi?id=203692

g_wtfConfigForLLInt is used to reference global wtf config, working
around global loading bug https://bugs.webkit.org/show_bug.cgi?id=175104

* .gitignore:
* Source/JavaScriptCore/CMakeLists.txt:
* Source/JavaScriptCore/jit/GPRInfo.h:
* Source/JavaScriptCore/jit/RegisterSet.cpp:
(JSC::RegisterSetBuilder::wasmPinnedRegisters):
* Source/JavaScriptCore/llint/LLIntThunks.cpp:
(JSC::LLInt::inPlaceInterpreterEntryThunk):
(JSC::LLInt::inPlaceInterpreterEntryThunkSIMD):
* Source/JavaScriptCore/llint/LowLevelInterpreter.asm:
* Source/JavaScriptCore/llint/WebAssembly.asm:
* Source/JavaScriptCore/llint/WebAssembly64.asm:
* Source/JavaScriptCore/offlineasm/asm.rb:
* Source/JavaScriptCore/offlineasm/x86.rb:
* Source/JavaScriptCore/runtime/InitializeThreading.cpp:
(JSC::initialize):
* Source/JavaScriptCore/runtime/JSCConfig.cpp:
* Source/JavaScriptCore/runtime/JSCConfig.h:
* Source/JavaScriptCore/wasm/WasmCallee.cpp:
(JSC::Wasm::LLIntCallee::calleeSaveRegistersImpl):
* Source/JavaScriptCore/wasm/WasmCallee.h:
* Source/JavaScriptCore/wasm/WasmCallingConvention.h:
* Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp:
* Source/JavaScriptCore/wasm/WasmSlowPaths.cpp:
* Source/JavaScriptCore/wasm/WasmSlowPaths.h:
* Source/JavaScriptCore/wasm/WasmStreamingParser.cpp:
(JSC::Wasm::StreamingParser::addBytes):
* Source/cmake/OptionsJSCOnly.cmake:
* Source/cmake/OptionsWin.cmake:
* Tools/Scripts/run-jsc-stress-tests:

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




More information about the webkit-changes mailing list