Skip to content

Commit 471af61

Browse files
committed
[JSC] Remove JSValueRegs
https://bugs.webkit.org/show_bug.cgi?id=322929 rdar://186190599 Reviewed by Justin Michaud. This patch removes JSValueRegs and related operations / classes. This was introduced just for 32bit since 32bit represents JSValue in two registers. Given that 32bit JIT is dropped, we can drop this abstraction and it makes 64bit JIT code significantly simplified. We have several follow-up changes: BaselineJITRegisters should use more dense set of registers as we no longer need to skip regT1 / regT3 etc. * Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj: * Source/JavaScriptCore/Sources.txt: * Source/JavaScriptCore/b3/B3ValueRep.h: (JSC::B3::ValueRep::ValueRep): * Source/JavaScriptCore/bytecode/AccessCase.cpp: (JSC::AccessCase::createTransition): * Source/JavaScriptCore/bytecode/ArithProfile.cpp: (JSC::ArithProfile<BitfieldType>::emitObserveResult): * Source/JavaScriptCore/bytecode/ArithProfile.h: * Source/JavaScriptCore/bytecode/InlineAccess.cpp: (JSC::InlineAccess::dumpCacheSizesAndCrash): (JSC::InlineAccess::generateSelfPropertyAccess): (JSC::InlineAccess::generateSelfPropertyReplace): (JSC::InlineAccess::generateArrayLength): (JSC::InlineAccess::generateStringLength): (JSC::InlineAccess::generateSelfInAccess): * Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp: (JSC::InlineCacheCompiler::emitDataICCheckUid): (JSC::getByIdSlowPathCodeGenerator): (JSC::getByIdWithThisSlowPathCodeGenerator): (JSC::getByValSlowPathCodeGenerator): (JSC::getPrivateNameSlowPathCodeGenerator): (JSC::getByValWithThisSlowPathCodeGenerator): (JSC::putByIdSlowPathCodeGenerator): (JSC::putByValSlowPathCodeGenerator): (JSC::instanceOfSlowPathCodeGenerator): (JSC::delByIdSlowPathCodeGenerator): (JSC::delByValSlowPathCodeGenerator): (JSC::InlineCacheCompiler::generateWithGuard): (JSC::InlineCacheCompiler::generateAccessCase): (JSC::InlineCacheCompiler::emitDOMJITGetter): (JSC::InlineCacheCompiler::emitModuleNamespaceLoad): (JSC::InlineCacheCompiler::emitProxyObjectAccess): (JSC::InlineCacheCompiler::emitIntrinsicGetter): (JSC::loadHandlerImpl): (JSC::getByIdLoadHandlerImpl): (JSC::getByIdMissHandler): (JSC::customGetterHandlerImpl): (JSC::getByIdCustomHandlerImpl): (JSC::getterCallFromGetterSetterImpl): (JSC::getterHandlerImpl): (JSC::getByIdGetterHandler): (JSC::getByIdMegamorphicGetterHandler): (JSC::getByIdProxyObjectLoadHandler): (JSC::getByIdModuleNamespaceLoadHandler): (JSC::putByIdReplaceHandler): (JSC::transitionHandlerImpl): (JSC::putByIdTransitionHandlerImpl): (JSC::putByIdTransitionReallocatingOutOfLineHandler): (JSC::customSetterHandlerImpl): (JSC::putByIdCustomHandlerImpl): (JSC::setterHandlerImpl): (JSC::putByIdSetterHandlerImpl): (JSC::inByIdInHandlerImpl): (JSC::deleteByIdDeleteHandler): (JSC::deleteByIdIgnoreHandlerImpl): (JSC::instanceOfHandlerImpl): (JSC::getByValLoadHandlerImpl): (JSC::getByValMissHandlerImpl): (JSC::emitNonStringPrimitiveKeyCheck): (JSC::getByValNonStringPrimitiveKeyLoadHandlerImpl): (JSC::getByValNonStringPrimitiveKeyMissHandlerImpl): (JSC::putByValNonStringPrimitiveKeyReplaceHandlerImpl): (JSC::putByValNonStringPrimitiveKeyTransitionHandlerImpl): (JSC::putByValNonStringPrimitiveKeyTransitionOutOfLineHandlerImpl): (JSC::getByValCustomHandlerImpl): (JSC::getByValGetterHandlerImpl): (JSC::putByValReplaceHandlerImpl): (JSC::putByValTransitionHandlerImpl): (JSC::putByValTransitionOutOfLineHandlerImpl): (JSC::putByValCustomHandlerImpl): (JSC::putByValSetterHandlerImpl): (JSC::inByValInHandlerImpl): (JSC::deleteByValDeleteHandlerImpl): (JSC::deleteByValIgnoreHandlerImpl): (JSC::checkPrivateBrandHandler): (JSC::setPrivateBrandHandler): (JSC::InlineCacheCompiler::compileGetByDOMJITHandler): * Source/JavaScriptCore/bytecode/InlineCacheCompiler.h: * Source/JavaScriptCore/bytecode/MethodOfGettingAValueProfile.cpp: (JSC::MethodOfGettingAValueProfile::emitReportValue const): * Source/JavaScriptCore/bytecode/MethodOfGettingAValueProfile.h: * Source/JavaScriptCore/bytecode/PropertyInlineCache.cpp: (JSC::PropertyInlineCache::registers const): * Source/JavaScriptCore/bytecode/PropertyInlineCache.h: (JSC::PropertyInlineCache::valueRegs const): Deleted. (JSC::PropertyInlineCache::propertyRegs const): Deleted. (JSC::PropertyInlineCache::baseRegs const): Deleted. * Source/JavaScriptCore/bytecode/ValueRecovery.h: (JSC::ValueRecovery::isInRegisters const): (JSC::ValueRecovery::gpr const): (JSC::ValueRecovery::isInJSValueRegs const): Deleted. * Source/JavaScriptCore/dfg/DFGArrayifySlowPathGenerator.h: * Source/JavaScriptCore/dfg/DFGGenerationInfo.h: (JSC::DFG::GenerationInfo::fpr): (JSC::DFG::GenerationInfo::jsValueRegs): Deleted. * Source/JavaScriptCore/dfg/DFGLazyJSValue.cpp: (JSC::DFG::LazyJSValue::emit const): * Source/JavaScriptCore/dfg/DFGLazyJSValue.h: * Source/JavaScriptCore/dfg/DFGOSRExit.cpp: (JSC::DFG::OSRExit::emitRestoreArguments): (JSC::DFG::OSRExit::compileExit): * Source/JavaScriptCore/dfg/DFGSaneStringGetByValSlowPathGenerator.h: * Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h: (JSC::DFG::CallSlowPathGenerator::CallSlowPathGenerator): (JSC::DFG::CallSlowPathGenerator::tearDown): * Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileInvalidationPoint): (JSC::DFG::SpeculativeJIT::terminateSpeculativeExecution): (JSC::DFG::SpeculativeJIT::compilePushWithScope): (JSC::DFG::SpeculativeJIT::compileStringCodePointAt): (JSC::DFG::SpeculativeJIT::compileLoopHint): (JSC::DFG::SpeculativeJIT::compileContiguousPutByVal): (JSC::DFG::SpeculativeJIT::compileDoublePutByVal): (JSC::DFG::SpeculativeJIT::compileGetCharCodeAt): (JSC::DFG::SpeculativeJIT::compileGetByValOnString): (JSC::DFG::SpeculativeJIT::compileStringFromCharCodeOrCodePoint): (JSC::DFG::SpeculativeJIT::checkGeneratedTypeForToInt32): (JSC::DFG::SpeculativeJIT::compileValueToInt32): (JSC::DFG::SpeculativeJIT::compileUInt32ToNumber): (JSC::DFG::SpeculativeJIT::compileDoubleAsInt32): (JSC::DFG::SpeculativeJIT::compileDoubleRep): (JSC::DFG::SpeculativeJIT::compileValueRep): (JSC::DFG::SpeculativeJIT::setIntTypedArrayLoadResult): (JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray): (JSC::DFG::SpeculativeJIT::getIntTypedArrayStoreOperand): (JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray): (JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithString): (JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithSymbol): (JSC::DFG::SpeculativeJIT::compileGetPrivateName): (JSC::DFG::SpeculativeJIT::compilePutByValForCellWithString): (JSC::DFG::SpeculativeJIT::compilePutByValForCellWithSymbol): (JSC::DFG::SpeculativeJIT::compileCheckTypeInfoFlags): (JSC::DFG::SpeculativeJIT::compileParseInt): (JSC::DFG::SpeculativeJIT::compileOverridesHasInstance): (JSC::DFG::SpeculativeJIT::compileValueBitNot): (JSC::DFG::SpeculativeJIT::emitUntypedOrAnyBigIntBitOp): (JSC::DFG::SpeculativeJIT::compileValueBitwiseOp): (JSC::DFG::SpeculativeJIT::emitUntypedOrBigIntRightShiftBitOp): (JSC::DFG::SpeculativeJIT::compileValueLShiftOp): (JSC::DFG::SpeculativeJIT::compileValueBitRShift): (JSC::DFG::SpeculativeJIT::compileValueAdd): (JSC::DFG::SpeculativeJIT::compileValueSub): (JSC::DFG::SpeculativeJIT::compileMathIC): (JSC::DFG::SpeculativeJIT::compileInstanceOfCustom): (JSC::DFG::SpeculativeJIT::compileIsCellWithType): (JSC::DFG::SpeculativeJIT::compileArrayIsArray): (JSC::DFG::SpeculativeJIT::compileToObjectOrCallObjectConstructor): (JSC::DFG::SpeculativeJIT::compileOpenAsyncFromSyncIterator): (JSC::DFG::SpeculativeJIT::compileArithAdd): (JSC::DFG::SpeculativeJIT::compileArithAbs): (JSC::DFG::SpeculativeJIT::compileArithClz32): (JSC::DFG::SpeculativeJIT::compileArithDoubleUnaryOp): (JSC::DFG::SpeculativeJIT::compileArithSub): (JSC::DFG::SpeculativeJIT::compileIncOrDec): (JSC::DFG::SpeculativeJIT::compileArithNegate): (JSC::DFG::SpeculativeJIT::compileValueMul): (JSC::DFG::SpeculativeJIT::compileArithMul): (JSC::DFG::SpeculativeJIT::compileValueDiv): (JSC::DFG::SpeculativeJIT::compileArithDiv): (JSC::DFG::SpeculativeJIT::compileArithFRound): (JSC::DFG::SpeculativeJIT::compileArithF16Round): (JSC::DFG::SpeculativeJIT::compileValueMod): (JSC::DFG::SpeculativeJIT::compileArithMod): (JSC::DFG::SpeculativeJIT::compileArithRounding): (JSC::DFG::SpeculativeJIT::compileArithSqrt): (JSC::DFG::SpeculativeJIT::compileValuePow): (JSC::DFG::SpeculativeJIT::emitBitwiseJSValueEquality): (JSC::DFG::SpeculativeJIT::emitBranchOnBitwiseJSValueEquality): (JSC::DFG::SpeculativeJIT::compileNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality): (JSC::DFG::SpeculativeJIT::compilePeepHoleNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality): (JSC::DFG::SpeculativeJIT::compileStringToUntypedEquality): (JSC::DFG::SpeculativeJIT::compileStringIdentToNotStringVarEquality): (JSC::DFG::SpeculativeJIT::compileSameValue): (JSC::DFG::SpeculativeJIT::compileToBooleanStringOrOther): (JSC::DFG::SpeculativeJIT::emitStringOrOtherBranch): (JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffset): (JSC::DFG::SpeculativeJIT::compileGetByValOnDirectArguments): (JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments): (JSC::DFG::SpeculativeJIT::compileGetArrayLength): (JSC::DFG::SpeculativeJIT::compileSetFunctionName): (JSC::DFG::SpeculativeJIT::compileEnqueueAsyncGeneratorDriver): (JSC::DFG::SpeculativeJIT::compileVarargsLength): (JSC::DFG::SpeculativeJIT::compileLoadVarargs): (JSC::DFG::SpeculativeJIT::compileForwardVarargs): (JSC::DFG::SpeculativeJIT::compileCreateDirectArguments): (JSC::DFG::SpeculativeJIT::compileGetFromArguments): (JSC::DFG::SpeculativeJIT::compilePutToArguments): (JSC::DFG::SpeculativeJIT::compileGetArgument): (JSC::DFG::SpeculativeJIT::compileSpread): (JSC::DFG::SpeculativeJIT::compileNewArray): (JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread): (JSC::DFG::SpeculativeJIT::compileArraySlice): (JSC::DFG::SpeculativeJIT::compileArrayConcatAppendOne): (JSC::DFG::SpeculativeJIT::compileArrayJoin): (JSC::DFG::SpeculativeJIT::compileArraySplice): (JSC::DFG::SpeculativeJIT::compileArrayIndexOfOrArrayIncludes): (JSC::DFG::SpeculativeJIT::compileArrayPush): (JSC::DFG::SpeculativeJIT::compileIsObject): (JSC::DFG::SpeculativeJIT::compileTypeOfIsObject): (JSC::DFG::SpeculativeJIT::compileIsCallable): (JSC::DFG::SpeculativeJIT::compileIsConstructor): (JSC::DFG::SpeculativeJIT::compileTypeOf): (JSC::DFG::SpeculativeJIT::compileCheckIsConstant): (JSC::DFG::SpeculativeJIT::compileCheckNotEmpty): (JSC::DFG::SpeculativeJIT::compileCheckStructure): (JSC::DFG::SpeculativeJIT::compileCallDOM): (JSC::DFG::SpeculativeJIT::compileCallDOMGetter): (JSC::DFG::SpeculativeJIT::compileCallCustomAccessorGetter): (JSC::DFG::SpeculativeJIT::compileCallCustomAccessorSetter): (JSC::DFG::SpeculativeJIT::compileToStringOrCallStringConstructorOrStringValueOf): (JSC::DFG::SpeculativeJIT::compileNewSymbol): (JSC::DFG::SpeculativeJIT::compileNewRegExpUntyped): (JSC::DFG::SpeculativeJIT::compileNewRegExp): (JSC::DFG::SpeculativeJIT::speculateNumber): (JSC::DFG::SpeculativeJIT::speculateRealNumber): (JSC::DFG::SpeculativeJIT::speculateDoubleRepReal): (JSC::DFG::SpeculativeJIT::speculateCellOrOther): (JSC::DFG::SpeculativeJIT::speculateObjectOrOther): (JSC::DFG::SpeculativeJIT::speculateStringOrOther): (JSC::DFG::SpeculativeJIT::speculateNotStringVar): (JSC::DFG::SpeculativeJIT::speculateNotSymbol): (JSC::DFG::SpeculativeJIT::speculateNotCell): (JSC::DFG::SpeculativeJIT::speculateNotCellNorBigInt): (JSC::DFG::SpeculativeJIT::speculateNotDouble): (JSC::DFG::SpeculativeJIT::speculateNeitherDoubleNorHeapBigInt): (JSC::DFG::SpeculativeJIT::speculateNeitherDoubleNorHeapBigIntNorString): (JSC::DFG::SpeculativeJIT::speculateOther): (JSC::DFG::SpeculativeJIT::speculateMisc): (JSC::DFG::SpeculativeJIT::emitSwitchImm): (JSC::DFG::SpeculativeJIT::emitSwitchChar): (JSC::DFG::SpeculativeJIT::emitSwitchString): (JSC::DFG::SpeculativeJIT::compileResolveScopeForHoistingFuncDeclInEval): (JSC::DFG::SpeculativeJIT::compileGetGlobalVariable): (JSC::DFG::SpeculativeJIT::compilePutGlobalVariable): (JSC::DFG::SpeculativeJIT::compileGetDynamicVar): (JSC::DFG::SpeculativeJIT::compilePutDynamicVar): (JSC::DFG::SpeculativeJIT::compileGetClosureVar): (JSC::DFG::SpeculativeJIT::compilePutClosureVar): (JSC::DFG::SpeculativeJIT::compileGetInternalField): (JSC::DFG::SpeculativeJIT::compilePutInternalField): (JSC::DFG::SpeculativeJIT::compilePutAccessorByVal): (JSC::DFG::SpeculativeJIT::compileGetRegExpObjectLastIndex): (JSC::DFG::SpeculativeJIT::compileSetRegExpObjectLastIndex): (JSC::DFG::SpeculativeJIT::compileRegExpExec): (JSC::DFG::SpeculativeJIT::compileRegExpTest): (JSC::DFG::SpeculativeJIT::tryEmitRegExpTestFirstCharacterFilter): (JSC::DFG::SpeculativeJIT::compileStringReplace): (JSC::DFG::SpeculativeJIT::compileStringReplaceString): (JSC::DFG::SpeculativeJIT::compileRegExpExecNonGlobalOrSticky): (JSC::DFG::SpeculativeJIT::compileRegExpExecSticky): (JSC::DFG::SpeculativeJIT::compileRegExpMatchFastGlobal): (JSC::DFG::SpeculativeJIT::compileRegExpMatchFast): (JSC::DFG::SpeculativeJIT::compileRegExpSplitFast): (JSC::DFG::SpeculativeJIT::compileRegExpSearch): (JSC::DFG::SpeculativeJIT::compileLazyJSConstant): (JSC::DFG::SpeculativeJIT::compileMaterializeNewObject): (JSC::DFG::SpeculativeJIT::compileDefineDataProperty): (JSC::DFG::SpeculativeJIT::compileDefineAccessorProperty): (JSC::DFG::SpeculativeJIT::compileObjectDefineProperty): (JSC::DFG::SpeculativeJIT::compileObjectDefinePropertyFromFields): (JSC::DFG::SpeculativeJIT::compileNormalizeMapKey): (JSC::DFG::SpeculativeJIT::compileLoadMapValue): (JSC::DFG::SpeculativeJIT::loadMapEntryData): (JSC::DFG::SpeculativeJIT::compileMapIteratorKey): (JSC::DFG::SpeculativeJIT::compileMapIteratorValue): (JSC::DFG::SpeculativeJIT::compileMapIterationNext): (JSC::DFG::SpeculativeJIT::compileMapIterationEntry): (JSC::DFG::SpeculativeJIT::compileMapIterationEntryData): (JSC::DFG::SpeculativeJIT::compileExtractValueFromWeakMapGet): (JSC::DFG::SpeculativeJIT::compileThrow): (JSC::DFG::SpeculativeJIT::compileEnumeratorNextUpdateIndexAndMode): (JSC::DFG::SpeculativeJIT::compileEnumeratorHasProperty): (JSC::DFG::SpeculativeJIT::compilePutByIdWithThis): (JSC::DFG::SpeculativeJIT::compileGetByOffset): (JSC::DFG::SpeculativeJIT::compilePutByOffset): (JSC::DFG::SpeculativeJIT::compileMatchStructure): (JSC::DFG::SpeculativeJIT::compileGetPropertyEnumerator): (JSC::DFG::SpeculativeJIT::compileStrCat): (JSC::DFG::SpeculativeJIT::compileNewButterflyWithSize): (JSC::DFG::SpeculativeJIT::compilePutCellButterflySlot): (JSC::DFG::SpeculativeJIT::compileArraySortCommit): (JSC::DFG::SpeculativeJIT::compileNewArrayWithSpecies): (JSC::DFG::SpeculativeJIT::compileNewArrayWithSizeAndStructure): (JSC::DFG::SpeculativeJIT::compileNewTypedArray): (JSC::DFG::SpeculativeJIT::compileNewTypedArrayBuffer): (JSC::DFG::SpeculativeJIT::compileToThis): (JSC::DFG::SpeculativeJIT::compileOwnPropertyKeysVariant): (JSC::DFG::SpeculativeJIT::compileObjectAssign): (JSC::DFG::SpeculativeJIT::compileObjectCreate): (JSC::DFG::SpeculativeJIT::compileObjectToString): (JSC::DFG::SpeculativeJIT::compileToPrimitive): (JSC::DFG::SpeculativeJIT::compileToPropertyKey): (JSC::DFG::SpeculativeJIT::compileToPropertyKeyOrNumber): (JSC::DFG::SpeculativeJIT::compileToNumeric): (JSC::DFG::SpeculativeJIT::compileCallNumberConstructor): (JSC::DFG::SpeculativeJIT::compileLogShadowChickenTail): (JSC::DFG::SpeculativeJIT::compileSetAdd): (JSC::DFG::SpeculativeJIT::compileMapSet): (JSC::DFG::SpeculativeJIT::compileMapOrSetDelete): (JSC::DFG::SpeculativeJIT::compileWeakMapGet): (JSC::DFG::SpeculativeJIT::compileWeakMapSet): (JSC::DFG::SpeculativeJIT::compileGetPrototypeOf): (JSC::DFG::SpeculativeJIT::compileIdentity): (JSC::DFG::SpeculativeJIT::compileBitwiseStrictEq): (JSC::DFG::SpeculativeJIT::emitInitializeButterfly): (JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize): (JSC::DFG::SpeculativeJIT::compileHasIndexedProperty): (JSC::DFG::SpeculativeJIT::compileExtractCatchLocal): (JSC::DFG::SpeculativeJIT::compileProfileType): (JSC::DFG::SpeculativeJIT::genericJSValueNonPeepholeCompare): (JSC::DFG::SpeculativeJIT::genericJSValuePeepholeBranch): (JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal): (JSC::DFG::SpeculativeJIT::compileStringSplit): (JSC::DFG::SpeculativeJIT::compileStringMatch): (JSC::DFG::SpeculativeJIT::compileStringSearch): (JSC::DFG::SpeculativeJIT::compileGlobalIsNaN): (JSC::DFG::SpeculativeJIT::compileNumberIsNaN): (JSC::DFG::SpeculativeJIT::compileGlobalIsFinite): (JSC::DFG::SpeculativeJIT::compileNumberIsFinite): (JSC::DFG::SpeculativeJIT::compileNumberIsSafeInteger): (JSC::DFG::SpeculativeJIT::compileToIntegerOrInfinity): (JSC::DFG::SpeculativeJIT::compileToLength): (JSC::DFG::SpeculativeJIT::compileResolvePromiseFirstResolving): (JSC::DFG::SpeculativeJIT::compileRejectPromiseFirstResolving): (JSC::DFG::SpeculativeJIT::compileFulfillPromiseFirstResolving): (JSC::DFG::SpeculativeJIT::compileNewRejectedPromise): (JSC::DFG::SpeculativeJIT::compilePromiseResolve): (JSC::DFG::SpeculativeJIT::compilePromiseReject): (JSC::DFG::SpeculativeJIT::compilePromiseThen): (JSC::DFG::SpeculativeJIT::compilePerformPromiseThen): (JSC::DFG::SpeculativeJIT::appendExceptionHandlingOSRExit): (JSC::DFG::JSValueRegsTemporary::JSValueRegsTemporary): Deleted. (JSC::DFG::JSValueRegsTemporary::regs): Deleted. * Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::silentSpillAllRegistersImpl): (JSC::DFG::SpeculativeJIT::silentSpillAllRegisters): (JSC::DFG::SpeculativeJIT::jsValueResult): (JSC::DFG::SpeculativeJIT::tryHandleOrGetExceptionUnderSilentSpill): (JSC::DFG::JSValueOperand::gpr): (JSC::DFG::JSValueOperand::regs): Deleted. (JSC::DFG::JSValueOperand::jsValueRegs): Deleted. (JSC::DFG::JSValueRegsTemporary::operator bool): Deleted. (JSC::DFG::JSValueRegsTemporary::JSValueRegsTemporary): Deleted. (JSC::DFG::JSValueRegsFlushedCallResult::JSValueRegsFlushedCallResult): Deleted. (JSC::DFG::JSValueRegsFlushedCallResult::regs): Deleted. * Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::cachedGetById): (JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis): (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined): (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined): (JSC::DFG::SpeculativeJIT::compileNeitherDoubleNorHeapBigIntToNotDoubleStrictEquality): (JSC::DFG::SpeculativeJIT::genericJSValueNonPeepholeStrictEq): (JSC::DFG::SpeculativeJIT::emitCall): (JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal): (JSC::DFG::SpeculativeJIT::fillSpeculateInt52): (JSC::DFG::SpeculativeJIT::fillSpeculateDouble): (JSC::DFG::SpeculativeJIT::fillSpeculateCell): (JSC::DFG::SpeculativeJIT::fillSpeculateBoolean): (JSC::DFG::SpeculativeJIT::speculateAnyBigInt): (JSC::DFG::SpeculativeJIT::fillSpeculateBigInt32): (JSC::DFG::SpeculativeJIT::compileRegExpStringIteratorNext): (JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality): (JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality): (JSC::DFG::SpeculativeJIT::compileToBooleanObjectOrOther): (JSC::DFG::SpeculativeJIT::compileToBoolean): (JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch): (JSC::DFG::SpeculativeJIT::emitUntypedBranch): (JSC::DFG::SpeculativeJIT::emitBranch): (JSC::DFG::SpeculativeJIT::compileMapGetImpl): (JSC::DFG::SpeculativeJIT::compileGetByVal): (JSC::DFG::SpeculativeJIT::compile): (JSC::DFG::SpeculativeJIT::convertAnyInt): (JSC::DFG::SpeculativeJIT::speculateInt32): (JSC::DFG::SpeculativeJIT::speculateDoubleRepAnyInt): (JSC::DFG::SpeculativeJIT::compileDateGet): (JSC::DFG::SpeculativeJIT::compileGetByValWithThis): (JSC::DFG::SpeculativeJIT::compileGetById): (JSC::DFG::SpeculativeJIT::compileDeleteById): (JSC::DFG::SpeculativeJIT::compileDeleteByVal): (JSC::DFG::SpeculativeJIT::compileInById): (JSC::DFG::SpeculativeJIT::compileInByVal): (JSC::DFG::SpeculativeJIT::compileHasPrivate): (JSC::DFG::SpeculativeJIT::compilePutByVal): (JSC::DFG::SpeculativeJIT::compileGetPrivateNameByVal): (JSC::DFG::SpeculativeJIT::compileGetPrivateNameById): (JSC::DFG::SpeculativeJIT::compilePutPrivateName): (JSC::DFG::SpeculativeJIT::compileCheckPrivateBrand): (JSC::DFG::SpeculativeJIT::compileSetPrivateBrand): (JSC::DFG::SpeculativeJIT::compileInstanceOf): (JSC::DFG::SpeculativeJIT::compileInstanceOfMegamorphic): (JSC::DFG::SpeculativeJIT::cachedPutById): (JSC::DFG::SpeculativeJIT::compilePutPrivateNameById): (JSC::DFG::SpeculativeJIT::compilePutById): (JSC::DFG::SpeculativeJIT::compilePutByIdDirect): (JSC::DFG::SpeculativeJIT::compileGetByIdWithThisMegamorphic): (JSC::DFG::SpeculativeJIT::compileGetByValWithThisMegamorphic): (JSC::DFG::SpeculativeJIT::compileFunctionBind): (JSC::DFG::SpeculativeJIT::compileNewBoundFunction): (JSC::DFG::SpeculativeJIT::compileEnumeratorPutByVal): (JSC::DFG::SpeculativeJIT::compilePutByIdMegamorphic): (JSC::DFG::SpeculativeJIT::compilePutByValMegamorphic): (JSC::DFG::SpeculativeJIT::compileCreateClonedArguments): (JSC::DFG::SpeculativeJIT::unboxRealNumberDouble): (JSC::DFG::SpeculativeJIT::compileMapStorage): (JSC::DFG::SpeculativeJIT::compileMapIteratorNext): (JSC::DFG::SpeculativeJIT::compileNewResolvedPromise): (JSC::DFG::SpeculativeJIT::compileArrayUnshift): (JSC::DFG::SpeculativeJIT::compileMultiGetByVal): (JSC::DFG::SpeculativeJIT::compileMultiPutByVal): * Source/JavaScriptCore/dfg/DFGThunks.cpp: (JSC::DFG::osrEntryThunkGenerator): * Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileLazyJSConstant): (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::compileGetByValImpl): (JSC::FTL::DFG::LowerDFGToB3::compilePutByVal): (JSC::FTL::DFG::LowerDFGToB3::compileDelBy): (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq): * Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp: (JSC::FTL::compileStub): * Source/JavaScriptCore/ftl/FTLSnippetParams.cpp: (JSC::FTL::dispatch): * Source/JavaScriptCore/jit/AssemblyHelpers.cpp: (JSC::AssemblyHelpers::loadProperty): (JSC::AssemblyHelpers::storeProperty): (JSC::AssemblyHelpers::loadMegamorphicProperty): (JSC::AssemblyHelpers::loadMegamorphicGetterSetter): (JSC::AssemblyHelpers::storeMegamorphicProperty): (JSC::AssemblyHelpers::hasMegamorphicProperty): (JSC::AssemblyHelpers::emitLoadPrototype): (JSC::AssemblyHelpers::emitConvertValueToBoolean): (JSC::AssemblyHelpers::branchIfValue): * Source/JavaScriptCore/jit/AssemblyHelpers.h: (JSC::AssemblyHelpers::storeValue): (JSC::AssemblyHelpers::loadValue): (JSC::AssemblyHelpers::moveValue): (JSC::AssemblyHelpers::moveTrustedValue): (JSC::AssemblyHelpers::branchIfNotEqual): (JSC::AssemblyHelpers::branchIfEqual): (JSC::AssemblyHelpers::branchIfCell): (JSC::AssemblyHelpers::branchIfOther): (JSC::AssemblyHelpers::branchIfNotOther): (JSC::AssemblyHelpers::branchIfNotDoubleKnownNotInt32): (JSC::AssemblyHelpers::branchIfNotBigInt32): (JSC::AssemblyHelpers::isUndefined): (JSC::AssemblyHelpers::isNull): (JSC::AssemblyHelpers::isNotNull): (JSC::AssemblyHelpers::emitTurnUndefinedIntoNull): (JSC::AssemblyHelpers::unboxDouble): (JSC::AssemblyHelpers::unboxDoubleNonDestructive): (JSC::AssemblyHelpers::boxBoolean): (JSC::AssemblyHelpers::boxInt32): (JSC::AssemblyHelpers::emitTypeOf): (JSC::AssemblyHelpers::branchIfTruthy): (JSC::AssemblyHelpers::branchIfFalsey): (JSC::AssemblyHelpers::moveValueRegs): Deleted. (JSC::AssemblyHelpers::boxBooleanPayload): Deleted. (JSC::AssemblyHelpers::boxCell): * Source/JavaScriptCore/jit/BaselineJITRegisters.h: * Source/JavaScriptCore/jit/CCallHelpers.cpp: (JSC::CCallHelpers::logShadowChickenTailPacketImpl): (JSC::CCallHelpers::logShadowChickenTailPacket): * Source/JavaScriptCore/jit/CCallHelpers.h: (JSC::CCallHelpers::shuffleJSRs): Deleted. * Source/JavaScriptCore/jit/CachedRecovery.h: (JSC::CachedRecovery::setWantedGPR): (JSC::CachedRecovery::setWantedFPR): (JSC::CachedRecovery::wantedGPR const): (JSC::CachedRecovery::setWantedJSValueRegs): Deleted. (JSC::CachedRecovery::wantedJSValueRegs const): Deleted. * Source/JavaScriptCore/jit/CallFrameShuffleData.cpp: (JSC::CallFrameShuffleData::createForBaselineOrLLIntTailCall): * Source/JavaScriptCore/jit/CallFrameShuffler.cpp: (JSC::m_numParameters): (JSC::CallFrameShuffler::tryWrites): (JSC::CallFrameShuffler::performSafeWrites): (JSC::CallFrameShuffler::prepareAny): * Source/JavaScriptCore/jit/CallFrameShuffler.h: (JSC::CallFrameShuffler::setCalleeGPR): (JSC::CallFrameShuffler::getNew const): (JSC::CallFrameShuffler::addNew): (JSC::CallFrameShuffler::setCalleeJSValueRegs): Deleted. * Source/JavaScriptCore/jit/CallFrameShuffler64.cpp: (JSC::CallFrameShuffler::emitBox): (JSC::CallFrameShuffler::emitLoad): (JSC::CallFrameShuffler::emitDisplace): * Source/JavaScriptCore/jit/GPRInfo.cpp: Removed. * Source/JavaScriptCore/jit/GPRInfo.h: (JSC::JSValueSource::unboxedCell): (JSC::PreferredArgumentImpl::pickGPR): (JSC::PreferredArgumentImpl::preferredArgumentGPR): (JSC::JSValueRegs::JSValueRegs): Deleted. (JSC::JSValueRegs::operator! const): Deleted. (JSC::JSValueRegs::operator bool const): Deleted. (JSC::JSValueRegs::gpr const): Deleted. (JSC::JSValueRegs::payloadGPR const): Deleted. (JSC::JSValueRegs::uses const): Deleted. (JSC::JSValueRegs::overlaps const): Deleted. (JSC::JSValueSource::payloadGPR const): Deleted. (JSC::JSValueSource::regs const): Deleted. (JSC::extractResult): (JSC::PreferredArgumentImpl::pickJSR): Deleted. (JSC::PreferredArgumentImpl::preferredArgumentJSR): Deleted. (JSC::preferredArgumentJSR): Deleted. * Source/JavaScriptCore/jit/JIT.cpp: (JSC::JIT::compileAndLinkWithoutFinalizing): * Source/JavaScriptCore/jit/JIT.h: (JSC::JIT::emitValueProfilingSiteIfProfiledOpcode): (JSC::JIT::callOperationWithResult): * Source/JavaScriptCore/jit/JITAddGenerator.cpp: (JSC::JITAddGenerator::generateInline): (JSC::JITAddGenerator::generateFastPath): * Source/JavaScriptCore/jit/JITAddGenerator.h: (JSC::JITAddGenerator::JITAddGenerator): * Source/JavaScriptCore/jit/JITArithmetic.cpp: (JSC::JIT::emit_op_unsigned): (JSC::JIT::emit_compare): (JSC::JIT::emit_compareAndJump): (JSC::JIT::emit_compareImpl): (JSC::JIT::emit_compareUnsignedImpl): (JSC::JIT::emit_compareSlow): (JSC::JIT::emit_compareSlowImpl): (JSC::JIT::emit_op_inc): (JSC::JIT::emit_op_dec): (JSC::JIT::emit_op_mod): (JSC::JIT::emit_op_pow): (JSC::JIT::emitBitBinaryOpFastPath): (JSC::JIT::emit_op_bitnot): (JSC::JIT::emitRightShiftFastPath): (JSC::JIT::emitMathICFast): (JSC::JIT::emitMathICSlow): (JSC::JIT::emit_op_div): * Source/JavaScriptCore/jit/JITBitAndGenerator.cpp: (JSC::JITBitAndGenerator::generateFastPath): * Source/JavaScriptCore/jit/JITBitAndGenerator.h: (JSC::JITBitAndGenerator::JITBitAndGenerator): * Source/JavaScriptCore/jit/JITBitBinaryOpGenerator.h: (JSC::JITBitBinaryOpGenerator::JITBitBinaryOpGenerator): * Source/JavaScriptCore/jit/JITBitOrGenerator.cpp: (JSC::JITBitOrGenerator::generateFastPath): * Source/JavaScriptCore/jit/JITBitOrGenerator.h: (JSC::JITBitOrGenerator::JITBitOrGenerator): * Source/JavaScriptCore/jit/JITBitXorGenerator.cpp: (JSC::JITBitXorGenerator::generateFastPath): * Source/JavaScriptCore/jit/JITBitXorGenerator.h: (JSC::JITBitXorGenerator::JITBitXorGenerator): * Source/JavaScriptCore/jit/JITCall.cpp: (JSC::JIT::emit_op_ret): (JSC::JIT::emitPutCallResult): (JSC::JIT::compileSetupFrame): (JSC::JIT::compileCallDirectEval): (JSC::JIT::compileCallDirectEvalSlowCase): (JSC::JIT::compileTailCall): (JSC::JIT::compileOpCall): (JSC::JIT::emitIteratorOpenGeneric): (JSC::JIT::emitSlowIteratorOpenGeneric): (JSC::JIT::emit_op_iterator_next): (JSC::JIT::emitSlow_op_iterator_next): (JSC::JIT::emit_op_async_iterator_next): (JSC::JIT::emit_op_instanceof): (JSC::JIT::emitSlow_op_instanceof): * Source/JavaScriptCore/jit/JITDivGenerator.cpp: (JSC::JITDivGenerator::loadOperand): (JSC::JITDivGenerator::generateFastPath): * Source/JavaScriptCore/jit/JITDivGenerator.h: (JSC::JITDivGenerator::JITDivGenerator): * Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp: (JSC::JITByIdGenerator::JITByIdGenerator): (JSC::JITGetByIdGenerator::JITGetByIdGenerator): (JSC::generateGetByIdInlineAccessBaselineDataIC): (JSC::JITGetByIdGenerator::generateDataICFastPath): (JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator): (JSC::JITGetByIdWithThisGenerator::generateDataICFastPath): (JSC::JITPutByIdGenerator::JITPutByIdGenerator): (JSC::generatePutByIdInlineAccessBaselineDataIC): (JSC::JITPutByIdGenerator::generateDataICFastPath): (JSC::JITDelByValGenerator::JITDelByValGenerator): (JSC::JITDelByIdGenerator::JITDelByIdGenerator): (JSC::JITInByValGenerator::JITInByValGenerator): (JSC::JITInByIdGenerator::JITInByIdGenerator): (JSC::generateInByIdInlineAccessBaselineDataIC): (JSC::JITInByIdGenerator::generateDataICFastPath): (JSC::JITGetByValGenerator::JITGetByValGenerator): (JSC::JITGetByValWithThisGenerator::JITGetByValWithThisGenerator): (JSC::JITPutByValGenerator::JITPutByValGenerator): (JSC::JITPrivateBrandAccessGenerator::JITPrivateBrandAccessGenerator): * Source/JavaScriptCore/jit/JITInlineCacheGenerator.h: (JSC::JITByIdGenerator::setUpPropertyInlineCacheImpl): (JSC::JITInByValGenerator::setUpPropertyInlineCache): * Source/JavaScriptCore/jit/JITInlines.h: (JSC::JIT::appendCallSetJSValueResult): (JSC::JIT::appendCallWithExceptionCheckSetJSValueResult): (JSC::JIT::appendCallWithExceptionCheckSetJSValueResultWithProfile): (JSC::JIT::emitValueProfilingSite): (JSC::JIT::emitGetVirtualRegister): (JSC::JIT::emitPutVirtualRegister): (JSC::JIT::emitJumpIfNotInt): (JSC::JIT::emitJumpSlowCaseIfNotInt): (JSC::JIT::emitJumpSlowCaseIfNotJSCell): (JSC::JIT::loadCodeBlockConstant): (JSC::JIT::loadCodeBlockConstantPayload): Deleted. * 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/JITMulGenerator.h: (JSC::JITMulGenerator::JITMulGenerator): * Source/JavaScriptCore/jit/JITNegGenerator.cpp: (JSC::JITNegGenerator::generateInline): (JSC::JITNegGenerator::generateFastPath): * Source/JavaScriptCore/jit/JITNegGenerator.h: (JSC::JITNegGenerator::JITNegGenerator): * Source/JavaScriptCore/jit/JITOpcodes.cpp: (JSC::JIT::emit_op_mov): (JSC::JIT::emit_op_new_object): (JSC::JIT::emitSlow_op_new_object): (JSC::JIT::emit_op_is_empty): (JSC::JIT::emit_op_typeof_is_undefined): (JSC::JIT::emit_op_typeof_is_function): (JSC::JIT::emit_op_is_undefined_or_null): (JSC::JIT::emit_op_is_boolean): (JSC::JIT::emit_op_is_number): (JSC::JIT::emit_op_is_big_int): (JSC::JIT::emit_op_is_cell_with_type): (JSC::JIT::emit_op_is_object): (JSC::JIT::emit_op_has_structure_with_flags): (JSC::JIT::emit_op_to_primitive): (JSC::JIT::emit_op_to_property_key): (JSC::JIT::emit_op_to_property_key_or_number): (JSC::JIT::emit_op_set_function_name): (JSC::JIT::emit_op_not): (JSC::JIT::emit_op_jfalse): (JSC::JIT::valueIsFalseyGenerator): (JSC::JIT::emit_op_jeq_null): (JSC::JIT::emit_op_jneq_null): (JSC::JIT::emit_op_jundefined_or_null): (JSC::JIT::emit_op_jnundefined_or_null): (JSC::JIT::emit_op_jeq_ptr): (JSC::JIT::emit_op_jneq_ptr): (JSC::JIT::emit_op_eq): (JSC::JIT::emit_op_jtrue): (JSC::JIT::valueIsTruthyGenerator): (JSC::JIT::emit_op_neq): (JSC::JIT::emit_op_throw): (JSC::JIT::op_throw_handlerGenerator): (JSC::JIT::compileOpStrictEq): (JSC::JIT::emit_op_to_number): (JSC::JIT::emit_op_to_numeric): (JSC::JIT::emit_op_to_string): (JSC::JIT::emit_op_to_object): (JSC::JIT::emit_op_catch): (JSC::JIT::emit_op_get_parent_scope): (JSC::JIT::emit_op_switch_imm): (JSC::JIT::emit_op_switch_char): (JSC::JIT::emit_op_switch_string): (JSC::JIT::emit_op_eq_null): (JSC::JIT::emit_op_neq_null): (JSC::JIT::emitGetScope): (JSC::JIT::emit_op_enter): (JSC::JIT::emit_op_to_this): (JSC::JIT::emit_op_create_this): (JSC::JIT::emitSlow_op_eq): (JSC::JIT::emitSlow_op_neq): (JSC::JIT::emit_op_debug): (JSC::JIT::emit_op_loop_hint): (JSC::JIT::emit_op_new_reg_exp): (JSC::JIT::emit_op_new_array_with_size): (JSC::JIT::emit_op_profile_type): (JSC::JIT::emit_op_log_shadow_chicken_tail): (JSC::JIT::emit_op_argument_count): (JSC::JIT::emit_op_get_argument): (JSC::JIT::emit_op_get_prototype_of): * Source/JavaScriptCore/jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_get_by_val): (JSC::JIT::emit_op_get_private_name): (JSC::JIT::emit_op_set_private_brand): (JSC::JIT::emit_op_check_private_brand): (JSC::JIT::emit_op_put_by_val): (JSC::JIT::emit_op_put_private_name): (JSC::JIT::emit_op_put_getter_by_val): (JSC::JIT::emit_op_put_setter_by_val): (JSC::JIT::emit_op_del_by_id): (JSC::JIT::emit_op_del_by_val): (JSC::JIT::emit_op_get_by_id_direct): (JSC::JIT::emit_op_get_by_id): (JSC::JIT::emit_op_get_length): (JSC::JIT::emit_op_get_by_id_with_this): (JSC::JIT::emit_op_put_by_id): (JSC::JIT::emit_op_in_by_id): (JSC::JIT::emit_op_in_by_val): (JSC::JIT::emitHasPrivate): (JSC::JIT::emit_op_resolve_scope): (JSC::JIT::emit_op_get_from_scope): (JSC::JIT::generateOpGetFromScopeThunk): (JSC::JIT::emit_op_put_to_scope): (JSC::JIT::emit_op_get_from_arguments): (JSC::JIT::emit_op_put_to_arguments): (JSC::JIT::emit_op_get_internal_field): (JSC::JIT::emit_op_put_internal_field): (JSC::JIT::emit_op_get_by_val_with_this): (JSC::JIT::emit_op_enumerator_get_by_val): (JSC::JIT::emit_op_enumerator_put_by_val): (JSC::JIT::emitWriteBarrier): * 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/JITSubGenerator.h: (JSC::JITSubGenerator::JITSubGenerator): * Source/JavaScriptCore/jit/JSInterfaceJIT.h: (JSC::JSInterfaceJIT::emitLoadJSValue): * Source/JavaScriptCore/jit/RegisterSet.h: * Source/JavaScriptCore/jit/ScratchRegisterAllocator.cpp: * Source/JavaScriptCore/jit/ScratchRegisterAllocator.h: * Source/JavaScriptCore/jit/SnippetParams.h: (JSC::SnippetParams::Value::isFPR const): (JSC::SnippetParams::Value::fpr const): (JSC::SnippetParams::Value::isJSValueRegs const): Deleted. (JSC::SnippetParams::Value::jsValueRegs const): Deleted. * Source/JavaScriptCore/jit/SnippetReg.h: (JSC::SnippetReg::isFPR const): (JSC::SnippetReg::fpr const): (JSC::SnippetReg::isJSValueRegs const): Deleted. (JSC::SnippetReg::jsValueRegs const): Deleted. * Source/JavaScriptCore/jit/SnippetSlowPathCalls.h: * Source/JavaScriptCore/jit/SpecializedThunkJIT.h: (JSC::SpecializedThunkJIT::loadJSArgument): (JSC::SpecializedThunkJIT::returnJSValue): * Source/JavaScriptCore/jit/ThunkGenerators.cpp: (JSC::globalIsNaNThunkGenerator): (JSC::numberIsNaNThunkGenerator): (JSC::globalIsFiniteThunkGenerator): (JSC::numberIsFiniteThunkGenerator): (JSC::numberIsSafeIntegerThunkGenerator): (JSC::numberConstructorCallThunkGenerator): (JSC::stringConstructorCallThunkGenerator): (JSC::boundFunctionCallGenerator): (JSC::remoteFunctionCallGenerator): (JSC::toIntegerOrInfinityThunkGenerator): (JSC::toLengthThunkGenerator): (JSC::maxThunkGenerator): (JSC::minThunkGenerator): (JSC::objectIsThunkGenerator): * Source/JavaScriptCore/llint/LLIntThunks.cpp: (JSC::LLInt::getHostCallReturnValueThunk): * Source/JavaScriptCore/lol/LOLJIT.cpp: (JSC::LOL::LOLJIT::compileAndLinkWithoutFinalizing): (JSC::LOL::LOLJIT::emit_op_mov): (JSC::LOL::LOLJIT::emit_op_ret): (JSC::LOL::LOLJIT::emit_op_eq): (JSC::LOL::LOLJIT::emitSlow_op_eq): (JSC::LOL::LOLJIT::emit_op_neq): (JSC::LOL::LOLJIT::emitSlow_op_neq): (JSC::LOL::LOLJIT::emitCompare): (JSC::LOL::LOLJIT::emitCompareImpl): (JSC::LOL::LOLJIT::emitCompareSlow): (JSC::LOL::LOLJIT::emitCompareSlowImpl): (JSC::LOL::LOLJIT::emitCompareAndJump): (JSC::LOL::LOLJIT::emitCompareAndJumpSlow): (JSC::LOL::LOLJIT::emitStrictEqJumpImpl): (JSC::LOL::LOLJIT::emitStrictEqJumpSlowImpl): (JSC::LOL::LOLJIT::emitCompareUnsignedAndJumpImpl): (JSC::LOL::LOLJIT::emit_op_to_number): (JSC::LOL::LOLJIT::emit_op_to_string): (JSC::LOL::LOLJIT::emit_op_to_numeric): (JSC::LOL::LOLJIT::emit_op_to_object): (JSC::LOL::LOLJIT::emit_op_to_property_key): (JSC::LOL::LOLJIT::emit_op_to_property_key_or_number): (JSC::LOL::LOLJIT::emit_op_to_primitive): (JSC::LOL::LOLJIT::emit_op_create_lexical_environment): (JSC::LOL::LOLJIT::emit_op_create_scoped_arguments): (JSC::LOL::LOLJIT::emit_op_new_array_with_size): (JSC::LOL::LOLJIT::emitNewFuncCommon): (JSC::LOL::LOLJIT::emitNewFuncExprCommon): (JSC::LOL::LOLJIT::emit_op_new_object): (JSC::LOL::LOLJIT::emitSlow_op_new_object): (JSC::LOL::LOLJIT::emit_op_new_reg_exp): (JSC::LOL::LOLJIT::emit_op_to_this): (JSC::LOL::LOLJIT::emit_op_create_this): (JSC::LOL::LOLJIT::emit_op_is_empty): (JSC::LOL::LOLJIT::emit_op_typeof_is_undefined): (JSC::LOL::LOLJIT::emit_op_typeof_is_function): (JSC::LOL::LOLJIT::emit_op_is_undefined_or_null): (JSC::LOL::LOLJIT::emit_op_is_boolean): (JSC::LOL::LOLJIT::emit_op_is_number): (JSC::LOL::LOLJIT::emit_op_is_big_int): (JSC::LOL::LOLJIT::emit_op_is_object): (JSC::LOL::LOLJIT::emit_op_is_cell_with_type): (JSC::LOL::LOLJIT::emit_op_has_structure_with_flags): (JSC::LOL::LOLJIT::emit_op_get_prototype_of): (JSC::LOL::LOLJIT::emit_op_jeq): (JSC::LOL::LOLJIT::emitSlow_op_jeq): (JSC::LOL::LOLJIT::emit_op_jneq): (JSC::LOL::LOLJIT::emitSlow_op_jneq): (JSC::LOL::LOLJIT::emit_op_jtrue): (JSC::LOL::LOLJIT::emit_op_jfalse): (JSC::LOL::LOLJIT::emit_op_jeq_null): (JSC::LOL::LOLJIT::emit_op_jneq_null): (JSC::LOL::LOLJIT::emit_op_jundefined_or_null): (JSC::LOL::LOLJIT::emit_op_jnundefined_or_null): (JSC::LOL::LOLJIT::emit_op_jeq_ptr): (JSC::LOL::LOLJIT::emit_op_jneq_ptr): (JSC::LOL::LOLJIT::emit_op_throw): (JSC::LOL::LOLJIT::emit_op_switch_imm): (JSC::LOL::LOLJIT::emit_op_switch_char): (JSC::LOL::LOLJIT::emit_op_switch_string): (JSC::LOL::LOLJIT::emitRightShiftFastPath): (JSC::LOL::LOLJIT::emit_op_lshift): (JSC::LOL::LOLJIT::emitBitBinaryOpFastPath): (JSC::LOL::LOLJIT::emitMathICFast): (JSC::LOL::LOLJIT::emitMathICSlow): (JSC::LOL::LOLJIT::emit_op_mod): (JSC::LOL::LOLJIT::emit_op_div): (JSC::LOL::LOLJIT::emit_op_bitnot): (JSC::LOL::LOLJIT::emit_op_inc): (JSC::LOL::LOLJIT::emit_op_dec): (JSC::LOL::LOLJIT::emit_op_argument_count): (JSC::LOL::LOLJIT::emit_op_get_argument): (JSC::LOL::LOLJIT::emit_op_get_from_scope): (JSC::LOL::LOLJIT::emitSlow_op_get_from_scope): (JSC::LOL::LOLJIT::generateOpGetFromScopeThunk): (JSC::LOL::LOLJIT::emit_op_put_to_scope): (JSC::LOL::LOLJIT::emitSlow_op_put_to_scope): (JSC::LOL::LOLJIT::emit_op_resolve_scope): (JSC::LOL::LOLJIT::emitSlow_op_resolve_scope): * Source/JavaScriptCore/lol/LOLJIT.h: (JSC::LOL::LOLJIT::silentSpill): (JSC::LOL::LOLJIT::silentFill): (JSC::LOL::LOLJIT::emitWriteBarrier): (): Deleted. * Source/JavaScriptCore/lol/LOLRegisterAllocator.h: (JSC::LOL::RegisterAllocator::releaseScratches): (JSC::LOL::RegisterAllocator::AllocationHint::AllocationHint): (JSC::LOL::RegisterAllocator::allocateImpl): (JSC::LOL::RegisterAllocator::flush): (JSC::LOL::RegisterAllocator<Backend>::allocate): (JSC::LOL::Location::gpr const): Deleted. * Source/JavaScriptCore/tools/JSDollarVM.cpp: * Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp: (JSC::Wasm::BBQJITImpl::Location::fromArgumentLocation): * Source/JavaScriptCore/wasm/WasmCallingConvention.cpp: (JSC::Wasm::jsCallingConvention): (JSC::Wasm::wasmCallingConvention): * Source/JavaScriptCore/wasm/WasmCallingConvention.h: (JSC::Wasm::CallInformation::computeResultsOffsetList): (JSC::Wasm::WasmCallingConvention::WasmCallingConvention): (JSC::Wasm::WasmCallingConvention::marshallLocation const): (JSC::Wasm::JSCallingConvention::JSCallingConvention): (JSC::Wasm::JSCallingConvention::marshallLocation const): (JSC::Wasm::JSCallingConvention::callInformationFor const): * Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp: (JSC::Wasm::OMGIRGenerator::addArguments): (JSC::Wasm::prepareForTailCallImpl): * Source/JavaScriptCore/wasm/WasmOperations.cpp: (JSC::Wasm::JSC_DEFINE_JIT_OPERATION): * Source/JavaScriptCore/wasm/WasmThunks.cpp: (JSC::Wasm::materializeBaselineDataGenerator): (JSC::Wasm::callPolymorphicCalleeGenerator): * Source/JavaScriptCore/wasm/WasmTypeDefinition.cpp: (JSC::Wasm::RTT::ensureArgumINTBytecode const): (JSC::Wasm::RTT::ensureUINTBytecode const): (JSC::Wasm::buildCallArgumentBytecode): (JSC::Wasm::buildCallResultBytecode): * Source/JavaScriptCore/wasm/WasmValueLocation.cpp: (JSC::Wasm::ValueLocation::dump const): * Source/JavaScriptCore/wasm/WasmValueLocation.h: (JSC::Wasm::ValueLocation::ValueLocation): (JSC::Wasm::ValueLocation::gpr const): (JSC::Wasm::ValueLocation::jsr const): Deleted. * Source/JavaScriptCore/wasm/js/JSToWasm.cpp: (JSC::Wasm::marshallJSResult): (JSC::Wasm::RTT::jsToWasmICEntrypoint const): * Source/JavaScriptCore/wasm/js/WasmToJS.cpp: (JSC::Wasm::wasmToJS): * Source/WebCore/domjit/DOMJITHelpers.cpp: * Source/WebCore/domjit/DOMJITHelpers.h: (WebCore::DOMJIT::toWrapper): * Source/WebCore/domjit/JSDocumentDOMJIT.cpp: (WebCore::compileDocumentDocumentElementAttribute): (WebCore::compileDocumentBodyAttribute): * Source/WebCore/domjit/JSNodeDOMJIT.cpp: (WebCore::createCallDOMGetterForOffsetAccess): (WebCore::compileNodeNodeTypeAttribute): (WebCore::compileNodeOwnerDocumentAttribute): Canonical link: https://commits.webkit.org/320197@main
1 parent 8b41c4e commit 471af61

99 files changed

Lines changed: 4307 additions & 4823 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3514,7 +3514,6 @@
35143514
0F919D2215853CDE004A4E7D /* Watchpoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Watchpoint.cpp; sourceTree = "<group>"; };
35153515
0F919D2315853CDE004A4E7D /* Watchpoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Watchpoint.h; sourceTree = "<group>"; };
35163516
0F919D2715856770004A4E7D /* SymbolTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SymbolTable.cpp; sourceTree = "<group>"; };
3517-
0F93274C1C1F66AA00CF6564 /* GPRInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GPRInfo.cpp; sourceTree = "<group>"; };
35183517
0F9327591C20BCBA00CF6564 /* dynbench */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = dynbench; sourceTree = BUILT_PRODUCTS_DIR; };
35193518
0F93275A1C20BCDF00CF6564 /* dynbench.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dynbench.cpp; sourceTree = "<group>"; };
35203519
0F93275E1C21EF7F00CF6564 /* JSObjectInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSObjectInlines.h; sourceTree = "<group>"; };
@@ -7705,7 +7704,6 @@
77057704
0F766D2E15A8DCDD008F363E /* GCAwareJITStubRoutine.h */,
77067705
4BC88EDD2DBADA8200DB5E36 /* GdbJIT.cpp */,
77077706
4BC88EDC2DBADA8200DB5E36 /* GdbJIT.h */,
7708-
0F93274C1C1F66AA00CF6564 /* GPRInfo.cpp */,
77097707
0F24E53F17EA9F5900ABB217 /* GPRInfo.h */,
77107708
DC2143051CA32E52000A8869 /* ICStats.cpp */,
77117709
DC2143061CA32E52000A8869 /* ICStats.h */,

