Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 84f83abd45c912c01cee7bda9deffc2bc74dd85c
https://github.com/WebKit/WebKit/commit/84f83abd45c912c01cee7bda9deffc2bc74dd85c
Author: Trial <trial@local>
Date: 2026-08-03 (Mon, 03 Aug 2026)
Changed paths:
M Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
M Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h
M Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
M Source/JavaScriptCore/jit/AssemblyHelpers.h
M Source/JavaScriptCore/jit/CCallHelpers.h
M Source/JavaScriptCore/jit/JITAddGenerator.cpp
M Source/JavaScriptCore/jit/JITArithmetic.cpp
M Source/JavaScriptCore/jit/JITBitAndGenerator.h
M Source/JavaScriptCore/jit/JITBitBinaryOpGenerator.h
M Source/JavaScriptCore/jit/JITBitOrGenerator.h
M Source/JavaScriptCore/jit/JITBitXorGenerator.h
M Source/JavaScriptCore/jit/JITDivGenerator.cpp
M Source/JavaScriptCore/jit/JITLeftShiftGenerator.cpp
M Source/JavaScriptCore/jit/JITLeftShiftGenerator.h
M Source/JavaScriptCore/jit/JITMulGenerator.cpp
M Source/JavaScriptCore/jit/JITNegGenerator.cpp
M Source/JavaScriptCore/jit/JITOpcodes.cpp
M Source/JavaScriptCore/jit/JITRightShiftGenerator.cpp
M Source/JavaScriptCore/jit/JITRightShiftGenerator.h
M Source/JavaScriptCore/jit/JITSubGenerator.cpp
M Source/JavaScriptCore/jit/ThunkGenerators.cpp
M Source/JavaScriptCore/lol/LOLJIT.cpp
M Source/JavaScriptCore/wasm/js/JSToWasm.cpp
M Source/JavaScriptCore/wasm/js/WasmToJS.cpp
Log Message:
-----------
[JSC] Remove various scratch registers as branchIfNumber etc. no longer need
to take a scratch for 64bit
https://bugs.webkit.org/show_bug.cgi?id=320861
rdar://183890729
Reviewed by Sosuke Suzuki.
We had unnecessary scratch registers on 64bit because 32bit
branchIfNotNumber etc. requires a scratch register which was not
necessary in 64bit. But now 32bit JIT is removed so we can remove this
scratch register and remove the allocation of that. This patch
simplifies the code using branchIfNumber etc. and remove unnecessary
scratch register allocations.
Also drop extraGPRArgs from CCallHelpers as it is no longer necessary. It
was used only on 32bit to represent 64bit values in two registers.
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitUntypedOrAnyBigIntBitOp):
(JSC::DFG::SpeculativeJIT::compileNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality):
(JSC::DFG::SpeculativeJIT::speculateNotDouble):
(JSC::DFG::SpeculativeJIT::speculateNeitherDoubleNorHeapBigInt):
(JSC::DFG::SpeculativeJIT::speculateNeitherDoubleNorHeapBigIntNorString):
(JSC::DFG::SpeculativeJIT::emitSwitchImm):
(JSC::DFG::SpeculativeJIT::compileNormalizeMapKey):
(JSC::DFG::SpeculativeJIT::compileToPropertyKeyOrNumber):
(JSC::DFG::SpeculativeJIT::compileToNumeric):
(JSC::DFG::SpeculativeJIT::compileCallNumberConstructor):
(JSC::DFG::SpeculativeJIT::compileProfileType):
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileNeitherDoubleNorHeapBigIntToNotDoubleStrictEquality):
* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
* Source/JavaScriptCore/jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::storeValue):
(JSC::AssemblyHelpers::branchIfNumber):
(JSC::AssemblyHelpers::branchIfNotNumber):
(JSC::AssemblyHelpers::emitTypeOf):
* Source/JavaScriptCore/jit/CCallHelpers.h:
(JSC::CCallHelpers::ArgCollection::ArgCollection):
(JSC::CCallHelpers::ArgCollection::pushRegArg):
(JSC::CCallHelpers::ArgCollection::pushNonArg):
(JSC::CCallHelpers::ArgCollection::addGPRArg):
(JSC::CCallHelpers::ArgCollection::addStackArg):
(JSC::CCallHelpers::ArgCollection::addPoke):
(JSC::CCallHelpers::ArgCollection::argCount):
(JSC::CCallHelpers::calculatePokeOffset):
(JSC::CCallHelpers::pokeForArgument):
(JSC::CCallHelpers::stackAligned):
(JSC::CCallHelpers::marshallArgumentRegister):
(JSC::CCallHelpers::setupArgumentsImpl):
(JSC::CCallHelpers::setupArgumentsEntryImpl):
(JSC::CCallHelpers::setupArguments):
(JSC::CCallHelpers::setupArgumentsForIndirectCall):
(JSC::CCallHelpers::ArgCollection::pushExtraRegArg): Deleted.
(JSC::CCallHelpers::ArgCollection::addGPRExtraArg): Deleted.
* Source/JavaScriptCore/jit/JITAddGenerator.cpp:
(JSC::JITAddGenerator::generateFastPath):
* Source/JavaScriptCore/jit/JITArithmetic.cpp:
(JSC::JIT::emit_compareSlowImpl):
(JSC::JIT::emit_op_pow):
(JSC::JIT::emitBitBinaryOpFastPath):
* Source/JavaScriptCore/jit/JITBitAndGenerator.h:
(JSC::JITBitAndGenerator::JITBitAndGenerator):
* Source/JavaScriptCore/jit/JITBitBinaryOpGenerator.h:
(JSC::JITBitBinaryOpGenerator::JITBitBinaryOpGenerator):
* Source/JavaScriptCore/jit/JITBitOrGenerator.h:
(JSC::JITBitOrGenerator::JITBitOrGenerator):
* Source/JavaScriptCore/jit/JITBitXorGenerator.h:
(JSC::JITBitXorGenerator::JITBitXorGenerator):
* Source/JavaScriptCore/jit/JITDivGenerator.cpp:
(JSC::JITDivGenerator::loadOperand):
* Source/JavaScriptCore/jit/JITLeftShiftGenerator.cpp:
(JSC::JITLeftShiftGenerator::generateFastPath):
* Source/JavaScriptCore/jit/JITLeftShiftGenerator.h:
(JSC::JITLeftShiftGenerator::JITLeftShiftGenerator):
* Source/JavaScriptCore/jit/JITMulGenerator.cpp:
(JSC::JITMulGenerator::generateInline):
(JSC::JITMulGenerator::generateFastPath):
* Source/JavaScriptCore/jit/JITNegGenerator.cpp:
(JSC::JITNegGenerator::generateInline):
(JSC::JITNegGenerator::generateFastPath):
* Source/JavaScriptCore/jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_mov):
(JSC::JIT::emit_op_to_property_key_or_number):
(JSC::JIT::emit_op_to_number):
(JSC::JIT::emit_op_to_numeric):
(JSC::JIT::emit_op_switch_imm):
(JSC::JIT::emit_op_profile_type):
* Source/JavaScriptCore/jit/JITRightShiftGenerator.cpp:
(JSC::JITRightShiftGenerator::generateFastPath):
* Source/JavaScriptCore/jit/JITRightShiftGenerator.h:
(JSC::JITRightShiftGenerator::JITRightShiftGenerator):
* Source/JavaScriptCore/jit/JITSubGenerator.cpp:
(JSC::JITSubGenerator::generateInline):
(JSC::JITSubGenerator::generateFastPath):
* Source/JavaScriptCore/jit/ThunkGenerators.cpp:
(JSC::numberConstructorCallThunkGenerator):
* Source/JavaScriptCore/lol/LOLJIT.cpp:
(JSC::LOL::LOLJIT::emitCompareSlowImpl):
(JSC::LOL::LOLJIT::emit_op_to_number):
(JSC::LOL::LOLJIT::emit_op_to_numeric):
(JSC::LOL::LOLJIT::emit_op_to_property_key_or_number):
(JSC::LOL::LOLJIT::emit_op_switch_imm):
(JSC::LOL::LOLJIT::emit_op_lshift):
(JSC::LOL::LOLJIT::emitBitBinaryOpFastPath):
* Source/JavaScriptCore/wasm/js/JSToWasm.cpp:
(JSC::Wasm::RTT::jsToWasmICEntrypoint const):
* Source/JavaScriptCore/wasm/js/WasmToJS.cpp:
(JSC::Wasm::wasmToJS):
Canonical link: https://commits.webkit.org/318511@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications