haikuwebkit/Source/JavaScriptCore/ftl
Yusuke Suzuki 9c8a599a84 [JSC] Simplify moveIntsToDouble
https://bugs.webkit.org/show_bug.cgi?id=229351

Reviewed by Saam Barati.

MacroAssembler::moveIntsToDouble required scratch FPRReg. But it was only required for MacroAssemblerX86, and it is already removed.
This means that we no longer need this scratch FPRReg. This change makes a lot of IC code, property access code simpler.
This patch removes that scratch FPRReg, and removed scratch FPRReg of many arithmetic ICs. This patch is important for PutByVal modern
IC since some of property access requires FPRReg because of MacroAssembler::moveIntsToDouble, and it requires adding new m_scratch2FPR
to AccessCase. But after this simplification, this is no longer necessary.

* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::moveIntsToDouble):
* assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::moveIntsToDouble):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::emitUntypedOrBigIntRightShiftBitOp):
(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileValueSub):
(JSC::DFG::SpeculativeJIT::compileMathIC):
(JSC::DFG::SpeculativeJIT::compileValueNegate):
(JSC::DFG::SpeculativeJIT::compileValueMul):
(JSC::DFG::SpeculativeJIT::speculateRealNumber):
(JSC::DFG::SpeculativeJIT::compileNormalizeMapKey):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::unboxDouble):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileBinaryMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
* jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::emitConvertValueToBoolean):
(JSC::AssemblyHelpers::branchIfValue):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::unboxDoubleNonDestructive):
(JSC::AssemblyHelpers::unboxDouble):
* jit/JITAddGenerator.cpp:
(JSC::JITAddGenerator::generateFastPath):
* jit/JITAddGenerator.h:
(JSC::JITAddGenerator::JITAddGenerator):
* jit/JITArithmetic.cpp:
(JSC::JIT::emitRightShiftFastPath):
(JSC::JIT::emitMathICFast):
* jit/JITDivGenerator.cpp:
(JSC::JITDivGenerator::loadOperand):
* jit/JITMulGenerator.cpp:
(JSC::JITMulGenerator::generateInline):
(JSC::JITMulGenerator::generateFastPath):
* jit/JITMulGenerator.h:
(JSC::JITMulGenerator::JITMulGenerator):
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitFloatTypedArrayPutByVal):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitGenericContiguousPutByVal):
* jit/JITRightShiftGenerator.cpp:
(JSC::JITRightShiftGenerator::generateFastPath):
* jit/JITRightShiftGenerator.h:
(JSC::JITRightShiftGenerator::JITRightShiftGenerator):
* jit/JITSubGenerator.cpp:
(JSC::JITSubGenerator::generateInline):
(JSC::JITSubGenerator::generateFastPath):
* jit/JITSubGenerator.h:
(JSC::JITSubGenerator::JITSubGenerator):


