[webkit-changes] [WebKit/WebKit] baab8d: Support v128 const load store and extract lane in ...

Justin Michaud noreply at github.com
Mon Oct 24 12:58:20 PDT 2022


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

  Changed paths:
    A JSTests/wasm/stress/simd-const-spill.js
    A JSTests/wasm/stress/simd-const.js
    A JSTests/wasm/stress/simd-load.js
    A JSTests/wasm/stress/simd-register-allocation.js
    M JSTests/wasm/wasm.json
    M Source/JavaScriptCore/CMakeLists.txt
    M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
    M Source/JavaScriptCore/assembler/ARM64Assembler.h
    M Source/JavaScriptCore/assembler/MacroAssembler.h
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
    M Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h
    M Source/JavaScriptCore/assembler/X86Assembler.h
    M Source/JavaScriptCore/b3/B3Bank.h
    M Source/JavaScriptCore/b3/B3LowerToAir.cpp
    M Source/JavaScriptCore/b3/B3PatchpointSpecial.cpp
    M Source/JavaScriptCore/b3/B3Type.cpp
    M Source/JavaScriptCore/b3/B3Type.h
    M Source/JavaScriptCore/b3/B3TypeMap.h
    M Source/JavaScriptCore/b3/B3Value.cpp
    M Source/JavaScriptCore/b3/B3ValueRep.cpp
    M Source/JavaScriptCore/b3/B3Width.h
    M Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp
    M Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackByLinearScan.cpp
    M Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp
    M Source/JavaScriptCore/b3/air/AirAllocateStackByGraphColoring.cpp
    M Source/JavaScriptCore/b3/air/AirArg.cpp
    M Source/JavaScriptCore/b3/air/AirArg.h
    M Source/JavaScriptCore/b3/air/AirCCallSpecial.cpp
    M Source/JavaScriptCore/b3/air/AirCCallingConvention.cpp
    M Source/JavaScriptCore/b3/air/AirEmitShuffle.cpp
    M Source/JavaScriptCore/b3/air/AirEmitShuffle.h
    M Source/JavaScriptCore/b3/air/AirFormTable.h
    M Source/JavaScriptCore/b3/air/AirHelpers.h
    M Source/JavaScriptCore/b3/air/AirInstInlines.h
    M Source/JavaScriptCore/b3/air/AirLogRegisterPressure.cpp
    M Source/JavaScriptCore/b3/air/AirLowerAfterRegAlloc.cpp
    M Source/JavaScriptCore/b3/air/AirLowerMacros.cpp
    M Source/JavaScriptCore/b3/air/AirLowerStackArgs.cpp
    M Source/JavaScriptCore/b3/air/AirOpcode.opcodes
    M Source/JavaScriptCore/b3/air/AirRegLiveness.cpp
    M Source/JavaScriptCore/b3/air/AirTmpWidth.cpp
    M Source/JavaScriptCore/b3/air/AirValidate.cpp
    M Source/JavaScriptCore/b3/air/opcode_generator.rb
    M Source/JavaScriptCore/bytecode/BytecodeDumper.cpp
    M Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.cpp
    M Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.h
    M Source/JavaScriptCore/generator/DSL.rb
    M Source/JavaScriptCore/generator/Opcode.rb
    M Source/JavaScriptCore/generator/Section.rb
    M Source/JavaScriptCore/generator/main.rb
    M Source/JavaScriptCore/jit/AssemblyHelpersSpoolers.h
    M Source/JavaScriptCore/jit/Reg.h
    M Source/JavaScriptCore/jit/RegisterAtOffset.h
    A Source/JavaScriptCore/jit/SIMDInfo.h
    M Source/JavaScriptCore/jit/ScratchRegisterAllocator.cpp
    M Source/JavaScriptCore/runtime/Options.cpp
    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/WasmFormat.h
    M Source/JavaScriptCore/wasm/WasmFunctionParser.h
    M Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmParser.h
    A Source/JavaScriptCore/wasm/WasmSIMDOpcodes.h
    M Source/JavaScriptCore/wasm/WasmThunks.cpp
    M Source/JavaScriptCore/wasm/WasmTypeDefinition.h
    M Source/JavaScriptCore/wasm/generateWasmOpsHeader.py
    M Source/JavaScriptCore/wasm/js/JSToWasm.cpp
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyStruct.cpp
    M Source/JavaScriptCore/wasm/js/WasmToJS.cpp
    M Source/JavaScriptCore/wasm/wasm.json

  Log Message:
  -----------
  Support v128 const load store and extract lane in bbq only with O0 register allocation
https://bugs.webkit.org/show_bug.cgi?id=245897
rdar://problem/100772941

Reviewed by Yusuke Suzuki.

This is the first patch to support the WASM SIMD proposal:
https://github.com/WebAssembly/simd/blob/main/proposals/simd/SIMD.md

