Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 582cb0306b7c19a8a9ebd3846629d36280685858
https://github.com/WebKit/WebKit/commit/582cb0306b7c19a8a9ebd3846629d36280685858
Author: Yusuke Suzuki <[email protected]>
Date: 2026-02-09 (Mon, 09 Feb 2026)
Changed paths:
A JSTests/stress/int52-arith-div-logical-not.js
A JSTests/stress/int52-arith-div-with-overflow-unchecked.js
A JSTests/stress/int52-arith-div.js
M Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h
M Source/JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cpp
M Source/JavaScriptCore/dfg/DFGFixupPhase.cpp
M Source/JavaScriptCore/dfg/DFGGraph.h
M Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp
M Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
Log Message:
-----------
[JSC] Add ArithDiv(Int52Use, Int52Use) in DFG / FTL
https://bugs.webkit.org/show_bug.cgi?id=307266
rdar://169906979
Reviewed by Sosuke Suzuki.
This patch adds ArithDiv(Int52Use, Int52Use) support in DFG / FTL.
Basically this is exactly similar to ArithDiv(Int32Use, Int32Use). But
one difference is that, because both are Int52, not Int64, we don't need
to consider about -INT64_MIN like overflow.
Tests: JSTests/stress/int52-arith-div-logical-not.js
JSTests/stress/int52-arith-div-with-overflow-unchecked.js
JSTests/stress/int52-arith-div.js
* JSTests/stress/int52-arith-div-logical-not.js: Added.
(divInt52LogicalNotDivByZero):
(divInt52LogicalNotMixed):
(divInt52LogicalNotNegInf):
(divInt52LogicalNotNaN):
(i.else):
(divInt52LogicalNotZeroResult):
(modInt52LogicalNotDivByZero):
* JSTests/stress/int52-arith-div-with-overflow-unchecked.js: Added.
(divInt52BitOr):
(divInt52DivByZeroBitOr):
(divInt52AlwaysZeroDivisorBitOr):
(divInt52NegZeroBitOr):
(divInt52BitAnd):
(divInt52BitXor):
(divInt52BitShift):
(divInt52VaryingBitOr):
(divInt52VaryingZeroBitOr):
(divInt52StressBitOr):
* JSTests/stress/int52-arith-div.js: Added.
(divideInt52):
(divideAnyIntAsDouble):
(divideSelf):
(divByOne):
(divByNegOne):
(divByPowerOfTwo):
(checkNegativeZero):
(checkPositiveZero):
(divNegZero1):
(divNegZero2):
(divPosZero1):
(divNonExact):
(divMaxInt52):
(divMinInt52):
(divMinInt52ByNegOne):
(divLargeExact1):
(divLargeExact2):
(divMixed1):
(divMixed2):
(divJustAboveInt32):
(divJustBelowInt32Min):
(divAlternating):
(divStress):
(divComputedInt52):
* Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::handleConstantDivOp):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* Source/JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cpp:
(JSC::DFG::BackwardsPropagationPhase::propagate):
* Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupArithDiv):
* Source/JavaScriptCore/dfg/DFGGraph.h:
* Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp:
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:
* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileArithDiv):
Canonical link: https://commits.webkit.org/307061@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications