[webkit-changes] [WebKit/WebKit] 280e3b: [SIMD] Add SIMD opcodes and spec tests

Justin Michaud noreply at github.com
Fri Oct 28 11:48:38 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 280e3b5f0857cb4a332ad1103b3390b5fbe4a349
      https://github.com/WebKit/WebKit/commit/280e3b5f0857cb4a332ad1103b3390b5fbe4a349
  Author: Justin Michaud <justin at justinmichaud.com>
  Date:   2022-10-28 (Fri, 28 Oct 2022)

  Changed paths:
    M JSTests/wasm.yaml
    A JSTests/wasm/simd-spec-harness.js
    A JSTests/wasm/simd-spec-harness/sync_index.js
    M JSTests/wasm/spec-tests/harness/async_index.js
    M JSTests/wasm/spec-tests/harness/sync_index.js
    A JSTests/wasm/spec-tests/simd_address.wast.js
    A JSTests/wasm/spec-tests/simd_align.wast.js
    A JSTests/wasm/spec-tests/simd_bit_shift.wast.js
    A JSTests/wasm/spec-tests/simd_bitwise.wast.js
    A JSTests/wasm/spec-tests/simd_boolean.wast.js
    A JSTests/wasm/spec-tests/simd_const.wast.js
    A JSTests/wasm/spec-tests/simd_conversions.wast.js
    A JSTests/wasm/spec-tests/simd_f32x4.wast.js
    A JSTests/wasm/spec-tests/simd_f32x4_arith.wast.js
    A JSTests/wasm/spec-tests/simd_f32x4_cmp.wast.js
    A JSTests/wasm/spec-tests/simd_f32x4_pmin_pmax.wast.js
    A JSTests/wasm/spec-tests/simd_f32x4_rounding.wast.js
    A JSTests/wasm/spec-tests/simd_f64x2.wast.js
    A JSTests/wasm/spec-tests/simd_f64x2_arith.wast.js
    A JSTests/wasm/spec-tests/simd_f64x2_cmp.wast.js
    A JSTests/wasm/spec-tests/simd_f64x2_pmin_pmax.wast.js
    A JSTests/wasm/spec-tests/simd_f64x2_rounding.wast.js
    A JSTests/wasm/spec-tests/simd_i16x8_arith.wast.js
    A JSTests/wasm/spec-tests/simd_i16x8_arith2.wast.js
    A JSTests/wasm/spec-tests/simd_i16x8_cmp.wast.js
    A JSTests/wasm/spec-tests/simd_i16x8_extadd_pairwise_i8x16.wast.js
    A JSTests/wasm/spec-tests/simd_i16x8_extmul_i8x16.wast.js
    A JSTests/wasm/spec-tests/simd_i16x8_q15mulr_sat_s.wast.js
    A JSTests/wasm/spec-tests/simd_i16x8_sat_arith.wast.js
    A JSTests/wasm/spec-tests/simd_i32x4_arith.wast.js
    A JSTests/wasm/spec-tests/simd_i32x4_arith2.wast.js
    A JSTests/wasm/spec-tests/simd_i32x4_cmp.wast.js
    A JSTests/wasm/spec-tests/simd_i32x4_dot_i16x8.wast.js
    A JSTests/wasm/spec-tests/simd_i32x4_extadd_pairwise_i16x8.wast.js
    A JSTests/wasm/spec-tests/simd_i32x4_extmul_i16x8.wast.js
    A JSTests/wasm/spec-tests/simd_i32x4_trunc_sat_f32x4.wast.js
    A JSTests/wasm/spec-tests/simd_i32x4_trunc_sat_f64x2.wast.js
    A JSTests/wasm/spec-tests/simd_i64x2_arith.wast.js
    A JSTests/wasm/spec-tests/simd_i64x2_arith2.wast.js
    A JSTests/wasm/spec-tests/simd_i64x2_cmp.wast.js
    A JSTests/wasm/spec-tests/simd_i64x2_extmul_i32x4.wast.js
    A JSTests/wasm/spec-tests/simd_i8x16_arith.wast.js
    A JSTests/wasm/spec-tests/simd_i8x16_arith2.wast.js
    A JSTests/wasm/spec-tests/simd_i8x16_cmp.wast.js
    A JSTests/wasm/spec-tests/simd_i8x16_sat_arith.wast.js
    A JSTests/wasm/spec-tests/simd_int_to_int_extend.wast.js
    A JSTests/wasm/spec-tests/simd_lane.wast.js
    A JSTests/wasm/spec-tests/simd_load.wast.js
    A JSTests/wasm/spec-tests/simd_load16_lane.wast.js
    A JSTests/wasm/spec-tests/simd_load32_lane.wast.js
    A JSTests/wasm/spec-tests/simd_load64_lane.wast.js
    A JSTests/wasm/spec-tests/simd_load8_lane.wast.js
    A JSTests/wasm/spec-tests/simd_load_extend.wast.js
    A JSTests/wasm/spec-tests/simd_load_splat.wast.js
    A JSTests/wasm/spec-tests/simd_load_zero.wast.js
    A JSTests/wasm/spec-tests/simd_splat.wast.js
    A JSTests/wasm/spec-tests/simd_store.wast.js
    A JSTests/wasm/spec-tests/simd_store16_lane.wast.js
    A JSTests/wasm/spec-tests/simd_store32_lane.wast.js
    A JSTests/wasm/spec-tests/simd_store64_lane.wast.js
    A JSTests/wasm/spec-tests/simd_store8_lane.wast.js
    A JSTests/wasm/stress/simd-kitchen-sink.js
    A JSTests/wasm/v8/exceptions-simd.js
    M JSTests/wasm/v8/exceptions-utils.js
    A JSTests/wasm/v8/liftoff-simd-params.js
    A JSTests/wasm/v8/multi-value-simd.js
    A JSTests/wasm/v8/simd-call.js
    A JSTests/wasm/v8/simd-errors.js
    A JSTests/wasm/v8/simd-globals.js
    A JSTests/wasm/v8/simd-i64x2-mul.js
    M JSTests/wasm/v8/wasm-module-builder.js
    M Source/JavaScriptCore/assembler/ARM64Assembler.h
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
    M Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h
    M Source/JavaScriptCore/b3/air/AirInstInlines.h
    M Source/JavaScriptCore/b3/air/AirLowerMacros.cpp
    M Source/JavaScriptCore/b3/air/AirOpcode.opcodes
    M Source/JavaScriptCore/b3/air/AirValidate.cpp
    M Source/JavaScriptCore/jit/RegisterAtOffsetList.cpp
    M Source/JavaScriptCore/jit/RegisterAtOffsetList.h
    M Source/JavaScriptCore/jit/SIMDInfo.h
    M Source/JavaScriptCore/llint/WebAssembly32_64.asm
    M Source/JavaScriptCore/llint/WebAssembly64.asm
    M Source/JavaScriptCore/runtime/OptionsList.h
    M Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmCallingConvention.h
    M Source/JavaScriptCore/wasm/WasmExceptionType.h
    M Source/JavaScriptCore/wasm/WasmFormat.h
    M Source/JavaScriptCore/wasm/WasmFunctionParser.h
    M Source/JavaScriptCore/wasm/WasmGlobal.cpp
    M Source/JavaScriptCore/wasm/WasmGlobal.h
    M Source/JavaScriptCore/wasm/WasmInstance.cpp
    M Source/JavaScriptCore/wasm/WasmInstance.h
    M Source/JavaScriptCore/wasm/WasmOperations.cpp
    M Source/JavaScriptCore/wasm/WasmSIMDOpcodes.h
    M Source/JavaScriptCore/wasm/WasmSectionParser.cpp
    M Source/JavaScriptCore/wasm/WasmSectionParser.h
    M Source/JavaScriptCore/wasm/WasmStreamingParser.cpp
    M Source/JavaScriptCore/wasm/WasmStreamingParser.h
    M Source/JavaScriptCore/wasm/WasmTypeDefinition.h
    M Source/JavaScriptCore/wasm/js/JSToWasm.cpp
    M Source/JavaScriptCore/wasm/js/WasmToJS.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp
    M Tools/Scripts/run-jsc-stress-tests

  Log Message:
  -----------
  [SIMD] Add SIMD opcodes and spec tests