- Add a feature flag and support for parsing the new SIMD opcodes and the V128 type
When this flag is enabled, we disable LLInt and OMG, as well as the Linear Scan
and Graph Coloring register allocators (for now).

- Implement load, store, extract_lane and v128.const on both Intel and ARM64.
This is meant to be enough instruction implementation to test that the other parts
of this patch work.

- Spill and fill 128-bit vectors when they are used

Next steps
- Every place where we see an Options::useWebAssemblySIMD() ? should eventually be removed.
These were added for now so that the patch would be perf-neutral on JS2, but
the register allocator should eventually be able to see that if the full width is
never used, we should only spill a double.

* JSTests/wasm/wasm.json:
* Source/JavaScriptCore/CMakeLists.txt:
* Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
* Source/JavaScriptCore/assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::add):
(JSC::ARM64Assembler::simdQBit):
(JSC::ARM64Assembler::encodeLaneAndIndex):
(JSC::ARM64Assembler::ins):
(JSC::ARM64Assembler::umov):
(JSC::ARM64Assembler::smov):
(JSC::ARM64Assembler::dupElement):
(JSC::ARM64Assembler::dupGeneral):
(JSC::ARM64Assembler::fcmeq):
(JSC::ARM64Assembler::fcmgt):
(JSC::ARM64Assembler::fcmge):
(JSC::ARM64Assembler::vectorNot):
(JSC::ARM64Assembler::sizeForIntegralSIMDOp):
(JSC::ARM64Assembler::sizeForFloatingPointSIMDOp):
(JSC::ARM64Assembler::cmeq):
(JSC::ARM64Assembler::cmeqz):
(JSC::ARM64Assembler::cmhi):
(JSC::ARM64Assembler::cmhs):
(JSC::ARM64Assembler::cmgt):
(JSC::ARM64Assembler::cmge):
(JSC::ARM64Assembler::vectorAdd):
(JSC::ARM64Assembler::urhadd):
(JSC::ARM64Assembler::addpv):
(JSC::ARM64Assembler::addv):
(JSC::ARM64Assembler::vectorSub):
(JSC::ARM64Assembler::vectorMul):
(JSC::ARM64Assembler::smullv):
(JSC::ARM64Assembler::smull2v):
(JSC::ARM64Assembler::umullv):
(JSC::ARM64Assembler::umull2v):
(JSC::ARM64Assembler::sqrdmlahv):
(JSC::ARM64Assembler::vectorFadd):
(JSC::ARM64Assembler::vectorFsub):
(JSC::ARM64Assembler::vectorFmul):
(JSC::ARM64Assembler::vectorFdiv):
(JSC::ARM64Assembler::umax):
(JSC::ARM64Assembler::umaxv):
(JSC::ARM64Assembler::uminv):
(JSC::ARM64Assembler::smax):
(JSC::ARM64Assembler::umin):
(JSC::ARM64Assembler::smin):
(JSC::ARM64Assembler::vectorFmax):
(JSC::ARM64Assembler::vectorFmin):
(JSC::ARM64Assembler::bsl):
(JSC::ARM64Assembler::vectorEor):
(JSC::ARM64Assembler::vectorAbs):
(JSC::ARM64Assembler::vectorFabs):
(JSC::ARM64Assembler::vectorNeg):
(JSC::ARM64Assembler::vectorFneg):
(JSC::ARM64Assembler::vectorCnt):
(JSC::ARM64Assembler::vectorFcvtps):
(JSC::ARM64Assembler::vectorFcvtms):
(JSC::ARM64Assembler::vectorFrintz):
(JSC::ARM64Assembler::vectorFcvtns):
(JSC::ARM64Assembler::vectorFsqrt):
(JSC::ARM64Assembler::immhForExtend):
(JSC::ARM64Assembler::uxtl):
(JSC::ARM64Assembler::uxtl2):
(JSC::ARM64Assembler::sxtl):
(JSC::ARM64Assembler::sxtl2):
(JSC::ARM64Assembler::fcvtl):
(JSC::ARM64Assembler::fcvtn):
(JSC::ARM64Assembler::sqxtn):
(JSC::ARM64Assembler::sqxtn2):
(JSC::ARM64Assembler::sqxtun):
(JSC::ARM64Assembler::sqxtun2):
(JSC::ARM64Assembler::ushl):
(JSC::ARM64Assembler::sshl):
(JSC::ARM64Assembler::sshr_vi):
(JSC::ARM64Assembler::sqadd):
(JSC::ARM64Assembler::sqsub):
(JSC::ARM64Assembler::uqadd):
(JSC::ARM64Assembler::uqsub):
(JSC::ARM64Assembler::vectorFcvtzs):
(JSC::ARM64Assembler::vectorFcvtzu):
(JSC::ARM64Assembler::vectorScvtf):
(JSC::ARM64Assembler::vectorUcvtf):
(JSC::ARM64Assembler::tbl):
(JSC::ARM64Assembler::tbl2):
(JSC::ARM64Assembler::ld1r):
(JSC::ARM64Assembler::ld1):
(JSC::ARM64Assembler::st1):
(JSC::ARM64Assembler::mov): Deleted.
(JSC::ARM64Assembler::movi): Deleted.
(JSC::ARM64Assembler::movk): Deleted.
(JSC::ARM64Assembler::movn): Deleted.
(JSC::ARM64Assembler::movz): Deleted.
(JSC::ARM64Assembler::msub): Deleted.
(JSC::ARM64Assembler::mul): Deleted.
(JSC::ARM64Assembler::mvn): Deleted.
(JSC::ARM64Assembler::neg): Deleted.
(JSC::ARM64Assembler::ngc): Deleted.
(JSC::ARM64Assembler::nop): Deleted.
(JSC::ARM64Assembler::fillNops): Deleted.
(JSC::ARM64Assembler::dmbISH): Deleted.
(JSC::ARM64Assembler::dmbISHST): Deleted.
(JSC::ARM64Assembler::ldar): Deleted.
(JSC::ARM64Assembler::ldxr): Deleted.
(JSC::ARM64Assembler::ldaxr): Deleted.
(JSC::ARM64Assembler::stxr): Deleted.
(JSC::ARM64Assembler::stlr): Deleted.
(JSC::ARM64Assembler::stlxr): Deleted.
(JSC::ARM64Assembler::mrs_TPIDRRO_EL0): Deleted.
(JSC::ARM64Assembler::orn): Deleted.
(JSC::ARM64Assembler::orr): Deleted.
(JSC::ARM64Assembler::rbit): Deleted.
(JSC::ARM64Assembler::ret): Deleted.
(JSC::ARM64Assembler::rev): Deleted.
(JSC::ARM64Assembler::rev16): Deleted.
(JSC::ARM64Assembler::rev32): Deleted.
(JSC::ARM64Assembler::ror): Deleted.
(JSC::ARM64Assembler::rorv): Deleted.
(JSC::ARM64Assembler::sbc): Deleted.
(JSC::ARM64Assembler::sbfiz): Deleted.
(JSC::ARM64Assembler::sbfm): Deleted.
(JSC::ARM64Assembler::sbfx): Deleted.
(JSC::ARM64Assembler::sdiv): Deleted.
(JSC::ARM64Assembler::smaddl): Deleted.
(JSC::ARM64Assembler::smnegl): Deleted.
(JSC::ARM64Assembler::smsubl): Deleted.
(JSC::ARM64Assembler::smulh): Deleted.
(JSC::ARM64Assembler::smull): Deleted.
(JSC::ARM64Assembler::isValidSTPImm): Deleted.
(JSC::ARM64Assembler::isValidSTPFPImm): Deleted.
(JSC::ARM64Assembler::stp): Deleted.
(JSC::ARM64Assembler::stnp): Deleted.
(JSC::ARM64Assembler::str): Deleted.
(JSC::ARM64Assembler::strb): Deleted.
(JSC::ARM64Assembler::strh): Deleted.
(JSC::ARM64Assembler::stur): Deleted.
(JSC::ARM64Assembler::sturb): Deleted.
(JSC::ARM64Assembler::sturh): Deleted.
(JSC::ARM64Assembler::sub): Deleted.
(JSC::ARM64Assembler::sxtb): Deleted.
(JSC::ARM64Assembler::sxth): Deleted.
(JSC::ARM64Assembler::sxtw): Deleted.
(JSC::ARM64Assembler::tbz): Deleted.
(JSC::ARM64Assembler::tbnz): Deleted.
(JSC::ARM64Assembler::tst): Deleted.
(JSC::ARM64Assembler::ubfiz): Deleted.
(JSC::ARM64Assembler::ubfm): Deleted.
(JSC::ARM64Assembler::ubfx): Deleted.
(JSC::ARM64Assembler::udiv): Deleted.
(JSC::ARM64Assembler::umaddl): Deleted.
(JSC::ARM64Assembler::umnegl): Deleted.
(JSC::ARM64Assembler::umsubl): Deleted.
(JSC::ARM64Assembler::umulh): Deleted.
(JSC::ARM64Assembler::umull): Deleted.
(JSC::ARM64Assembler::uxtb): Deleted.
(JSC::ARM64Assembler::uxth): Deleted.
(JSC::ARM64Assembler::uxtw): Deleted.
(JSC::ARM64Assembler::fabs): Deleted.
(JSC::ARM64Assembler::fadd): Deleted.
(JSC::ARM64Assembler::fccmp): Deleted.
(JSC::ARM64Assembler::fccmpe): Deleted.
(JSC::ARM64Assembler::fcmp): Deleted.
(JSC::ARM64Assembler::fcmp_0): Deleted.
(JSC::ARM64Assembler::fcmpe): Deleted.
(JSC::ARM64Assembler::fcmpe_0): Deleted.
(JSC::ARM64Assembler::fcsel): Deleted.
(JSC::ARM64Assembler::fcvt): Deleted.
(JSC::ARM64Assembler::fcvtas): Deleted.
(JSC::ARM64Assembler::fcvtau): Deleted.
(JSC::ARM64Assembler::fcvtms): Deleted.
(JSC::ARM64Assembler::fcvtmu): Deleted.
(JSC::ARM64Assembler::fcvtns): Deleted.
(JSC::ARM64Assembler::fcvtnu): Deleted.
(JSC::ARM64Assembler::fcvtps): Deleted.
(JSC::ARM64Assembler::fcvtpu): Deleted.
(JSC::ARM64Assembler::fcvtzs): Deleted.
(JSC::ARM64Assembler::fcvtzu): Deleted.
(JSC::ARM64Assembler::fdiv): Deleted.
(JSC::ARM64Assembler::fmadd): Deleted.
(JSC::ARM64Assembler::fmax): Deleted.
(JSC::ARM64Assembler::fmaxnm): Deleted.
(JSC::ARM64Assembler::fmin): Deleted.
(JSC::ARM64Assembler::fminnm): Deleted.
(JSC::ARM64Assembler::fmov): Deleted.
(JSC::ARM64Assembler::fmov_top): Deleted.
(JSC::ARM64Assembler::fmsub): Deleted.
(JSC::ARM64Assembler::fmul): Deleted.
(JSC::ARM64Assembler::fneg): Deleted.
(JSC::ARM64Assembler::fnmadd): Deleted.
(JSC::ARM64Assembler::fnmsub): Deleted.
(JSC::ARM64Assembler::fnmul): Deleted.
(JSC::ARM64Assembler::vand): Deleted.
(JSC::ARM64Assembler::vorr): Deleted.
(JSC::ARM64Assembler::frinta): Deleted.
(JSC::ARM64Assembler::frinti): Deleted.
(JSC::ARM64Assembler::frintm): Deleted.
(JSC::ARM64Assembler::frintn): Deleted.
(JSC::ARM64Assembler::frintp): Deleted.
(JSC::ARM64Assembler::frintx): Deleted.
(JSC::ARM64Assembler::frintz): Deleted.
(JSC::ARM64Assembler::fsqrt): Deleted.
(JSC::ARM64Assembler::fsub): Deleted.
(JSC::ARM64Assembler::scvtf): Deleted.
(JSC::ARM64Assembler::ucvtf): Deleted.
(JSC::ARM64Assembler::fjcvtzs): Deleted.
(JSC::ARM64Assembler::labelIgnoringWatchpoints): Deleted.
(JSC::ARM64Assembler::labelForWatchpoint): Deleted.
(JSC::ARM64Assembler::label): Deleted.
(JSC::ARM64Assembler::align): Deleted.
(JSC::ARM64Assembler::getRelocatedAddress): Deleted.
(JSC::ARM64Assembler::getDifferenceBetweenLabels): Deleted.
(JSC::ARM64Assembler::codeSize const): Deleted.
(JSC::ARM64Assembler::getCallReturnOffset): Deleted.
(JSC::ARM64Assembler::linkJump): Deleted.
(JSC::ARM64Assembler::linkCall): Deleted.
(JSC::ARM64Assembler::linkPointer): Deleted.
(JSC::ARM64Assembler::replaceWithVMHalt): Deleted.
(JSC::ARM64Assembler::replaceWithJump): Deleted.
(JSC::ARM64Assembler::maxJumpReplacementSize): Deleted.
(JSC::ARM64Assembler::patchableJumpSize): Deleted.
(JSC::ARM64Assembler::replaceWithLoad): Deleted.
(JSC::ARM64Assembler::replaceWithAddressComputation): Deleted.
(JSC::ARM64Assembler::repatchPointer): Deleted.
(JSC::ARM64Assembler::setPointer): Deleted.
(JSC::ARM64Assembler::repatchInt32): Deleted.
(JSC::ARM64Assembler::readPointer): Deleted.
(JSC::ARM64Assembler::readCallTarget): Deleted.
(JSC::ARM64Assembler::relinkJump): Deleted.
(JSC::ARM64Assembler::relinkCall): Deleted.
(JSC::ARM64Assembler::relinkTailCall): Deleted.
(JSC::ARM64Assembler::prepareForAtomicRelinkJumpConcurrently): Deleted.
(JSC::ARM64Assembler::prepareForAtomicRelinkCallConcurrently): Deleted.
(JSC::ARM64Assembler::debugOffset): Deleted.
(JSC::ARM64Assembler::linuxPageFlush): Deleted.
(JSC::ARM64Assembler::cacheFlush): Deleted.
(JSC::ARM64Assembler::jumpSizeDelta): Deleted.
(JSC::ARM64Assembler::linkRecordSourceComparator): Deleted.
(JSC::ARM64Assembler::canCompact): Deleted.
(JSC::ARM64Assembler::computeJumpType): Deleted.
(JSC::ARM64Assembler::jumpsToLink): Deleted.
(JSC::ARM64Assembler::link): Deleted.
(JSC::ARM64Assembler::canEmitJump): Deleted.
(JSC::ARM64Assembler::checkMovk): Deleted.
(JSC::ARM64Assembler::linkJumpOrCall): Deleted.
(JSC::ARM64Assembler::linkCompareAndBranch): Deleted.
(JSC::ARM64Assembler::linkConditionalBranch): Deleted.
(JSC::ARM64Assembler::linkTestAndBranch): Deleted.
(JSC::ARM64Assembler::relinkJumpOrCall): Deleted.
(JSC::ARM64Assembler::addressOf): Deleted.
(JSC::ARM64Assembler::disassembleXOrSp): Deleted.
(JSC::ARM64Assembler::disassembleXOrZr): Deleted.
(JSC::ARM64Assembler::disassembleXOrZrOrSp): Deleted.
(JSC::ARM64Assembler::disassembleAddSubtractImmediate): Deleted.
(JSC::ARM64Assembler::disassembleLoadStoreRegisterUnsignedImmediate): Deleted.
(JSC::ARM64Assembler::disassembleMoveWideImediate): Deleted.
(JSC::ARM64Assembler::disassembleNop): Deleted.
(JSC::ARM64Assembler::disassembleCompareAndBranchImmediate): Deleted.
(JSC::ARM64Assembler::disassembleConditionalBranchImmediate): Deleted.
(JSC::ARM64Assembler::disassembleTestAndBranchImmediate): Deleted.
(JSC::ARM64Assembler::disassembleUnconditionalBranchImmediate): Deleted.
(JSC::ARM64Assembler::xOrSp): Deleted.
(JSC::ARM64Assembler::xOrZr): Deleted.
(JSC::ARM64Assembler::xOrZrAsFPR): Deleted.
(JSC::ARM64Assembler::xOrZrOrSp): Deleted.
(JSC::ARM64Assembler::insn): Deleted.
(JSC::ARM64Assembler::addSubtractExtendedRegister): Deleted.
(JSC::ARM64Assembler::addSubtractImmediate): Deleted.
(JSC::ARM64Assembler::addSubtractShiftedRegister): Deleted.
(JSC::ARM64Assembler::addSubtractWithCarry): Deleted.
(JSC::ARM64Assembler::bitfield): Deleted.
(JSC::ARM64Assembler::compareAndBranchImmediate): Deleted.
(JSC::ARM64Assembler::conditionalBranchImmediate): Deleted.
(JSC::ARM64Assembler::conditionalCompareImmediate): Deleted.
(JSC::ARM64Assembler::conditionalCompareRegister): Deleted.
(JSC::ARM64Assembler::conditionalSelect): Deleted.
(JSC::ARM64Assembler::dataProcessing1Source): Deleted.
(JSC::ARM64Assembler::dataProcessing2Source): Deleted.
(JSC::ARM64Assembler::dataProcessing3Source): Deleted.
(JSC::ARM64Assembler::excepnGeneration): Deleted.
(JSC::ARM64Assembler::excepnGenerationImmMask): Deleted.
(JSC::ARM64Assembler::extract): Deleted.
(JSC::ARM64Assembler::floatingPointCompare): Deleted.
(JSC::ARM64Assembler::floatingPointConditionalCompare): Deleted.
(JSC::ARM64Assembler::floatingPointConditionalSelect): Deleted.
(JSC::ARM64Assembler::floatingPointImmediate): Deleted.
(JSC::ARM64Assembler::floatingPointIntegerConversions): Deleted.
(JSC::ARM64Assembler::floatingPointDataProcessing1Source): Deleted.
(JSC::ARM64Assembler::floatingPointDataProcessing2Source): Deleted.
(JSC::ARM64Assembler::vectorDataProcessingLogical): Deleted.
(JSC::ARM64Assembler::floatingPointDataProcessing3Source): Deleted.
(JSC::ARM64Assembler::loadRegisterLiteral): Deleted.
(JSC::ARM64Assembler::loadStoreRegisterPostIndex): Deleted.
(JSC::ARM64Assembler::loadStoreRegisterPairPostIndex): Deleted.
(JSC::ARM64Assembler::loadStoreRegisterPreIndex): Deleted.
(JSC::ARM64Assembler::loadStoreRegisterPairPreIndex): Deleted.
(JSC::ARM64Assembler::loadStoreRegisterPairOffset): Deleted.
(JSC::ARM64Assembler::loadStoreRegisterPairNonTemporal): Deleted.
(JSC::ARM64Assembler::loadStoreRegisterRegisterOffset): Deleted.
(JSC::ARM64Assembler::loadStoreRegisterUnscaledImmediate): Deleted.
(JSC::ARM64Assembler::loadStoreRegisterUnsignedImmediate): Deleted.
(JSC::ARM64Assembler::logicalImmediate): Deleted.
(JSC::ARM64Assembler::logicalShiftedRegister): Deleted.
(JSC::ARM64Assembler::moveWideImediate): Deleted.
(JSC::ARM64Assembler::unconditionalBranchImmediate): Deleted.
(JSC::ARM64Assembler::pcRelative): Deleted.
(JSC::ARM64Assembler::system): Deleted.
(JSC::ARM64Assembler::hintPseudo): Deleted.
(JSC::ARM64Assembler::nopPseudo): Deleted.
(JSC::ARM64Assembler::dataCacheZeroVirtualAddress): Deleted.
(JSC::ARM64Assembler::testAndBranchImmediate): Deleted.
(JSC::ARM64Assembler::unconditionalBranchRegister): Deleted.
(JSC::ARM64Assembler::exoticLoad): Deleted.
(JSC::ARM64Assembler::storeRelease): Deleted.
(JSC::ARM64Assembler::exoticStore): Deleted.
(JSC::ARM64Assembler::fjcvtzsInsn): Deleted.
* Source/JavaScriptCore/assembler/MacroAssembler.h:
* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::loadVector):
(JSC::MacroAssemblerARM64::moveVector):
(JSC::MacroAssemblerARM64::storeVector):
(JSC::MacroAssemblerARM64::vectorReplaceLane):
(JSC::MacroAssemblerARM64::vectorExtractLane):
* Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::move32ToFloat):
(JSC::MacroAssemblerX86_64::moveVector):
(JSC::MacroAssemblerX86_64::loadVector):
(JSC::MacroAssemblerX86_64::storeVector):
(JSC::MacroAssemblerX86_64::signExtendForSIMDLane):
(JSC::MacroAssemblerX86_64::vectorReplaceLane):
(JSC::MacroAssemblerX86_64::vectorExtractLane):
* Source/JavaScriptCore/assembler/X86Assembler.h:
(JSC::X86Assembler::pinsr):
(JSC::X86Assembler::pextr):
(JSC::X86Assembler::vextractps):
(JSC::X86Assembler::shufps):
(JSC::X86Assembler::vmovups_mr):
(JSC::X86Assembler::vmovups_rm):
(JSC::X86Assembler::X86InstructionFormatter::SingleInstructionBufferWriter::memoryModRM):
* Source/JavaScriptCore/b3/B3Bank.h:
(JSC::B3::bankForType):
(JSC::B3::bankForReg):
(JSC::B3::conservativeWidth):
* Source/JavaScriptCore/b3/B3LowerToAir.cpp:
* Source/JavaScriptCore/b3/B3PatchpointSpecial.cpp:
(JSC::B3::PatchpointSpecial::forEachArg):
* Source/JavaScriptCore/b3/B3Type.cpp:
(WTF::printInternal):
* Source/JavaScriptCore/b3/B3Type.h:
(JSC::B3::simdB3ScalarTypeKind):
(JSC::B3::simdB3ScalarType):
(JSC::B3::Type::isNumeric const):
(JSC::B3::Type::isVector const):
(JSC::B3::sizeofType):
* Source/JavaScriptCore/b3/B3TypeMap.h:
(JSC::B3::TypeMap::at):
(JSC::B3::TypeMap::dump const):
* Source/JavaScriptCore/b3/B3Value.cpp:
(JSC::B3::Value::typeFor):
* Source/JavaScriptCore/b3/B3ValueRep.cpp:
(JSC::B3::ValueRep::addUsedRegistersTo const):
* Source/JavaScriptCore/b3/B3Width.h:
(JSC::B3::widthForType):
* Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:
(JSC::B3::Air::GenerateAndAllocateRegisters::flush):
(JSC::B3::Air::GenerateAndAllocateRegisters::alloc):
(JSC::B3::Air::GenerateAndAllocateRegisters::assignTmp):
(JSC::B3::Air::GenerateAndAllocateRegisters::prepareForGeneration):
(JSC::B3::Air::GenerateAndAllocateRegisters::generate):
* Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackByLinearScan.cpp:
(JSC::B3::Air::allocateRegistersAndStackByLinearScan):
* Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:
(JSC::B3::Air::allocateRegistersByGraphColoring):
* Source/JavaScriptCore/b3/air/AirAllocateStackByGraphColoring.cpp:
(JSC::B3::Air::allocateStackByGraphColoring):
* Source/JavaScriptCore/b3/air/AirArg.cpp:
(JSC::B3::Air::Arg::canRepresent const):
(JSC::B3::Air::Arg::jsHash const):
(JSC::B3::Air::Arg::dump const):
(WTF::printInternal):
* Source/JavaScriptCore/b3/air/AirArg.h:
(JSC::B3::Air::Arg::simdInfo):
(JSC::B3::Air::Arg::logScale):
(JSC::B3::Air::Arg::isSIMDInfo const):
(JSC::B3::Air::Arg::isGP const):
(JSC::B3::Air::Arg::isFP const):
(JSC::B3::Air::Arg::isValidForm const):
(JSC::B3::Air::Arg::simdInfo const):
(JSC::B3::Air::Arg::simdSignMode const):
* Source/JavaScriptCore/b3/air/AirCCallSpecial.cpp:
(JSC::B3::Air::CCallSpecial::CCallSpecial):
(JSC::B3::Air::CCallSpecial::forEachArg):
* Source/JavaScriptCore/b3/air/AirCCallingConvention.cpp:
(JSC::B3::Air::cCallResult):
* Source/JavaScriptCore/b3/air/AirEmitShuffle.h:
(JSC::B3::Air::moveFor):
* Source/JavaScriptCore/b3/air/AirFormTable.h:
(JSC::B3::Air::encodeFormWidth):
(JSC::B3::Air::decodeFormWidth):
* Source/JavaScriptCore/b3/air/AirHelpers.h:
(JSC::B3::Air::moveForType):
(JSC::B3::Air::relaxedMoveForType):
* Source/JavaScriptCore/b3/air/AirInstInlines.h:
(JSC::B3::Air::isVectorSwizzle2Valid):
* Source/JavaScriptCore/b3/air/AirLogRegisterPressure.cpp:
(JSC::B3::Air::logRegisterPressure):
* Source/JavaScriptCore/b3/air/AirLowerAfterRegAlloc.cpp:
(JSC::B3::Air::lowerAfterRegAlloc):
* Source/JavaScriptCore/b3/air/AirLowerMacros.cpp:
(JSC::B3::Air::lowerMacros):
* Source/JavaScriptCore/b3/air/AirLowerStackArgs.cpp:
(JSC::B3::Air::lowerStackArgs):
* Source/JavaScriptCore/b3/air/AirOpcode.opcodes:
* Source/JavaScriptCore/b3/air/AirRegLiveness.cpp:
(JSC::B3::Air::RegLiveness::RegLiveness):
(JSC::B3::Air::RegLiveness::LocalCalcForUnifiedTmpLiveness::LocalCalcForUnifiedTmpLiveness):
(JSC::B3::Air::RegLiveness::LocalCalcForUnifiedTmpLiveness::execute):
* Source/JavaScriptCore/b3/air/AirTmpWidth.cpp:
(JSC::B3::Air::TmpWidth::recompute):
* Source/JavaScriptCore/b3/air/AirValidate.cpp:
* Source/JavaScriptCore/b3/air/opcode_generator.rb:
* Source/JavaScriptCore/bytecode/BytecodeDumper.cpp:
(JSC::BytecodeDumper<Block>::constantName const):
(JSC::Wasm::BytecodeDumper::formatConstant const):
* Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.cpp:
(JSC::ARM64Disassembler::A64DOpcode::appendVectorRegisterName):
(JSC::ARM64Disassembler::A64DOpcodeLoadStoreImmediate::format):
(JSC::ARM64Disassembler::A64DOpcodeVectorDataProcessingLogical1Source::format):
(JSC::ARM64Disassembler::A64DOpcodeVectorDataProcessingLogical1Source::opName):
(JSC::ARM64Disassembler::A64DOpcodeVectorDataProcessingLogical2Source::format):
(JSC::ARM64Disassembler::A64DOpcodeVectorDataProcessingLogical2Source::opName):
* Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.h:
(JSC::ARM64Disassembler::A64DOpcode::appendSIMDLaneIndexAndType):
(JSC::ARM64Disassembler::A64DOpcode::appendSIMDLaneType):
(JSC::ARM64Disassembler::A64DOpcodeVectorDataProcessingLogical1Source::rd):
(JSC::ARM64Disassembler::A64DOpcodeVectorDataProcessingLogical1Source::rt):
(JSC::ARM64Disassembler::A64DOpcodeVectorDataProcessingLogical1Source::op10_15):
(JSC::ARM64Disassembler::A64DOpcodeVectorDataProcessingLogical1Source::imm5):
(JSC::ARM64Disassembler::A64DOpcodeVectorDataProcessingLogical1Source::q):
(JSC::ARM64Disassembler::A64DOpcodeVectorDataProcessingLogical2Source::rd):
(JSC::ARM64Disassembler::A64DOpcodeVectorDataProcessingLogical2Source::rn):
(JSC::ARM64Disassembler::A64DOpcodeVectorDataProcessingLogical2Source::op10_15):
(JSC::ARM64Disassembler::A64DOpcodeVectorDataProcessingLogical2Source::rm):
(JSC::ARM64Disassembler::A64DOpcodeVectorDataProcessingLogical2Source::q):
* Source/JavaScriptCore/generator/DSL.rb:
* Source/JavaScriptCore/generator/Opcode.rb:
* Source/JavaScriptCore/generator/Section.rb:
* Source/JavaScriptCore/generator/main.rb:
* Source/JavaScriptCore/jit/AssemblyHelpersSpoolers.h:
(JSC::AssemblyHelpers::Spooler::execute):
(JSC::AssemblyHelpers::Spooler::executeVector):
(JSC::AssemblyHelpers::LoadRegSpooler::loadVector):
(JSC::AssemblyHelpers::LoadRegSpooler::executeVector):
(JSC::AssemblyHelpers::StoreRegSpooler::storeVector):
(JSC::AssemblyHelpers::StoreRegSpooler::executeVector):
* Source/JavaScriptCore/jit/RegisterAtOffset.h:
(JSC::RegisterAtOffset::RegisterAtOffset):
* Source/JavaScriptCore/jit/ScratchRegisterAllocator.cpp:
(JSC::ScratchRegisterAllocator::allocateScratch):
(JSC::ScratchRegisterAllocator::preserveReusedRegistersByPushing):
(JSC::ScratchRegisterAllocator::restoreReusedRegistersByPopping):
(JSC::ScratchRegisterAllocator::preserveRegistersToStackForCall):
(JSC::ScratchRegisterAllocator::restoreRegistersFromStackForCall):
* Source/JavaScriptCore/jit/Width.h:
(JSC::conservativeWidth):
(JSC::elementSize):
* Source/JavaScriptCore/runtime/Options.cpp:
(JSC::Options::recomputeDependentOptions):
* Source/JavaScriptCore/runtime/OptionsList.h:
* Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::extractLaneAirOp):
(JSC::Wasm::AirIRGenerator::addExtractLane):
(JSC::Wasm::AirIRGenerator::v128):
(JSC::Wasm::AirIRGenerator::tmpForType):
(JSC::Wasm::AirIRGenerator::moveOpForValueType):
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::addLocal):
(JSC::Wasm::AirIRGenerator::addConstant):
(JSC::Wasm::AirIRGenerator::addSIMDLoad):
(JSC::Wasm::AirIRGenerator::addSIMDStore):
(JSC::Wasm::AirIRGenerator::emitCatchImpl):
(JSC::Wasm::AirIRGenerator::addThrow):
(JSC::Wasm::AirIRGenerator::addRethrow):
(JSC::Wasm::AirIRGenerator::emitCallPatchpoint):
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
* Source/JavaScriptCore/wasm/WasmCallingConvention.h:
(JSC::Wasm::WasmCallingConvention::marshallLocation const):
* Source/JavaScriptCore/wasm/WasmFormat.h:
(JSC::Wasm::isValueType):
* Source/JavaScriptCore/wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser::TypedExpression::dump const):
(JSC::Wasm::FunctionParser<Context>::simd):
(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):
* Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp:
(JSC::Wasm::LLIntGenerator::callInformationForCaller):
(JSC::Wasm::LLIntGenerator::callInformationForCallee):
(JSC::Wasm::LLIntGenerator::addArguments):
(JSC::Wasm::LLIntGenerator::addCatchToUnreachable):
* Source/JavaScriptCore/wasm/WasmParser.h:
(JSC::Wasm::Parser<SuccessType>::parseImmByteArray16):
(JSC::Wasm::Parser<SuccessType>::parseImmLaneIdx):
* Source/JavaScriptCore/wasm/WasmThunks.cpp:
(JSC::Wasm::triggerOMGEntryTierUpThunkGenerator):
* Source/JavaScriptCore/wasm/WasmTypeDefinition.h:
(JSC::Wasm::scalarType):
(JSC::Wasm::typeKindSizeInBytes):
* Source/JavaScriptCore/wasm/generateWasmOpsHeader.py:
* Source/JavaScriptCore/wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper):
* Source/JavaScriptCore/wasm/js/JSWebAssemblyStruct.cpp:
(JSC::JSWebAssemblyStruct::set):
* Source/JavaScriptCore/wasm/js/WasmToJS.cpp:
(JSC::Wasm::wasmToJS):
* Source/JavaScriptCore/wasm/wasm.json:

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




More information about the webkit-changes mailing list