[webkit-changes] [WebKit/WebKit] be8ee0: [JSC] Exclude fpTempRegister correctly in new wasm...

Yusuke Suzuki noreply at github.com
Fri Feb 17 22:31:21 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: be8ee0dcf7af603a8aac96d2039e0043433a1644
      https://github.com/WebKit/WebKit/commit/be8ee0dcf7af603a8aac96d2039e0043433a1644
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2023-02-17 (Fri, 17 Feb 2023)

  Changed paths:
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
    M Source/JavaScriptCore/b3/B3LowerMacros.cpp
    M Source/JavaScriptCore/b3/air/testair.cpp
    M Source/JavaScriptCore/b3/testb3_4.cpp
    M Source/JavaScriptCore/b3/testb3_5.cpp
    M Source/JavaScriptCore/b3/testb3_6.cpp
    M Source/JavaScriptCore/b3/testb3_7.cpp
    M Source/JavaScriptCore/b3/testb3_8.cpp
    M Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.h
    M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
    M Source/JavaScriptCore/jit/RegisterSet.cpp
    M Source/JavaScriptCore/jit/RegisterSet.h
    M Source/JavaScriptCore/jit/SIMDInfo.cpp
    M Source/JavaScriptCore/wasm/WasmAirIRGenerator32_64.cpp
    M Source/JavaScriptCore/wasm/WasmAirIRGenerator64.cpp
    M Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h
    M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
    M Source/JavaScriptCore/wasm/WasmCallingConvention.cpp

  Log Message:
  -----------
  [JSC] Exclude fpTempRegister correctly in new wasm BBQ JIT
https://bugs.webkit.org/show_bug.cgi?id=252523
rdar://105624120

Reviewed by Mark Lam.

This patch adds fpTempRegister to excluded register set in new wasm BBQ JIT to avoid using it for the other purpose.
This is very rarely used, but let's just exclude it to avoid encoding a bug.
We also clean up register set construction code to make it clear what is excluded and what is included.

* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
* Source/JavaScriptCore/b3/B3LowerMacros.cpp:
* Source/JavaScriptCore/b3/air/testair.cpp:
* Source/JavaScriptCore/b3/testb3_4.cpp:
(testStoreRelAddFenceLoadAcq8):
(testPatchpointLotsOfLateAnys):
* Source/JavaScriptCore/b3/testb3_5.cpp:
(testPatchpointWithStackArgumentResult):
(testPatchpointWithAnyResult):
* Source/JavaScriptCore/b3/testb3_6.cpp:
(testInterpreter):
(testTerminalPatchpointThatNeedsToBeSpilled):
(testTerminalPatchpointThatNeedsToBeSpilled2):
(testPatchpointTerminalReturnValue):
* Source/JavaScriptCore/b3/testb3_7.cpp:
(testFastTLSLoad):
(testFastTLSStore):
(testShuffleDoesntTrashCalleeSaves):
(testSimpleTuplePair):
(testSimpleTuplePairUnused):
(testSimpleTuplePairStack):
(tailDupedTuplePair):
(tuplePairVariableLoop):
(tupleNestedLoop):
* Source/JavaScriptCore/b3/testb3_8.cpp:
(testWasmAddressDoesNotCSE):
* Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.h:
(JSC::DFG::adjustFrameAndStackInOSRExitCompilerThunk):
* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::lower):
(JSC::FTL::DFG::LowerDFGToB3::compileUnaryMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileBinaryMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByValWithThis):
(JSC::FTL::DFG::LowerDFGToB3::getPrivateName):
(JSC::FTL::DFG::LowerDFGToB3::compilePrivateBrandAccess):
(JSC::FTL::DFG::LowerDFGToB3::compilePutPrivateName):
(JSC::FTL::DFG::LowerDFGToB3::cachedPutById):
(JSC::FTL::DFG::LowerDFGToB3::emitGetTypedArrayByteOffsetExceptSettingResult):
(JSC::FTL::DFG::LowerDFGToB3::typedArrayLength):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByValImpl):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileDelBy):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
* Source/JavaScriptCore/jit/RegisterSet.cpp:
(JSC::RegisterSetBuilder::macroClobberedGPRs):
(JSC::RegisterSetBuilder::macroClobberedFPRs):
(JSC::RegisterSetBuilder::macroClobberedRegisters): Deleted.
* Source/JavaScriptCore/jit/RegisterSet.h:
* Source/JavaScriptCore/jit/SIMDInfo.cpp:
(WTF::printInternal):
* Source/JavaScriptCore/wasm/WasmAirIRGenerator32_64.cpp:
(JSC::Wasm::AirIRGenerator32::emitCatchImpl):
(JSC::Wasm::AirIRGenerator32::emitCallPatchpoint):
(JSC::Wasm::AirIRGenerator32::addF32ConvertUI32):
(JSC::Wasm::AirIRGenerator32::addF64ConvertUI32):
* Source/JavaScriptCore/wasm/WasmAirIRGenerator64.cpp:
(JSC::Wasm::AirIRGenerator64::emitCatchImpl):
(JSC::Wasm::AirIRGenerator64::emitCallPatchpoint):
(JSC::Wasm::AirIRGenerator64::emitTailCallPatchpoint):
(JSC::Wasm::AirIRGenerator64::addF64ConvertUI64):
(JSC::Wasm::AirIRGenerator64::addF32ConvertUI64):
(JSC::Wasm::AirIRGenerator64::addUncheckedFloatingPointTruncation):
* Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h:
(JSC::Wasm::ExpressionType>::restoreWebAssemblyGlobalState):
(JSC::Wasm::ExpressionType>::emitEntryTierUpCheck):
(JSC::Wasm::ExpressionType>::emitLoopTierUpCheck):
(JSC::Wasm::ExpressionType>::addSwitch):
(JSC::Wasm::ExpressionType>::emitIndirectCall):
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::reloadMemoryRegistersFromInstance):
(JSC::Wasm::B3IRGenerator::emitIndirectCall):
(JSC::Wasm::B3IRGenerator::truncSaturated):
(JSC::Wasm::B3IRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::B3IRGenerator::emitCatchImpl):
(JSC::Wasm::B3IRGenerator::createCallPatchpoint):
(JSC::Wasm::B3IRGenerator::createTailCallPatchpoint):
(JSC::Wasm::B3IRGenerator::addF64ConvertUI64):
(JSC::Wasm::B3IRGenerator::addF32ConvertUI64):
(JSC::Wasm::B3IRGenerator::addI64TruncUF64):
(JSC::Wasm::B3IRGenerator::addI64TruncUF32):
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJIT::BBQJIT):
* Source/JavaScriptCore/wasm/WasmCallingConvention.cpp:
(JSC::Wasm::wasmCallingConvention):

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




More information about the webkit-changes mailing list