https://bugs.webkit.org/show_bug.cgi?id=246343
rdar://problem/101295960

Reviewed by Yusuke Suzuki.

- Implement v128 globals support
    - This unfortunately doubles the space occupied by every wasm global
- Import WASM simd spec tests plus a few V8 tests
    - Note that the v8 exception tests are changed because SIMD + exceptions
      are not standardized yet.
- Add an implementation for every intruction on ARM
- Add a debugging flag to dump WASM binaries
- Allow a module to declare an exception tag with a vector, but throw
  a type error if it is thrown.

To quickly test, run:

Tools/Scripts/run-jsc-stress-tests --jsc `pwd`/WebKitBuild/Debug/jsc JSTests/wasm.yaml --filter ".*(simd|wasm/v8/exceptions|wasm/stress/mutable-globals.js|wasm/stress/immutable-globals.js|wasm/stress/i64-extract.js|wasm/spec-tests/exports.wast.js|wasm/function-references-spec-tests/call_ref.wast.js).*"

* JSTests/wasm.yaml:
* JSTests/wasm/simd-spec-harness.js: Added.
(import.string_appeared_here.then):
(test):
(promise_test):
(let.assert_unreached):
(let.console.log):
* JSTests/wasm/simd-spec-harness/sync_index.js: Copied from JSTests/wasm/spec-tests/harness/sync_index.js.
(let.testNum):
(assertThrows):
(_assert):
(ValueResult):
(ErrorResult):
(Result.prototype.isError):
(externref):
(is_externref):
(is_funcref):
(eq_externref):
(eq_funcref):
(reinitializeRegistry.let.handler.get return):
(binary):
(module):
* JSTests/wasm/spec-tests/harness/async_index.js:
(externref):
(is_externref):
(is_funcref):
(eq_externref):
(eq_funcref):
(exports):
(then.):
(reinitializeRegistry.get promise_test):
(reinitializeRegistry):
* JSTests/wasm/spec-tests/harness/sync_index.js:
(externref):
(is_externref):
(is_funcref):
(eq_externref):
(eq_funcref):
* JSTests/wasm/spec-tests/simd_address.wast.js: Added.
* JSTests/wasm/spec-tests/simd_align.wast.js: Added.
* JSTests/wasm/spec-tests/simd_bit_shift.wast.js: Added.
* JSTests/wasm/spec-tests/simd_bitwise.wast.js: Added.
* JSTests/wasm/spec-tests/simd_boolean.wast.js: Added.
* JSTests/wasm/spec-tests/simd_const.wast.js: Added.
* JSTests/wasm/spec-tests/simd_conversions.wast.js: Added.
* JSTests/wasm/spec-tests/simd_f32x4.wast.js: Added.
* JSTests/wasm/spec-tests/simd_f32x4_arith.wast.js: Added.
* JSTests/wasm/spec-tests/simd_f32x4_cmp.wast.js: Added.
* JSTests/wasm/spec-tests/simd_f32x4_pmin_pmax.wast.js: Added.
* JSTests/wasm/spec-tests/simd_f32x4_rounding.wast.js: Added.
* JSTests/wasm/spec-tests/simd_f64x2.wast.js: Added.
* JSTests/wasm/spec-tests/simd_f64x2_arith.wast.js: Added.
* JSTests/wasm/spec-tests/simd_f64x2_cmp.wast.js: Added.
* JSTests/wasm/spec-tests/simd_f64x2_pmin_pmax.wast.js: Added.
* JSTests/wasm/spec-tests/simd_f64x2_rounding.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i16x8_arith.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i16x8_arith2.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i16x8_cmp.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i16x8_extadd_pairwise_i8x16.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i16x8_extmul_i8x16.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i16x8_q15mulr_sat_s.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i16x8_sat_arith.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i32x4_arith.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i32x4_arith2.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i32x4_cmp.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i32x4_dot_i16x8.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i32x4_extadd_pairwise_i16x8.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i32x4_extmul_i16x8.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i32x4_trunc_sat_f32x4.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i32x4_trunc_sat_f64x2.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i64x2_arith.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i64x2_arith2.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i64x2_cmp.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i64x2_extmul_i32x4.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i8x16_arith.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i8x16_arith2.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i8x16_cmp.wast.js: Added.
* JSTests/wasm/spec-tests/simd_i8x16_sat_arith.wast.js: Added.
* JSTests/wasm/spec-tests/simd_int_to_int_extend.wast.js: Added.
* JSTests/wasm/spec-tests/simd_lane.wast.js: Added.
* JSTests/wasm/spec-tests/simd_load.wast.js: Added.
* JSTests/wasm/spec-tests/simd_load16_lane.wast.js: Added.
* JSTests/wasm/spec-tests/simd_load32_lane.wast.js: Added.
* JSTests/wasm/spec-tests/simd_load64_lane.wast.js: Added.
* JSTests/wasm/spec-tests/simd_load8_lane.wast.js: Added.
* JSTests/wasm/spec-tests/simd_load_extend.wast.js: Added.
* JSTests/wasm/spec-tests/simd_load_splat.wast.js: Added.
* JSTests/wasm/spec-tests/simd_load_zero.wast.js: Added.
* JSTests/wasm/spec-tests/simd_splat.wast.js: Added.
* JSTests/wasm/spec-tests/simd_store.wast.js: Added.
* JSTests/wasm/spec-tests/simd_store16_lane.wast.js: Added.
* JSTests/wasm/spec-tests/simd_store32_lane.wast.js: Added.
* JSTests/wasm/spec-tests/simd_store64_lane.wast.js: Added.
* JSTests/wasm/spec-tests/simd_store8_lane.wast.js: Added.
* JSTests/wasm/stress/simd-kitchen-sink.js: Added.
(1.4.3.4.3.16.6144_q15.i16x8.extract_lane_s.0.return.func.export.string_appeared_here.result.i32.v128.not.v128.const.i32x4.0.0.0.0.i32x4.eq.v128.const.i32x4.1.1.1.1.i32x4.extract_lane.0.return.func.export.string_appeared_here.param.i32.result.i32.i8x16.extract_lane_s.15.i8x16.splat.local.0.func.export.string_appeared_here.param.i32.i32.i32.i32.result.i32.local.0.i32.const.257.local.1.i32.const.128.local.2.i32.const.16.local.3.i32.const.16.i16x8.mul.v128.const.i16x8.16.16.16.16.16.16.16.16.v128.const.i16x8.16.16.16.16.16.16.16.16.i32x4.extract_lane.0.func.export.string_appeared_here.param.i.i32.result.i32.global.g.i32x4.splat.local.i.i32x4.extract_lane.0.global.g.return.func.export.string_appeared_here.param.address.i32.result.i64.local.ret.i64.v128.store8_lane.align.1.4.local.address.v128.const.i8x16.0.0.0.0.4.0.0.0.0.0.0.0.0.0.0.0.local.ret.i64.load.local.address.v128.store.offset.4.i32.const.0.global.zero.local.ret.func.export.string_appeared_here.result.i32.v128.const.f64x2.2147483647.0.2147483647.0.i32x4.trunc_sat_f64x2_s_zero.i32x4.extract_lane.0.func.export.string_appeared_here.result.i32.i8x16.bitmask.v128.const.i8x16.0xFF.0xFF.0xFF.0xFF.0xFF.0xFF.0xFF.0xFF.0xFF.0xFF.0xFF.0xFF.0xFF.0xFF.0xFF.0xFF.func.export.string_appeared_here.result.i32.i8x16.bitmask.v128.const.i8x16.1.0.1.2.3.4.5.6.7.8.9.0xA.0xB.0xC.0xD.0xF.async test):
* JSTests/wasm/v8/exceptions-simd.js: Added.
(TestThrowS128Default):
(TestThrowCatchS128WithValue):
* JSTests/wasm/v8/exceptions-utils.js:
(assertWasmThrows):
* JSTests/wasm/v8/liftoff-simd-params.js: Added.
* JSTests/wasm/v8/multi-value-simd.js: Added.
(MultiReturnS128Test):
* JSTests/wasm/v8/simd-call.js: Added.
(TestSimd128Params):
* JSTests/wasm/v8/simd-errors.js: Added.
(TestS128InSignatureThrows):
* JSTests/wasm/v8/simd-globals.js: Added.
(TestS128GlobalInitialization.addGetFunction.get addBody):
(TestS128GlobalInitialization.addGetFunction):
(TestS128GlobalInitialization.get for):
(TestS128GlobalInitialization):
(get TestS128GlobalImport):
* JSTests/wasm/v8/simd-i64x2-mul.js: Added.
* JSTests/wasm/v8/wasm-module-builder.js:
(wasmRtt):
(Binary.prototype.emit_init_expr_recursive):
(WasmInitExpr.ArrayInitFromData):
(WasmInitExpr.ArrayInitFromDataStatic):
(WasmStruct):
(WasmArray):
(WasmModuleBuilder):
(WasmModuleBuilder.prototype.addStruct):
(WasmModuleBuilder.prototype.addArray):
(WasmModuleBuilder.prototype.setNominal):
(WasmModuleBuilder.prototype.toBuffer):
(wasmRttNoDepth): Deleted.
(WasmStructSubtype): Deleted.
(WasmArraySubtype): Deleted.
(WasmModuleBuilder.prototype.addStructSubtype): Deleted.
(WasmModuleBuilder.prototype.addArraySubtype): Deleted.
* Source/JavaScriptCore/assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::cmeqz):
(JSC::ARM64Assembler::cmhi): Deleted.
(JSC::ARM64Assembler::cmhs): Deleted.
(JSC::ARM64Assembler::cmgt): Deleted.
(JSC::ARM64Assembler::cmge): Deleted.
(JSC::ARM64Assembler::vectorAdd): Deleted.
(JSC::ARM64Assembler::urhadd): Deleted.
(JSC::ARM64Assembler::addpv): Deleted.
(JSC::ARM64Assembler::addv): Deleted.
(JSC::ARM64Assembler::vectorSub): Deleted.
(JSC::ARM64Assembler::vectorMul): Deleted.
(JSC::ARM64Assembler::smullv): Deleted.
(JSC::ARM64Assembler::smull2v): Deleted.
(JSC::ARM64Assembler::umullv): Deleted.
(JSC::ARM64Assembler::umull2v): Deleted.
(JSC::ARM64Assembler::sqrdmlahv): Deleted.
(JSC::ARM64Assembler::vectorFadd): Deleted.
(JSC::ARM64Assembler::vectorFsub): Deleted.
(JSC::ARM64Assembler::vectorFmul): Deleted.
(JSC::ARM64Assembler::vectorFdiv): Deleted.
(JSC::ARM64Assembler::umax): Deleted.
(JSC::ARM64Assembler::umaxv): Deleted.
(JSC::ARM64Assembler::uminv): Deleted.
(JSC::ARM64Assembler::smax): Deleted.
(JSC::ARM64Assembler::umin): Deleted.
(JSC::ARM64Assembler::smin): Deleted.
(JSC::ARM64Assembler::vectorFmax): Deleted.
(JSC::ARM64Assembler::vectorFmin): Deleted.
(JSC::ARM64Assembler::bsl): Deleted.
(JSC::ARM64Assembler::vectorEor): Deleted.
(JSC::ARM64Assembler::vectorAbs): Deleted.
(JSC::ARM64Assembler::vectorFabs): Deleted.
(JSC::ARM64Assembler::vectorNeg): Deleted.
(JSC::ARM64Assembler::vectorFneg): Deleted.
(JSC::ARM64Assembler::vectorCnt): Deleted.
(JSC::ARM64Assembler::vectorFcvtps): Deleted.
(JSC::ARM64Assembler::vectorFcvtms): Deleted.
(JSC::ARM64Assembler::vectorFrintz): Deleted.
(JSC::ARM64Assembler::vectorFcvtns): Deleted.
(JSC::ARM64Assembler::vectorFsqrt): Deleted.
(JSC::ARM64Assembler::immhForExtend): Deleted.
(JSC::ARM64Assembler::uxtl): Deleted.
(JSC::ARM64Assembler::uxtl2): Deleted.
(JSC::ARM64Assembler::sxtl): Deleted.
(JSC::ARM64Assembler::sxtl2): Deleted.
(JSC::ARM64Assembler::fcvtl): Deleted.
(JSC::ARM64Assembler::fcvtn): Deleted.
(JSC::ARM64Assembler::sqxtn): Deleted.
(JSC::ARM64Assembler::sqxtn2): Deleted.
(JSC::ARM64Assembler::sqxtun): Deleted.
(JSC::ARM64Assembler::sqxtun2): Deleted.
(JSC::ARM64Assembler::ushl): Deleted.
(JSC::ARM64Assembler::sshl): Deleted.
(JSC::ARM64Assembler::sshr_vi): Deleted.
(JSC::ARM64Assembler::sqadd): Deleted.
(JSC::ARM64Assembler::sqsub): Deleted.
(JSC::ARM64Assembler::uqadd): Deleted.
(JSC::ARM64Assembler::uqsub): Deleted.
(JSC::ARM64Assembler::vectorFcvtzs): Deleted.
(JSC::ARM64Assembler::vectorFcvtzu): Deleted.
(JSC::ARM64Assembler::vectorScvtf): Deleted.
(JSC::ARM64Assembler::vectorUcvtf): Deleted.
(JSC::ARM64Assembler::tbl): Deleted.
(JSC::ARM64Assembler::tbl2): Deleted.
(JSC::ARM64Assembler::ld1r): Deleted.
(JSC::ARM64Assembler::ld1): Deleted.
(JSC::ARM64Assembler::st1): Deleted.
* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::compareFloatingPointVector):
(JSC::MacroAssemblerARM64::compareIntegerVector):
(JSC::MacroAssemblerARM64::compareIntegerVectorWithZero):
(JSC::MacroAssemblerARM64::vectorAdd):
(JSC::MacroAssemblerARM64::vectorSub):
(JSC::MacroAssemblerARM64::vectorMul):
(JSC::MacroAssemblerARM64::vectorDiv):
(JSC::MacroAssemblerARM64::vectorMax):
(JSC::MacroAssemblerARM64::vectorMin):
(JSC::MacroAssemblerARM64::vectorPmin):
(JSC::MacroAssemblerARM64::vectorPmax):
(JSC::MacroAssemblerARM64::vectorBitwiseSelect):
(JSC::MacroAssemblerARM64::vectorNot):
(JSC::MacroAssemblerARM64::vectorAnd):
(JSC::MacroAssemblerARM64::vectorAndnot):
(JSC::MacroAssemblerARM64::vectorOr):
(JSC::MacroAssemblerARM64::vectorXor):
(JSC::MacroAssemblerARM64::vectorAbs):
(JSC::MacroAssemblerARM64::vectorNeg):
(JSC::MacroAssemblerARM64::vectorPopcnt):
(JSC::MacroAssemblerARM64::vectorCeil):
(JSC::MacroAssemblerARM64::vectorFloor):
(JSC::MacroAssemblerARM64::vectorTrunc):
(JSC::MacroAssemblerARM64::vectorTruncSat):
(JSC::MacroAssemblerARM64::vectorNearest):
(JSC::MacroAssemblerARM64::vectorSqrt):
(JSC::MacroAssemblerARM64::vectorExtendLow):
(JSC::MacroAssemblerARM64::vectorExtendHigh):
(JSC::MacroAssemblerARM64::vectorPromote):
(JSC::MacroAssemblerARM64::vectorDemote):
(JSC::MacroAssemblerARM64::vectorNarrow):
(JSC::MacroAssemblerARM64::vectorConvert):
(JSC::MacroAssemblerARM64::vectorConvertLow):
(JSC::MacroAssemblerARM64::vectorUshl):
(JSC::MacroAssemblerARM64::vectorSshl):
(JSC::MacroAssemblerARM64::vectorSshr):
(JSC::MacroAssemblerARM64::vectorHorizontalAdd):
(JSC::MacroAssemblerARM64::vectorZipUpper):
(JSC::MacroAssemblerARM64::vectorUnzipEven):
(JSC::MacroAssemblerARM64::reverseBits64):
(JSC::MacroAssemblerARM64::reverseBits32):
(JSC::MacroAssemblerARM64::vectorExtractPair):
(JSC::MacroAssemblerARM64::vectorSplat):
(JSC::MacroAssemblerARM64::vectorSplat8):
(JSC::MacroAssemblerARM64::vectorSplat16):
(JSC::MacroAssemblerARM64::vectorSplat32):
(JSC::MacroAssemblerARM64::vectorSplat64):
(JSC::MacroAssemblerARM64::vectorAddSat):
(JSC::MacroAssemblerARM64::vectorSubSat):
(JSC::MacroAssemblerARM64::vectorLoad8Splat):
(JSC::MacroAssemblerARM64::vectorLoad16Splat):
(JSC::MacroAssemblerARM64::vectorLoad32Splat):
(JSC::MacroAssemblerARM64::vectorLoad64Splat):
(JSC::MacroAssemblerARM64::vectorLoad8Lane):
(JSC::MacroAssemblerARM64::vectorLoad16Lane):
(JSC::MacroAssemblerARM64::vectorLoad32Lane):
(JSC::MacroAssemblerARM64::vectorLoad64Lane):
(JSC::MacroAssemblerARM64::vectorStore8Lane):
(JSC::MacroAssemblerARM64::vectorStore16Lane):
(JSC::MacroAssemblerARM64::vectorStore32Lane):
(JSC::MacroAssemblerARM64::vectorStore64Lane):
(JSC::MacroAssemblerARM64::vectorUnsignedMax):
(JSC::MacroAssemblerARM64::vectorUnsignedMin):
(JSC::MacroAssemblerARM64::vectorAnyTrue):
(JSC::MacroAssemblerARM64::vectorAllTrue):
(JSC::MacroAssemblerARM64::vectorBitmask):
(JSC::MacroAssemblerARM64::vectorExtaddPairwise):
(JSC::MacroAssemblerARM64::vectorAddPairwise):
(JSC::MacroAssemblerARM64::vectorAvgRound):
(JSC::MacroAssemblerARM64::vectorMulSat):
(JSC::MacroAssemblerARM64::vectorDotProductInt32):
(JSC::MacroAssemblerARM64::vectorSwizzle):
(JSC::MacroAssemblerARM64::vectorSwizzle2):
(JSC::MacroAssemblerARM64::vectorShuffle):
* Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::compareFloatingPointVector):
(JSC::MacroAssemblerX86_64::compareIntegerVector):
(JSC::MacroAssemblerX86_64::compareIntegerVectorWithZero):
(JSC::MacroAssemblerX86_64::vectorAdd):
(JSC::MacroAssemblerX86_64::vectorSub):
(JSC::MacroAssemblerX86_64::vectorMul):
(JSC::MacroAssemblerX86_64::vectorDiv):
(JSC::MacroAssemblerX86_64::vectorMax):
(JSC::MacroAssemblerX86_64::vectorMin):
(JSC::MacroAssemblerX86_64::vectorPmin):
(JSC::MacroAssemblerX86_64::vectorPmax):
(JSC::MacroAssemblerX86_64::vectorBitwiseSelect):
(JSC::MacroAssemblerX86_64::vectorNot):
(JSC::MacroAssemblerX86_64::vectorAnd):
(JSC::MacroAssemblerX86_64::vectorAndnot):
(JSC::MacroAssemblerX86_64::vectorOr):
(JSC::MacroAssemblerX86_64::vectorXor):
(JSC::MacroAssemblerX86_64::vectorAbs):
(JSC::MacroAssemblerX86_64::vectorNeg):
(JSC::MacroAssemblerX86_64::vectorPopcnt):
(JSC::MacroAssemblerX86_64::vectorCeil):
(JSC::MacroAssemblerX86_64::vectorFloor):
(JSC::MacroAssemblerX86_64::vectorTrunc):
(JSC::MacroAssemblerX86_64::vectorTruncSat):
(JSC::MacroAssemblerX86_64::vectorNearest):
(JSC::MacroAssemblerX86_64::vectorSqrt):
(JSC::MacroAssemblerX86_64::vectorExtendLow):
(JSC::MacroAssemblerX86_64::vectorExtendHigh):
(JSC::MacroAssemblerX86_64::vectorPromote):
(JSC::MacroAssemblerX86_64::vectorDemote):
(JSC::MacroAssemblerX86_64::vectorNarrow):
(JSC::MacroAssemblerX86_64::vectorConvert):
(JSC::MacroAssemblerX86_64::vectorConvertLow):
(JSC::MacroAssemblerX86_64::vectorSplat):
(JSC::MacroAssemblerX86_64::vectorSplat8):
(JSC::MacroAssemblerX86_64::vectorSplat16):
(JSC::MacroAssemblerX86_64::vectorSplat32):
(JSC::MacroAssemblerX86_64::vectorSplat64):
(JSC::MacroAssemblerX86_64::vectorAddSat):
(JSC::MacroAssemblerX86_64::vectorSubSat):
(JSC::MacroAssemblerX86_64::vectorLoad8Splat):
(JSC::MacroAssemblerX86_64::vectorLoad16Splat):
(JSC::MacroAssemblerX86_64::vectorLoad32Splat):
(JSC::MacroAssemblerX86_64::vectorLoad64Splat):
(JSC::MacroAssemblerX86_64::vectorLoad8Lane):
(JSC::MacroAssemblerX86_64::vectorLoad16Lane):
(JSC::MacroAssemblerX86_64::vectorLoad32Lane):
(JSC::MacroAssemblerX86_64::vectorLoad64Lane):
(JSC::MacroAssemblerX86_64::vectorAnyTrue):
(JSC::MacroAssemblerX86_64::vectorAllTrue):
(JSC::MacroAssemblerX86_64::vectorBitmask):
(JSC::MacroAssemblerX86_64::vectorExtaddPairwise):
(JSC::MacroAssemblerX86_64::vectorAvgRound):
(JSC::MacroAssemblerX86_64::vectorMulSat):
(JSC::MacroAssemblerX86_64::vectorDotProductInt32):
(JSC::MacroAssemblerX86_64::vectorSwizzle):
(JSC::MacroAssemblerX86_64::vectorShuffle):
* Source/JavaScriptCore/b3/air/AirInstInlines.h:
(JSC::B3::Air::isVectorSwizzle2Valid):
* Source/JavaScriptCore/b3/air/AirLowerMacros.cpp:
(JSC::B3::Air::lowerMacros):
* Source/JavaScriptCore/b3/air/AirOpcode.opcodes:
* Source/JavaScriptCore/b3/air/AirValidate.cpp:
* Source/JavaScriptCore/jit/RegisterAtOffsetList.cpp:
(JSC::RegisterAtOffsetList::RegisterAtOffsetList):
* Source/JavaScriptCore/jit/RegisterAtOffsetList.h:
(JSC::RegisterAtOffsetList::sizeOfAreaInBytes const):
* Source/JavaScriptCore/jit/SIMDInfo.h:
* Source/JavaScriptCore/llint/WebAssembly32_64.asm:
* Source/JavaScriptCore/llint/WebAssembly64.asm:
* Source/JavaScriptCore/runtime/OptionsList.h:
* Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::addExtractLane):
(JSC::Wasm::AirIRGenerator::addReplaceLane):
(JSC::Wasm::AirIRGenerator::addSIMDI_V):
(JSC::Wasm::AirIRGenerator::addSIMDV_V):
(JSC::Wasm::AirIRGenerator::addSIMDBitwiseSelect):
(JSC::Wasm::AirIRGenerator::addSIMDRelOp):
(JSC::Wasm::AirIRGenerator::addSIMDV_VV):
(JSC::Wasm::AirIRGenerator::emitPatchpoint):
(JSC::Wasm::AirIRGenerator::materializeSimpleAddrArg):
(JSC::Wasm::AirIRGenerator::getGlobal):
(JSC::Wasm::AirIRGenerator::setGlobal):
(JSC::Wasm::AirIRGenerator::addSIMDSplat):
(JSC::Wasm::AirIRGenerator::addSIMDShift):
(JSC::Wasm::AirIRGenerator::addSIMDExtmul):
(JSC::Wasm::AirIRGenerator::addSIMDShuffle):
(JSC::Wasm::AirIRGenerator::addSIMDLoadSplat):
(JSC::Wasm::AirIRGenerator::addSIMDLoadLane):
(JSC::Wasm::AirIRGenerator::addSIMDStoreLane):
(JSC::Wasm::AirIRGenerator::addSIMDLoadExtend):
(JSC::Wasm::AirIRGenerator::addSIMDLoadPad):
(JSC::Wasm::AirIRGenerator::addThrow):
(JSC::Wasm::AirIRGenerator::addSwitch):
(JSC::Wasm::AirIRGenerator::addCallIndirect):
(JSC::Wasm::parseAndCompileAir):
(JSC::Wasm::AirIRGenerator::addShift):
(JSC::Wasm::AirIRGenerator::extractLaneAirOp): Deleted.
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::getGlobal):
(JSC::Wasm::B3IRGenerator::setGlobal):
* Source/JavaScriptCore/wasm/WasmCallingConvention.h:
(JSC::Wasm::CallInformation::computeResultsOffsetList):
(JSC::Wasm::WasmCallingConvention::callInformationFor const):
* Source/JavaScriptCore/wasm/WasmExceptionType.h:
* Source/JavaScriptCore/wasm/WasmFormat.h:
* Source/JavaScriptCore/wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser::simd):
(JSC::Wasm::FunctionParser<Context>::simd):
(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):
* Source/JavaScriptCore/wasm/WasmGlobal.cpp:
(JSC::Wasm::Global::get const):
(JSC::Wasm::Global::set):
* Source/JavaScriptCore/wasm/WasmGlobal.h:
* Source/JavaScriptCore/wasm/WasmInstance.cpp:
* Source/JavaScriptCore/wasm/WasmInstance.h:
(JSC::Wasm::Instance::loadV128Global const):
(JSC::Wasm::Instance::setGlobal):
* Source/JavaScriptCore/wasm/WasmSIMDOpcodes.h:
(JSC::dumpSIMDLaneOperation):
(dumpSIMDLaneOperation): Deleted.
* Source/JavaScriptCore/wasm/WasmSectionParser.cpp:
(JSC::Wasm::SectionParser::parseGlobal):
(JSC::Wasm::SectionParser::parseInitExpr):
(JSC::Wasm::SectionParser::parseI32InitExpr):
* Source/JavaScriptCore/wasm/WasmSectionParser.h:
* Source/JavaScriptCore/wasm/WasmStreamingParser.cpp:
(JSC::Wasm::dumpWasmSource):
(JSC::Wasm::StreamingParser::StreamingParser):
(JSC::Wasm::StreamingParser::addBytes):
* Source/JavaScriptCore/wasm/WasmStreamingParser.h:
* Source/JavaScriptCore/wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper):
* Source/JavaScriptCore/wasm/js/WasmToJS.cpp:
(JSC::Wasm::handleBadImportTypeUse):
(JSC::Wasm::wasmToJS):
(JSC::Wasm::handleBadGCTypeIndexUse): Deleted.
* Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::initializeImports):
(JSC::WebAssemblyModuleRecord::initializeExports):
* Tools/Scripts/run-jsc-stress-tests:

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




More information about the webkit-changes mailing list