‎Source/JavaScriptCore/Sources.txt‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -645,7 +645,6 @@ jit/ExecutableAllocator.cpp
645645
jit/ExecutableMemoryHandle.cpp
646646
jit/GCAwareJITStubRoutine.cpp
647647
jit/GdbJIT.cpp
648-
jit/GPRInfo.cpp
649648
jit/ICStats.cpp
650649
jit/JIT.cpp
651650
jit/JITAddGenerator.cpp

‎Source/JavaScriptCore/b3/B3ValueRep.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ class ValueRep {
146146
switch (location.kind()) {
147147
case Wasm::ValueLocation::Kind::GPRRegister:
148148
m_kind = Register;
149-
u.reg = location.jsr().payloadGPR();
149+
u.reg = location.gpr();
150150
break;
151151
case Wasm::ValueLocation::Kind::FPRRegister:
152152
m_kind = Register;

‎Source/JavaScriptCore/bytecode/AccessCase.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ RefPtr<AccessCase> AccessCase::createTransition(
225225
// enough registers to make it happen.
226226
if (oldStructure->outOfLineCapacity() != newStructure->outOfLineCapacity()) {
227227
// 1 register for value.
228-
size_t requiredRegisters = 1; // propertyCache.valueRegs()
228+
size_t requiredRegisters = 1; // propertyCache.valueGPR()
229229

230230
// 1 register for the property.
231231
++requiredRegisters;

‎Source/JavaScriptCore/bytecode/ArithProfile.cpp‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,32 +33,32 @@ namespace JSC {
3333

3434
#if ENABLE(JIT)
3535
template<typename BitfieldType>
36-
void ArithProfile<BitfieldType>::emitObserveResult(CCallHelpers& jit, JSValueRegs regs, GPRReg tempGPR, TagRegistersMode mode)
36+
void ArithProfile<BitfieldType>::emitObserveResult(CCallHelpers& jit, GPRReg valueGPR, GPRReg tempGPR, TagRegistersMode mode)
3737
{
3838
if (!shouldEmitSetDouble() && !shouldEmitSetNonNumeric() && !shouldEmitSetHeapBigInt() && !shouldEmitSetBigInt32())
3939
return;
4040

4141
CCallHelpers::JumpList done;
4242
CCallHelpers::JumpList nonNumeric;
4343

44-
done.append(jit.branchIfInt32(regs, mode));
45-
CCallHelpers::Jump notDouble = jit.branchIfNotDoubleKnownNotInt32(regs, mode);
44+
done.append(jit.branchIfInt32(valueGPR, mode));
45+
CCallHelpers::Jump notDouble = jit.branchIfNotDoubleKnownNotInt32(valueGPR, mode);
4646
emitSetDouble(jit, tempGPR);
4747
done.append(jit.jump());
4848

4949
notDouble.link(&jit);
5050

5151
#if USE(BIGINT32)
52-
CCallHelpers::Jump notBigInt32 = jit.branchIfNotBigInt32(regs, tempGPR, mode);
52+
CCallHelpers::Jump notBigInt32 = jit.branchIfNotBigInt32(valueGPR, tempGPR, mode);
5353
emitSetBigInt32(jit);
5454
done.append(jit.jump());
5555
notBigInt32.link(&jit);
5656
#else
5757
UNUSED_PARAM(tempGPR);
5858
#endif
5959

60-
nonNumeric.append(jit.branchIfNotCell(regs, mode));
61-
nonNumeric.append(jit.branchIfNotHeapBigInt(regs.payloadGPR()));
60+
nonNumeric.append(jit.branchIfNotCell(valueGPR, mode));
61+
nonNumeric.append(jit.branchIfNotHeapBigInt(valueGPR));
6262
emitSetHeapBigInt(jit);
6363
done.append(jit.jump());
6464

‎Source/JavaScriptCore/bytecode/ArithProfile.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ class ArithProfile {
149149
#if ENABLE(JIT)
150150
// Sets (Int32Overflow | Int52Overflow | NonNegZeroDouble | NegZeroDouble) if it sees a
151151
// double. Sets NonNumeric if it sees a non-numeric.
152-
void emitObserveResult(CCallHelpers&, JSValueRegs, GPRReg tempGPR, TagRegistersMode = HaveTagRegisters);
152+
void emitObserveResult(CCallHelpers&, GPRReg, GPRReg tempGPR, TagRegistersMode = HaveTagRegisters);
153153

154154
// Sets (Int32Overflow | Int52Overflow | NonNegZeroDouble | NegZeroDouble).
155155
bool NODELETE shouldEmitSetDouble() const;

‎Source/JavaScriptCore/bytecode/InlineAccess.cpp‎

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -40,43 +40,43 @@ namespace JSC {
4040

4141
void InlineAccess::dumpCacheSizesAndCrash()
4242
{
43-
GPRReg base = GPRInfo::regT0;
44-
GPRReg value = GPRInfo::regT1;
45-
JSValueRegs regs(base);
43+
GPRReg baseGPR = GPRInfo::regT0;
44+
GPRReg valueGPR = GPRInfo::regT1;
45+
GPRReg resultGPR = baseGPR;
4646
{
4747
CCallHelpers jit;
4848

49-
GPRReg scratchGPR = value;
49+
GPRReg scratchGPR = valueGPR;
5050
jit.patchableBranch8(
5151
CCallHelpers::NotEqual,
52-
CCallHelpers::Address(base, JSCell::typeInfoTypeOffset()),
52+
CCallHelpers::Address(baseGPR, JSCell::typeInfoTypeOffset()),
5353
CCallHelpers::TrustedImm32(StringType));
5454

55-
jit.loadPtr(CCallHelpers::Address(base, JSString::offsetOfValue()), scratchGPR);
55+
jit.loadPtr(CCallHelpers::Address(baseGPR, JSString::offsetOfValue()), scratchGPR);
5656
auto isRope = jit.branchIfRopeStringImpl(scratchGPR);
57-
jit.load32(CCallHelpers::Address(scratchGPR, StringImpl::lengthMemoryOffset()), regs.payloadGPR());
57+
jit.load32(CCallHelpers::Address(scratchGPR, StringImpl::lengthMemoryOffset()), resultGPR);
5858
auto done = jit.jump();
5959

6060
isRope.link(&jit);
61-
jit.load32(CCallHelpers::Address(base, JSRopeString::offsetOfLength()), regs.payloadGPR());
61+
jit.load32(CCallHelpers::Address(baseGPR, JSRopeString::offsetOfLength()), resultGPR);
6262

6363
done.link(&jit);
64-
jit.boxInt32(regs.payloadGPR(), regs);
64+
jit.boxInt32(resultGPR, resultGPR);
6565

6666
dataLog("string length size: ", jit.m_assembler.buffer().codeSize(), "\n");
6767
}
6868

6969
{
7070
CCallHelpers jit;
7171

72-
GPRReg scratchGPR = value;
73-
jit.load8(CCallHelpers::Address(base, JSCell::indexingTypeAndMiscOffset()), value);
74-
jit.and32(CCallHelpers::TrustedImm32(IsArray | IndexingShapeMask), value);
72+
GPRReg scratchGPR = valueGPR;
73+
jit.load8(CCallHelpers::Address(baseGPR, JSCell::indexingTypeAndMiscOffset()), valueGPR);
74+
jit.and32(CCallHelpers::TrustedImm32(IsArray | IndexingShapeMask), valueGPR);
7575
jit.patchableBranch32(
76-
CCallHelpers::NotEqual, value, CCallHelpers::TrustedImm32(IsArray | ContiguousShape));
77-
jit.loadPtr(CCallHelpers::Address(base, JSObject::butterflyOffset()), value);
78-
jit.load32(CCallHelpers::Address(value, ArrayStorage::lengthOffset()), value);
79-
jit.boxInt32(scratchGPR, regs);
76+
CCallHelpers::NotEqual, valueGPR, CCallHelpers::TrustedImm32(IsArray | ContiguousShape));
77+
jit.loadPtr(CCallHelpers::Address(baseGPR, JSObject::butterflyOffset()), valueGPR);
78+
jit.load32(CCallHelpers::Address(valueGPR, ArrayStorage::lengthOffset()), valueGPR);
79+
jit.boxInt32(scratchGPR, resultGPR);
8080

8181
dataLog("array length size: ", jit.m_assembler.buffer().codeSize(), "\n");
8282
}
@@ -86,14 +86,14 @@ void InlineAccess::dumpCacheSizesAndCrash()
8686

8787
jit.patchableBranch32(
8888
MacroAssembler::NotEqual,
89-
MacroAssembler::Address(base, JSCell::structureIDOffset()),
89+
MacroAssembler::Address(baseGPR, JSCell::structureIDOffset()),
9090
MacroAssembler::TrustedImm32(0x000ab21ca));
9191
jit.loadPtr(
92-
CCallHelpers::Address(base, JSObject::butterflyOffset()),
93-
value);
94-
GPRReg storageGPR = value;
92+
CCallHelpers::Address(baseGPR, JSObject::butterflyOffset()),
93+
valueGPR);
94+
GPRReg storageGPR = valueGPR;
9595
jit.loadValue(
96-
CCallHelpers::Address(storageGPR, 0x000ab21ca), regs);
96+
CCallHelpers::Address(storageGPR, 0x000ab21ca), resultGPR);
9797

9898
dataLog("out of line offset cache size: ", jit.m_assembler.buffer().codeSize(), "\n");
9999
}
@@ -103,10 +103,10 @@ void InlineAccess::dumpCacheSizesAndCrash()
103103

104104
jit.patchableBranch32(
105105
MacroAssembler::NotEqual,
106-
MacroAssembler::Address(base, JSCell::structureIDOffset()),
106+
MacroAssembler::Address(baseGPR, JSCell::structureIDOffset()),
107107
MacroAssembler::TrustedImm32(0x000ab21ca));
108108
jit.loadValue(
109-
MacroAssembler::Address(base, 0x000ab21ca), regs);
109+
MacroAssembler::Address(baseGPR, 0x000ab21ca), resultGPR);
110110

111111
dataLog("inline offset cache size: ", jit.m_assembler.buffer().codeSize(), "\n");
112112
}
@@ -116,11 +116,11 @@ void InlineAccess::dumpCacheSizesAndCrash()
116116

117117
jit.patchableBranch32(
118118
MacroAssembler::NotEqual,
119-
MacroAssembler::Address(base, JSCell::structureIDOffset()),
119+
MacroAssembler::Address(baseGPR, JSCell::structureIDOffset()),
120120
MacroAssembler::TrustedImm32(0x000ab21ca));
121121

122122
jit.storeValue(
123-
regs, MacroAssembler::Address(base, 0x000ab21ca));
123+
resultGPR, MacroAssembler::Address(baseGPR, 0x000ab21ca));
124124

125125
dataLog("replace cache size: ", jit.m_assembler.buffer().codeSize(), "\n");
126126
}
@@ -130,13 +130,13 @@ void InlineAccess::dumpCacheSizesAndCrash()
130130

131131
jit.patchableBranch32(
132132
MacroAssembler::NotEqual,
133-
MacroAssembler::Address(base, JSCell::structureIDOffset()),
133+
MacroAssembler::Address(baseGPR, JSCell::structureIDOffset()),
134134
MacroAssembler::TrustedImm32(0x000ab21ca));
135135

136-
jit.loadPtr(MacroAssembler::Address(base, JSObject::butterflyOffset()), value);
136+
jit.loadPtr(MacroAssembler::Address(baseGPR, JSObject::butterflyOffset()), valueGPR);
137137
jit.storeValue(
138-
regs,
139-
MacroAssembler::Address(base, 120342));
138+
resultGPR,
139+
MacroAssembler::Address(baseGPR, 120342));
140140