Canonical link: https://commits.webkit.org/240770@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281355 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 00:54:50 +00:00
..
FTLAbbreviatedTypes.h
FTLAbstractHeap.cpp Non-unified build fixes, mid April 2021 edition 2021-04-21 19:42:35 +00:00
FTLAbstractHeap.h Use Hasher more, remove IntegerHasher, fix hashing-related mistakes 2021-04-08 02:19:20 +00:00
FTLAbstractHeapRepository.cpp
FTLAbstractHeapRepository.h for-in should only emit one loop in bytecode 2021-08-07 21:38:59 +00:00
FTLAvailableRecovery.cpp
FTLAvailableRecovery.h
FTLCapabilities.cpp for-in should only emit one loop in bytecode 2021-08-07 21:38:59 +00:00
FTLCapabilities.h
FTLCommonValues.cpp
FTLCommonValues.h
FTLCompile.cpp display-profiler-output should be able to print disassembly for the FTL 2021-07-08 18:54:16 +00:00
FTLCompile.h Merge all the JIT worklists into a shared worklist 2021-05-26 15:15:22 +00:00
FTLExceptionTarget.cpp
FTLExceptionTarget.h
FTLExitArgument.cpp
FTLExitArgument.h
FTLExitArgumentForOperand.cpp
FTLExitArgumentForOperand.h
FTLExitPropertyValue.cpp
FTLExitPropertyValue.h
FTLExitTimeObjectMaterialization.cpp
FTLExitTimeObjectMaterialization.h
FTLExitValue.cpp
FTLExitValue.h
FTLFail.cpp
FTLFail.h
FTLForOSREntryJITCode.cpp
FTLForOSREntryJITCode.h [JSC] Use FixedVector more in JSC 2021-04-07 06:48:02 +00:00
FTLFormattedValue.h
FTLGeneratedFunction.h
FTLJITCode.cpp Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
FTLJITCode.h Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
FTLJITFinalizer.cpp Finalize DFG/FTL code refs on the compiler threads 2021-05-25 18:16:47 +00:00
FTLJITFinalizer.h Finalize DFG/FTL code refs on the compiler threads 2021-05-25 18:16:47 +00:00
FTLLazySlowPath.cpp Add support to collect stats on cumulative LinkBuffer linked sizes based on profiles. 2021-05-10 23:21:41 +00:00
FTLLazySlowPath.h
FTLLazySlowPathCall.h
FTLLink.cpp display-profiler-output should be able to print disassembly for the FTL 2021-07-08 18:54:16 +00:00
FTLLink.h
FTLLocation.cpp
FTLLocation.h
FTLLowerDFGToB3.cpp [JSC] Simplify moveIntsToDouble 2021-08-21 00:54:50 +00:00
FTLLowerDFGToB3.h
FTLLoweredNodeValue.h
FTLOSREntry.cpp Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
FTLOSREntry.h
FTLOSRExit.cpp [JSC] Make more DFG/FTL data FixedVector/Vector 2021-04-18 07:14:07 +00:00
FTLOSRExit.h [JSC] Make more DFG/FTL data FixedVector/Vector 2021-04-18 07:14:07 +00:00
FTLOSRExitCompiler.cpp Move setting of scratch buffer active lengths to the runtime functions. 2021-06-15 16:09:27 +00:00
FTLOSRExitCompiler.h
FTLOSRExitHandle.cpp [JSC] Make more DFG/FTL data FixedVector/Vector 2021-04-18 07:14:07 +00:00
FTLOSRExitHandle.h [JSC] Make more DFG/FTL data FixedVector/Vector 2021-04-18 07:14:07 +00:00
FTLOperations.cpp Move setting of scratch buffer active lengths to the runtime functions. 2021-06-15 16:09:27 +00:00
FTLOperations.h [JSC] DFG / FTL should inline switch_string 2021-04-22 08:27:42 +00:00
FTLOutput.cpp AirStackSlot's uint16_t byte size is too small 2021-07-22 21:37:02 +00:00
FTLOutput.h Revert bad assert about the number of upsilons going into a phi 2021-08-09 21:38:38 +00:00
FTLPatchpointExceptionHandle.cpp Finalize DFG/FTL code refs on the compiler threads 2021-05-25 18:16:47 +00:00
FTLPatchpointExceptionHandle.h
FTLRecoveryOpcode.cpp
FTLRecoveryOpcode.h
FTLSaveRestore.cpp Use ldp and stp more for saving / restoring registers on ARM64. 2021-06-25 00:06:56 +00:00
FTLSaveRestore.h Use ldp and stp more for saving / restoring registers on ARM64. 2021-06-25 00:06:56 +00:00
FTLSelectPredictability.h
FTLSlowPathCall.cpp [JSC] Use DataIC for AccessCase 2021-06-09 11:17:36 +00:00
FTLSlowPathCall.h [JSC] Use DataIC for AccessCase 2021-06-09 11:17:36 +00:00
FTLSlowPathCallKey.cpp [JSC] Use DataIC for AccessCase 2021-06-09 11:17:36 +00:00
FTLSlowPathCallKey.h RegisterSet should be smaller 2021-06-16 18:08:37 +00:00
FTLSnippetParams.cpp Drop the FTL(DFG) graph after lowering to B3 2021-06-16 18:34:23 +00:00
FTLSnippetParams.h Drop the FTL(DFG) graph after lowering to B3 2021-06-16 18:34:23 +00:00
FTLStackmapArgumentList.h
FTLState.cpp Non-unified build fixes, mid-July 2021 edition 2021-07-15 12:40:39 +00:00
FTLState.h display-profiler-output should be able to print disassembly for the FTL 2021-07-08 18:54:16 +00:00
FTLSwitchCase.h
FTLThunks.cpp Use ldp and stp more for saving / restoring registers on ARM64. 2021-06-25 00:06:56 +00:00
FTLThunks.h Grab the lock in FTL::Thunks::keyForSlowPathCallThunk 2021-07-16 23:40:00 +00:00
FTLTypedPointer.h
FTLValueFromBlock.h
FTLValueRange.cpp
FTLValueRange.h
FTLWeight.h
FTLWeightedTarget.h