Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8a018265fb90726b8b3e8e0fb88ec9238ee0255c
      
https://github.com/WebKit/WebKit/commit/8a018265fb90726b8b3e8e0fb88ec9238ee0255c
  Author: Justin Michaud <[email protected]>
  Date:   2022-12-14 (Wed, 14 Dec 2022)

  Changed paths:
    M JSTests/wasm/stress/simd-const-spill.js
    M JSTests/wasm/stress/simd-const.js
    M JSTests/wasm/stress/simd-kitchen-sink.js
    M JSTests/wasm/stress/simd-load.js
    M JSTests/wasm/stress/simd-register-allocation.js
    M JSTests/wasm/stress/simd-return-value-alignment.js
    M JSTests/wasm/v8/exceptions-simd.js
    M JSTests/wasm/v8/liftoff-simd-params.js
    M JSTests/wasm/v8/multi-value-simd.js
    M JSTests/wasm/v8/regress/regress-10309.js
    M JSTests/wasm/v8/regress/regress-1054466.js
    M JSTests/wasm/v8/regress/regress-1065599.js
    M JSTests/wasm/v8/regress/regress-1070078.js
    M JSTests/wasm/v8/regress/regress-1081030.js
    M JSTests/wasm/v8/regress/regress-10831.js
    M JSTests/wasm/v8/regress/regress-1111522.js
    M JSTests/wasm/v8/regress/regress-1112124.js
    M JSTests/wasm/v8/regress/regress-1116019.js
    M JSTests/wasm/v8/regress/regress-1124885.js
    M JSTests/wasm/v8/regress/regress-1132461.js
    M JSTests/wasm/v8/regress/regress-1161555.js
    M JSTests/wasm/v8/regress/regress-1161654.js
    M JSTests/wasm/v8/regress/regress-1161954.js
    M JSTests/wasm/v8/regress/regress-1165966.js
    M JSTests/wasm/v8/regress/regress-1179182.js
    M JSTests/wasm/v8/regress/regress-1187831.js
    M JSTests/wasm/v8/regress/regress-1188975.js
    M JSTests/wasm/v8/regress/regress-1199662.js
    M JSTests/wasm/v8/regress/regress-1231950.js
    M JSTests/wasm/v8/regress/regress-1242300.js
    M JSTests/wasm/v8/regress/regress-1242689.js
    M JSTests/wasm/v8/regress/regress-1264462.js
    M JSTests/wasm/v8/regress/regress-1271244.js
    M JSTests/wasm/v8/regress/regress-1271456.js
    M JSTests/wasm/v8/regress/regress-1271538.js
    M JSTests/wasm/v8/regress/regress-1282224.js
    M JSTests/wasm/v8/regress/regress-1283042.js
    M JSTests/wasm/v8/regress/regress-1283395.js
    M JSTests/wasm/v8/regress/regress-1284980.js
    M JSTests/wasm/v8/regress/regress-1286253.js
    M JSTests/wasm/v8/regress/regress-1289678.js
    M JSTests/wasm/v8/regress/regress-1290079.js
    M JSTests/wasm/v8/regress/regress-9447.js
    M JSTests/wasm/v8/regress/regress-crbug-1338980.js
    M JSTests/wasm/v8/regress/regress-crbug-1355070.js
    M JSTests/wasm/v8/regress/regress-crbug-1356718.js
    M JSTests/wasm/v8/simd-call.js
    M JSTests/wasm/v8/simd-errors.js
    M JSTests/wasm/v8/simd-globals.js
    M JSTests/wasm/v8/simd-i64x2-mul.js
    M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
    M Source/JavaScriptCore/Sources.txt
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
    M Source/JavaScriptCore/assembler/MacroAssemblerRISCV64.h
    M Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h
    M Source/JavaScriptCore/b3/B3ArgumentRegValue.h
    A Source/JavaScriptCore/b3/B3Const128Value.cpp
    A Source/JavaScriptCore/b3/B3Const128Value.h
    M Source/JavaScriptCore/b3/B3LowerToAir.cpp
    M Source/JavaScriptCore/b3/B3Opcode.cpp
    M Source/JavaScriptCore/b3/B3Opcode.h
    M Source/JavaScriptCore/b3/B3Procedure.cpp
    M Source/JavaScriptCore/b3/B3Procedure.h
    A Source/JavaScriptCore/b3/B3SIMDValue.cpp
    A Source/JavaScriptCore/b3/B3SIMDValue.h
    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/air/AirArg.cpp
    M Source/JavaScriptCore/b3/air/AirCode.cpp
    M Source/JavaScriptCore/b3/air/AirLowerStackArgs.cpp
    M Source/JavaScriptCore/b3/air/AirOpcode.opcodes
    M Source/JavaScriptCore/ftl/FTLState.cpp
    M Source/JavaScriptCore/runtime/Options.cpp
    A Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmAirIRGenerator64.cpp
    M Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h
    M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmFunctionParser.h
    M Source/JavaScriptCore/wasm/WasmSIMDOpcodes.h
    M Tools/Scripts/run-jsc-stress-tests

  Log Message:
  -----------
  [SIMD] B3/OMG Support
https://bugs.webkit.org/show_bug.cgi?id=246347

Reviewed by Mark Lam.

Support B3/ the OMG tier for SIMD functions.

We add SimdValue and Const128Value as two new B3 value types, plus
opcodes for every wasm simd op.

We also add extra testing modes to simd spec tests to ensure that
the OMG tier is being fully exercised. This should be a temporary
measure until SIMD no longer requires tiering up from LLInt to BBQ.

Finally, we work around a bug in register allocation for SIMD functions
by disabling the use of ARM64 fp callee-saves.

* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::notifyFunctionUsesSIMD):
(JSC::Wasm::B3IRGenerator::addConstant):
(JSC::Wasm::B3IRGenerator::addExtractLane):
(JSC::Wasm::B3IRGenerator::addReplaceLane):
(JSC::Wasm::B3IRGenerator::addSIMDI_V):
(JSC::Wasm::B3IRGenerator::addSIMDV_V):
(JSC::Wasm::B3IRGenerator::addSIMDBitwiseSelect):
(JSC::Wasm::B3IRGenerator::addSIMDRelOp):
(JSC::Wasm::B3IRGenerator::addSIMDSwizzle):
(JSC::Wasm::B3IRGenerator::addSIMDV_VV):
(JSC::Wasm::B3IRGenerator::addSIMDLoad):
(JSC::Wasm::B3IRGenerator::addSIMDStore):
(JSC::Wasm::B3IRGenerator::addSIMDSplat):
(JSC::Wasm::B3IRGenerator::addSIMDShift):
(JSC::Wasm::B3IRGenerator::addSIMDExtmul):
(JSC::Wasm::B3IRGenerator::addSIMDShuffle):
(JSC::Wasm::B3IRGenerator::addSIMDLoadSplat):
(JSC::Wasm::B3IRGenerator::addSIMDLoadLane):
(JSC::Wasm::B3IRGenerator::addSIMDStoreLane):
(JSC::Wasm::B3IRGenerator::addSIMDLoadExtend):
(JSC::Wasm::B3IRGenerator::addSIMDLoadPad):

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to