141141
dataLog("replace out of line cache size: ", jit.m_assembler.buffer().codeSize(), "\n");
142142
}
@@ -182,7 +182,7 @@ bool InlineAccess::generateSelfPropertyAccess(PropertyInlineCache& propertyCache
182182
CCallHelpers jit;
183183

184184
GPRReg base = propertyCache.baseGPR();
185-
JSValueRegs value = propertyCache.valueRegs();
185+
GPRReg value = propertyCache.valueGPR();
186186

187187
jit.patchableBranch32(
188188
MacroAssembler::NotEqual,
@@ -192,8 +192,8 @@ bool InlineAccess::generateSelfPropertyAccess(PropertyInlineCache& propertyCache
192192
if (isInlineOffset(offset))
193193
storage = base;
194194
else {
195-
jit.loadPtr(CCallHelpers::Address(base, JSObject::butterflyOffset()), value.payloadGPR());
196-
storage = value.payloadGPR();
195+
jit.loadPtr(CCallHelpers::Address(base, JSObject::butterflyOffset()), value);
196+
storage = value;
197197
}
198198

199199
jit.loadValue(
@@ -251,7 +251,7 @@ bool InlineAccess::generateSelfPropertyReplace(PropertyInlineCache& propertyCach
251251
CCallHelpers jit;
252252

253253
GPRReg base = propertyCache.baseGPR();
254-
JSValueRegs value = propertyCache.valueRegs();
254+
GPRReg value = propertyCache.valueGPR();
255255

256256
jit.patchableBranch32(
257257
MacroAssembler::NotEqual,
@@ -303,16 +303,16 @@ bool InlineAccess::generateArrayLength(PropertyInlineCache& propertyCache, JSArr
303303
CCallHelpers jit;
304304

305305
GPRReg base = propertyCache.baseGPR();
306-
JSValueRegs value = propertyCache.valueRegs();
306+
GPRReg value = propertyCache.valueGPR();
307307
GPRReg scratch = getScratchRegister(propertyCache);
308308

309309
jit.load8(CCallHelpers::Address(base, JSCell::indexingTypeAndMiscOffset()), scratch);
310310
jit.and32(CCallHelpers::TrustedImm32(IndexingTypeMask), scratch);
311311
jit.patchableBranch32(
312312
CCallHelpers::NotEqual, scratch, CCallHelpers::TrustedImm32(array->indexingType())).linkThunk(repatchingIC->slowPathStartLocation, &jit);
313-
jit.loadPtr(CCallHelpers::Address(base, JSObject::butterflyOffset()), value.payloadGPR());
314-
jit.load32(CCallHelpers::Address(value.payloadGPR(), ArrayStorage::lengthOffset()), value.payloadGPR());
315-
jit.boxInt32(value.payloadGPR(), value);
313+
jit.loadPtr(CCallHelpers::Address(base, JSObject::butterflyOffset()), value);
314+
jit.load32(CCallHelpers::Address(value, ArrayStorage::lengthOffset()), value);
315+
jit.boxInt32(value, value);
316316

317317
return linkCodeInline("array length", jit, *repatchingIC);
318318
}
@@ -342,7 +342,7 @@ bool InlineAccess::generateStringLength(PropertyInlineCache& propertyCache)
342342
CCallHelpers jit;
343343

344344
GPRReg base = propertyCache.baseGPR();
345-
JSValueRegs value = propertyCache.valueRegs();
345+
GPRReg value = propertyCache.valueGPR();
346346
GPRReg scratch = getScratchRegister(propertyCache);
347347

348348
jit.patchableBranch8(
@@ -352,14 +352,14 @@ bool InlineAccess::generateStringLength(PropertyInlineCache& propertyCache)
352352

353353
jit.loadPtr(CCallHelpers::Address(base, JSString::offsetOfValue()), scratch);
354354
auto isRope = jit.branchIfRopeStringImpl(scratch);
355-
jit.load32(CCallHelpers::Address(scratch, StringImpl::lengthMemoryOffset()), value.payloadGPR());
355+
jit.load32(CCallHelpers::Address(scratch, StringImpl::lengthMemoryOffset()), value);
356356
auto done = jit.jump();
357357

358358
isRope.link(&jit);
359-
jit.load32(CCallHelpers::Address(base, JSRopeString::offsetOfLength()), value.payloadGPR());
359+
jit.load32(CCallHelpers::Address(base, JSRopeString::offsetOfLength()), value);
360360

361361
done.link(&jit);
362-
jit.boxInt32(value.payloadGPR(), value);
362+
jit.boxInt32(value, value);
363363

364364
return linkCodeInline("string length", jit, *repatchingIC);
365365
}
@@ -377,7 +377,7 @@ bool InlineAccess::generateSelfInAccess(PropertyInlineCache& propertyCache, Stru
377377
return false;
378378

379379
GPRReg base = propertyCache.baseGPR();
380-
JSValueRegs value = propertyCache.valueRegs();
380+
GPRReg value = propertyCache.valueGPR();
381381

382382
jit.patchableBranch32(
383383
MacroAssembler::NotEqual,

0 commit comments

Comments
 (0)